Skip to content

Commit ef25ede

Browse files
committed
1) moved all the control actions into a new category called Control
2) rewrote a lot of the code to be easier to add on 3) you can now invert conditions 4) we gotta test this code lol
1 parent e950126 commit ef25ede

File tree

56 files changed

+2986
-1034
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+2986
-1034
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.github.techstreet.dfscript.screen;
2+
3+
import io.github.techstreet.dfscript.DFScript;
4+
import io.github.techstreet.dfscript.screen.script.ScriptEditScreen;
5+
6+
public class ContextMenuButton {
7+
String name;
8+
Runnable onClick;
9+
10+
boolean reloadOnClick;
11+
12+
public ContextMenuButton(String name, Runnable onClick) {
13+
this.name = name;
14+
this.onClick = onClick;
15+
this.reloadOnClick = true;
16+
}
17+
18+
public ContextMenuButton(String name, Runnable onClick, boolean reloadOnClick) {
19+
this.name = name;
20+
this.onClick = onClick;
21+
this.reloadOnClick = reloadOnClick;
22+
}
23+
24+
public Runnable getOnClick() {
25+
if(reloadOnClick) {
26+
return () -> {
27+
onClick.run();
28+
if(DFScript.MC.currentScreen instanceof ScriptEditScreen editScreen)
29+
{
30+
editScreen.reload();
31+
}
32+
};
33+
}
34+
35+
return onClick;
36+
}
37+
38+
public String getName() {
39+
return name;
40+
}
41+
}

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

