Skip to content

Commit 9cddda8

Browse files
authored
Merge pull request #31 from XTerPL/Refactor
A Heavy Refactor (I didn't test anything (grog))
2 parents 7029b53 + 554a8a7 commit 9cddda8

File tree

57 files changed

+3196
-1054
lines changed

Some content is hidden

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

57 files changed

+3196
-1054
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: 9 additions & 7 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,12 +19,12 @@
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
this(script,action,index,null);
2426
}
25-
public ScriptAddArgumentScreen(Script script, ScriptAction action, int index, String overwrite) {
27+
public ScriptAddArgumentScreen(Script script, ScriptParametrizedPart action, int index, String overwrite) {
2628
super(100, 50);
2729
this.script = script;
2830
this.action = action;
@@ -62,15 +64,15 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index, St
6264
addText.setClickListener((btn) -> {
6365
if(overwrite != null) action.getArguments().remove(index);
6466
action.getArguments().add(index, new ScriptTextArgument(input.getText()));
65-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
67+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
6668
});
6769

6870
addNumber.setClickListener((btn) -> {
6971
try {
7072
double number = Double.parseDouble(input.getText());
7173
if(overwrite != null) action.getArguments().remove(index);
7274
action.getArguments().add(index, new ScriptNumberArgument(number));
73-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
75+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
7476
} catch (Exception err) {
7577
input.textColor = 0xFF3333;
7678
}
@@ -79,7 +81,7 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index, St
7981
addVariable.setClickListener((btn) -> {
8082
if(overwrite != null) action.getArguments().remove(index);
8183
action.getArguments().add(index, new ScriptVariableArgument(input.getText()));
82-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
84+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
8385
});
8486

8587
addClientValue.setClickListener((btn) -> {
@@ -100,6 +102,6 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index, St
100102

101103
@Override
102104
public void close() {
103-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
105+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
104106
}
105107
}

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 = 58;
1618

17-
public ScriptAddClientValueScreen(ScriptAction action, Script script, int insertIndex, String overwrite) {
19+
public ScriptAddClientValueScreen(ScriptParametrizedPart action, Script script, int insertIndex, String overwrite) {
1820
super(WIDTH, 58);
1921
this.script = script;
2022
this.action = action;
@@ -27,7 +29,7 @@ public ScriptAddClientValueScreen(ScriptAction action, Script script, int insert
2729
item.setClickListener((btn) -> {
2830
if(overwrite != null) action.getArguments().remove(insertIndex);
2931
action.getArguments().add(insertIndex, arg);
30-
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
32+
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
3133
});
3234
widgets.add(item);
3335
x += 10;

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +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;
911
import io.github.techstreet.dfscript.script.argument.ScriptConfigArgument;
1012
import io.github.techstreet.dfscript.script.options.ScriptNamedOption;
1113

1214
public class ScriptAddConfigValueScreen extends CScreen {
1315
private final Script script;
14-
private final ScriptAction action;
16+
private final ScriptParametrizedPart action;
1517
private final int insertIndex;
1618

1719
private static int WIDTH = 200;
1820
private static int HEIGHT = 94;
1921

20-
public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insertIndex, String overwrite) {
22+
public ScriptAddConfigValueScreen(ScriptParametrizedPart action, Script script, int insertIndex, String overwrite) {
2123
super(WIDTH, HEIGHT);
2224
this.script = script;
2325
this.action = action;
@@ -32,7 +34,7 @@ public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insert
3234
CItem item = new CItem(x, y, arg.getIcon());
3335
item.setClickListener((btn) -> {
3436
this.action.getArguments().add(insertIndex, new ScriptConfigArgument(arg.getName(), this.script));
35-
DFScript.MC.setScreen(new ScriptEditActionScreen(this.action, this.script));
37+
DFScript.MC.setScreen(new ScriptEditPartScreen(this.action, this.script));
3638
});
3739
panel.add(item);
3840
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)