Skip to content

Commit cc9e012

Browse files
committed
Add editing values
1 parent 8179dc6 commit cc9e012

4 files changed

Lines changed: 21 additions & 3 deletions

File tree

src/main/java/io/github/techstreet/dfscript/screen/script/ScriptAddArgumentScreen.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,15 @@ public class ScriptAddArgumentScreen extends CScreen {
2020
private final ScriptAction action;
2121

2222
public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {
23+
this(script,action,index,null);
24+
}
25+
public ScriptAddArgumentScreen(Script script, ScriptAction action, int index, String overwrite) {
2326
super(100, 50);
2427
this.script = script;
2528
this.action = action;
2629

2730
CTextField input = new CTextField("Input", 2, 2, 96, 35, true);
31+
if(overwrite != null) input.setText(overwrite);
2832

2933
ItemStack textIcon = new ItemStack(Items.BOOK);
3034
textIcon.setCustomName(Text.literal("Text")
@@ -56,13 +60,15 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {
5660
input.setChangedListener(() -> input.textColor = 0xFFFFFF);
5761

5862
addText.setClickListener((btn) -> {
63+
if(overwrite != null) action.getArguments().remove(index);
5964
action.getArguments().add(index, new ScriptTextArgument(input.getText()));
6065
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
6166
});
6267

6368
addNumber.setClickListener((btn) -> {
6469
try {
6570
double number = Double.parseDouble(input.getText());
71+
if(overwrite != null) action.getArguments().remove(index);
6672
action.getArguments().add(index, new ScriptNumberArgument(number));
6773
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
6874
} catch (Exception err) {
@@ -71,16 +77,17 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {
7177
});
7278

7379
addVariable.setClickListener((btn) -> {
80+
if(overwrite != null) action.getArguments().remove(index);
7481
action.getArguments().add(index, new ScriptVariableArgument(input.getText()));
7582
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
7683
});
7784

7885
addClientValue.setClickListener((btn) -> {
79-
DFScript.MC.setScreen(new ScriptAddClientValueScreen(action, script, index));
86+
DFScript.MC.setScreen(new ScriptAddClientValueScreen(action, script, index, overwrite));
8087
});
8188

8289
addConfigValue.setClickListener((btn) -> {
83-
DFScript.MC.setScreen(new ScriptAddConfigValueScreen(action, script, index));
90+
DFScript.MC.setScreen(new ScriptAddConfigValueScreen(action, script, index, overwrite));
8491
});
8592

8693
widgets.add(input);

src/main/java/io/github/techstreet/dfscript/screen/script/ScriptAddClientValueScreen.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public ScriptAddClientValueScreen(ScriptAction action, Script script, int insert
2525
for (ScriptClientValueArgument arg : ScriptClientValueArgument.values()) {
2626
CItem item = new CItem(x, y, arg.getIcon());
2727
item.setClickListener((btn) -> {
28+
if(overwrite != null) action.getArguments().remove(insertIndex);
2829
action.getArguments().add(insertIndex, arg);
2930
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
3031
});

src/main/java/io/github/techstreet/dfscript/screen/script/ScriptAddConfigValueScreen.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class ScriptAddConfigValueScreen extends CScreen {
1818
private static int WIDTH = 200;
1919
private static int HEIGHT = 94;
2020

21-
public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insertIndex) {
21+
public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insertIndex, String overwrite) {
2222
super(WIDTH, HEIGHT);
2323
this.script = script;
2424
this.action = action;
@@ -29,6 +29,7 @@ public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insert
2929
int x = 5;
3030
int y = 5;
3131
for (ScriptNamedOption arg : script.getOptions()) {
32+
if(overwrite != null) action.getArguments().remove(insertIndex);
3233
CItem item = new CItem(x, y, arg.getIcon());
3334
item.setClickListener((btn) -> {
3435
this.action.getArguments().add(insertIndex, new ScriptConfigArgument(arg.getName(), this.script));

src/main/java/io/github/techstreet/dfscript/screen/script/ScriptEditActionScreen.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,15 @@ public boolean mouseClicked(double x, double y, int button) {
8282
if (getBounds().contains(x, y)) {
8383
DFScript.MC.getSoundManager().play(PositionedSoundInstance.ambient(SoundEvents.UI_BUTTON_CLICK, 1f,1f));
8484

85+
if (button == 0) {
86+
ScriptArgument argument = action.getArguments().get(currentIndex);
87+
String value = "~";
88+
if(argument instanceof ScriptNumberArgument number) value = String.valueOf(number.value());
89+
if(argument instanceof ScriptTextArgument text) value = text.value();
90+
if(argument instanceof ScriptVariableArgument var) value = var.name();
91+
DFScript.MC.setScreen(new ScriptAddArgumentScreen(script, action, currentIndex, value));
92+
}
93+
8594
if (button != 0) {
8695
CButton insertBefore = new CButton((int) x, (int) y, 40, 8, "Insert Before", () -> {
8796
DFScript.MC.setScreen(new ScriptAddArgumentScreen(script, action, currentIndex));

0 commit comments

Comments
 (0)