Lines changed: 0 additions & 105 deletions
This file was deleted.

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import io.github.techstreet.dfscript.screen.widget.CItem;
66
import io.github.techstreet.dfscript.screen.widget.CTextField;
77
import io.github.techstreet.dfscript.script.Script;
8+
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
9+
import io.github.techstreet.dfscript.script.ScriptPart;
810
import io.github.techstreet.dfscript.script.action.ScriptAction;
911
import io.github.techstreet.dfscript.script.argument.ScriptNumberArgument;
1012
import io.github.techstreet.dfscript.script.argument.ScriptTextArgument;
@@ -17,9 +19,9 @@
1719
public class ScriptAddArgumentScreen extends CScreen {
1820

1921
private final Script script;
20-
private final ScriptAction action;
22+
private final ScriptParametrizedPart action;
2123

22-
public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {
24+
public ScriptAddArgumentScreen(Script script, ScriptParametrizedPart action, int index) {
2325
super(100, 50);
2426
this.script = script;
2527
this.action = action;
@@ -57,22 +59,22 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {
5759

5860
addText.setClickListener((btn) -> {
5961
action.getArguments().add(index, new ScriptTextArgument(input.getText()));
60-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
62+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
6163
});
6264

6365
addNumber.setClickListener((btn) -> {
6466
try {
6567
double number = Double.parseDouble(input.getText());
6668
action.getArguments().add(index, new ScriptNumberArgument(number));
67-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
69+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
6870
} catch (Exception err) {
6971
input.textColor = 0xFF3333;
7072
}
7173
});
7274

7375
addVariable.setClickListener((btn) -> {
7476
action.getArguments().add(index, new ScriptVariableArgument(input.getText()));
75-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
77+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
7678
});
7779

7880
addClientValue.setClickListener((btn) -> {
@@ -93,6 +95,6 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {
9395

9496
@Override
9597
public void close() {
96-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
98+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
9799
}
98100
}

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,19 @@
44
import io.github.techstreet.dfscript.screen.CScreen;
55
import io.github.techstreet.dfscript.screen.widget.CItem;
66
import io.github.techstreet.dfscript.script.Script;
7+
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
8+
import io.github.techstreet.dfscript.script.ScriptPart;
79
import io.github.techstreet.dfscript.script.action.ScriptAction;
810
import io.github.techstreet.dfscript.script.argument.ScriptClientValueArgument;
911

1012
public class ScriptAddClientValueScreen extends CScreen {
1113

1214
private final Script script;
13-
private final ScriptAction action;
15+
private final ScriptParametrizedPart action;
1416
private final int insertIndex;
1517
private static final int WIDTH = 55;
1618

17-
public ScriptAddClientValueScreen(ScriptAction action, Script script, int insertIndex) {
19+
public ScriptAddClientValueScreen(ScriptParametrizedPart action, Script script, int insertIndex) {
1820
super(WIDTH, 52);
1921
this.script = script;
2022
this.action = action;
@@ -26,7 +28,7 @@ public ScriptAddClientValueScreen(ScriptAction action, Script script, int insert
2628
CItem item = new CItem(x, y, arg.getIcon());
2729
item.setClickListener((btn) -> {
2830
action.getArguments().add(insertIndex, arg);
29-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
31+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
3032
});
3133
widgets.add(item);
3234
x += 10;

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,21 @@
55
import io.github.techstreet.dfscript.screen.widget.CItem;
66
import io.github.techstreet.dfscript.screen.widget.CScrollPanel;
77
import io.github.techstreet.dfscript.script.Script;
8+
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
9+
import io.github.techstreet.dfscript.script.ScriptPart;
810
import io.github.techstreet.dfscript.script.action.ScriptAction;
9-
import io.github.techstreet.dfscript.script.argument.ScriptClientValueArgument;
1011
import io.github.techstreet.dfscript.script.argument.ScriptConfigArgument;
1112
import io.github.techstreet.dfscript.script.options.ScriptNamedOption;
1213

1314
public class ScriptAddConfigValueScreen extends CScreen {
1415
private final Script script;
15-
private final ScriptAction action;
16+
private final ScriptParametrizedPart action;
1617
private final int insertIndex;
1718

1819
private static int WIDTH = 200;
1920
private static int HEIGHT = 94;
2021

21-
public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insertIndex) {
22+
public ScriptAddConfigValueScreen(ScriptParametrizedPart action, Script script, int insertIndex) {
2223
super(WIDTH, HEIGHT);
2324
this.script = script;
2425
this.action = action;
@@ -32,7 +33,7 @@ public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insert
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));
35-
DFScript.MC.setScreen(new ScriptEditActionScreen(this.action, this.script));
36+
DFScript.MC.setScreen(new ScriptEditPartScreen(this.action, this.script));
3637
});
3738
panel.add(item);
3839
x += 10;
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package io.github.techstreet.dfscript.screen.script;
2+
3+
import io.github.techstreet.dfscript.DFScript;
4+
import io.github.techstreet.dfscript.screen.CScreen;
5+
import io.github.techstreet.dfscript.screen.widget.CItem;
6+
import io.github.techstreet.dfscript.script.Script;
7+
import io.github.techstreet.dfscript.script.action.ScriptAction;
8+
import io.github.techstreet.dfscript.script.action.ScriptActionCategory;
9+
import io.github.techstreet.dfscript.script.action.ScriptActionCategoryExtra;
10+
import io.github.techstreet.dfscript.script.action.ScriptActionType;
11+
import io.github.techstreet.dfscript.script.event.ScriptEvent;
12+
import io.github.techstreet.dfscript.script.event.ScriptEventType;
13+
import io.github.techstreet.dfscript.script.event.ScriptHeaderCategory;
14+
15+
import java.util.ArrayList;
16+
import java.util.List;
17+
18+
public class ScriptAddHeaderScreen extends CScreen {
19+
20+
private final Script script;
21+
private final int insertIndex;
22+
23+
public ScriptAddHeaderScreen(Script script, int insertIndex, ScriptHeaderCategory category) {
24+
super(size(category), size(category));
25+
int size = size(category);
26+
this.script = script;
27+
this.insertIndex = insertIndex;
28+
29+
int x = 3;
30+
int y = 3;
31+
32+
for (ScriptEventType type : ScriptEventType.values()) {
33+
//if (type.getCategory() != category) continue;
34+
35+
CItem item = new CItem(x, y, type.getIcon());
36+
item.setClickListener((btn) -> {
37+
ScriptEvent event = new ScriptEvent(type);
38+
script.getHeaders().add(insertIndex, event);
39+
DFScript.MC.setScreen(new ScriptEditScreen(script));
40+
});
41+
widgets.add(item);
42+
x += 10;
43+
if (x >= size-10) {
44+
x = 3;
45+
y += 10;
46+
}
47+
}
48+
}
49+
50+
private static int size(ScriptHeaderCategory category) {
51+
int amount = 0;
52+
for (ScriptEventType type : ScriptEventType.values()) {
53+
//if (type.getCategory() != category) continue;
54+
55+
amount++;
56+
}
57+
return (int) (Math.ceil(Math.sqrt(amount))*10)+4;
58+
}
59+
60+
@Override
61+
public void close() {
62+
DFScript.MC.setScreen(new ScriptHeaderCategoryScreen(script, insertIndex));
63+
}
64+
}

0 commit comments

Comments
 (0)