Skip to content

Commit bbeeabf

Browse files
Merge pull request #54 from XTerPL/1.20.4
fixed a couple issues
2 parents 0bd0bcc + 8b5c2d6 commit bbeeabf

File tree

10 files changed

+74
-35
lines changed

10 files changed

+74
-35
lines changed

src/main/java/io/github/techstreet/dfscript/screen/CScreen.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import net.minecraft.client.gui.DrawContext;
1010
import net.minecraft.client.gui.screen.Screen;
1111
import net.minecraft.client.util.math.MatrixStack;
12-
import net.minecraft.item.Items;
1312
import net.minecraft.text.Text;
1413
import org.jetbrains.annotations.NotNull;
1514

@@ -25,6 +24,10 @@ protected CScreen(int width, int height) {
2524
// DFScript.MC.keyboard.setRepeatEvents(true);
2625
}
2726

27+
public void changeScreen(Screen screen) {
28+
DFScript.MC.setScreen(screen);
29+
}
30+
2831
@Override
2932
public void render(@NotNull DrawContext context, int mouseX, int mouseY, float tickDelta) {
3033
//renderBackground(context, mouseX, mouseY, tickDelta);
@@ -174,4 +177,13 @@ public boolean mouseDragged(double mouseX, double mouseY, int button, double del
174177

175178
return super.mouseDragged(mouseX, mouseY, button, deltaX, deltaY);
176179
}
180+
181+
public static CScreen getCurrent() {
182+
Screen current = DFScript.MC.currentScreen;
183+
184+
if(current instanceof CScreen c) {
185+
return c;
186+
}
187+
return null;
188+
}
177189
}

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import io.github.techstreet.dfscript.screen.widget.CScrollPanel;
77
import io.github.techstreet.dfscript.script.Script;
88
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
9-
import io.github.techstreet.dfscript.script.ScriptPart;
10-
import io.github.techstreet.dfscript.script.action.ScriptAction;
119
import io.github.techstreet.dfscript.script.argument.ScriptConfigArgument;
1210
import io.github.techstreet.dfscript.script.event.ScriptHeader;
1311
import io.github.techstreet.dfscript.script.options.ScriptNamedOption;
@@ -19,8 +17,8 @@ public class ScriptAddConfigValueScreen extends CScreen {
1917
private final ScriptParametrizedPart action;
2018
private final int insertIndex;
2119

22-
private static int WIDTH = 200;
23-
private static int HEIGHT = 94;
20+
private static final int WIDTH = 200;
21+
private static final int HEIGHT = 94;
2422

2523
public ScriptAddConfigValueScreen(ScriptParametrizedPart action, Script script, int insertIndex, ScriptHeader header, String overwrite) {
2624
super(WIDTH, HEIGHT);

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import io.github.techstreet.dfscript.script.Script;
88
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
99
import io.github.techstreet.dfscript.script.action.ScriptActionArgument;
10-
import io.github.techstreet.dfscript.script.argument.ScriptConfigArgument;
1110
import io.github.techstreet.dfscript.script.argument.ScriptFunctionArgument;
1211
import io.github.techstreet.dfscript.script.event.ScriptFunction;
1312
import io.github.techstreet.dfscript.script.event.ScriptHeader;
@@ -19,8 +18,8 @@ public class ScriptAddFunctionArgValueScreen extends CScreen {
1918
private final ScriptParametrizedPart action;
2019
private final int insertIndex;
2120

22-
private static int WIDTH = 200;
23-
private static int HEIGHT = 94;
21+
private static final int WIDTH = 200;
22+
private static final int HEIGHT = 94;
2423

2524
public ScriptAddFunctionArgValueScreen(ScriptParametrizedPart action, Script script, int insertIndex, ScriptHeader header, String overwrite) {
2625
super(WIDTH, HEIGHT);

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import io.github.techstreet.dfscript.script.options.ScriptOptionEnum;
1111
import io.github.techstreet.dfscript.util.chat.ChatUtil;
1212
import net.minecraft.client.gui.DrawContext;
13-
import net.minecraft.client.util.math.MatrixStack;
1413
import net.minecraft.item.ItemStack;
1514
import net.minecraft.item.Items;
1615
import net.minecraft.text.Text;
@@ -19,7 +18,6 @@
1918
import java.util.ArrayList;
2019
import java.util.Arrays;
2120
import java.util.List;
22-
import java.util.stream.Collectors;
2321

2422
public class ScriptAddSettingSubtypeScreen extends CScreen {
2523

@@ -33,7 +31,7 @@ public class ScriptAddSettingSubtypeScreen extends CScreen {
3331

3432
private int optionPos;
3533

36-
private List<ScriptOptionEnum> subtypes;
34+
private final List<ScriptOptionEnum> subtypes;
3735

3836
static {
3937
primitiveTypes = Arrays.stream(ScriptOptionEnum.values()).filter(c -> c.getExtraTypes() == 0).toList();

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

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import io.github.techstreet.dfscript.DFScript;
44
import io.github.techstreet.dfscript.screen.CReloadableScreen;
5-
import io.github.techstreet.dfscript.screen.CScreen;
65
import io.github.techstreet.dfscript.screen.ContextMenuButton;
76
import io.github.techstreet.dfscript.screen.widget.*;
87
import io.github.techstreet.dfscript.script.Script;
@@ -12,8 +11,8 @@
1211
import io.github.techstreet.dfscript.script.event.ScriptHeader;
1312
import net.minecraft.client.font.TextRenderer;
1413
import net.minecraft.client.gui.DrawContext;
14+
import net.minecraft.client.gui.screen.Screen;
1515
import net.minecraft.client.sound.PositionedSoundInstance;
16-
import net.minecraft.client.util.math.MatrixStack;
1716
import net.minecraft.sound.SoundEvents;
1817
import net.minecraft.text.Text;
1918
import net.minecraft.util.Identifier;
@@ -57,7 +56,7 @@ public void reload()
5756
panel.add(name);
5857

5958
CButton settings = new CTexturedButton(120-8, y, 8, 8, DFScript.MOD_ID + ":settings.png", DFScript.MOD_ID + ":settings_highlight.png", () -> {
60-
DFScript.MC.setScreen(new ScriptSettingsScreen(this.script, true));
59+
changeScreen(new ScriptSettingsScreen(this.script, true));
6160
});
6261
panel.add(settings);
6362

@@ -86,10 +85,10 @@ public boolean mouseClicked(double x, double y, int button) {
8685

8786
if (button != 0) {
8887
CButton insertBefore = new CButton((int) x, (int) y, 40, 8, "Insert Before", () -> {
89-
DFScript.MC.setScreen(new ScriptHeaderCategoryScreen(script, currentIndex));
88+
changeScreen(new ScriptHeaderCategoryScreen(script, currentIndex));
9089
});
9190
CButton insertAfter = new CButton((int) x, (int) y+8, 40, 8, "Insert After", () -> {
92-
DFScript.MC.setScreen(new ScriptHeaderCategoryScreen(script, currentIndex + 1));
91+
changeScreen(new ScriptHeaderCategoryScreen(script, currentIndex + 1));
9392
});
9493
CButton delete = new CButton((int) x, (int) y+16, 40, 8, "Delete", () -> {
9594
script.getHeaders().remove(currentIndex);
@@ -109,7 +108,7 @@ public boolean mouseClicked(double x, double y, int button) {
109108
}
110109
else {
111110
if(header instanceof ScriptFunction f) {
112-
DFScript.MC.setScreen(new ScriptEditFunctionScreen(f, script));
111+
changeScreen(new ScriptEditFunctionScreen(f, script));
113112
}
114113
}
115114
return true;
@@ -121,14 +120,20 @@ public boolean mouseClicked(double x, double y, int button) {
121120
}
122121

123122
CButton add = new CButton(37, y, 46, 8, "Add Header", () -> {
124-
DFScript.MC.setScreen(new ScriptHeaderCategoryScreen(script, script.getHeaders().size()));
123+
changeScreen(new ScriptHeaderCategoryScreen(script, script.getHeaders().size()));
125124
});
126125

127126
panel.add(add);
128127

129128
panel.setScroll(scroll);
130129
}
131130

131+
@Override
132+
public void changeScreen(Screen screen) {
133+
scroll = panel.getScroll();
134+
DFScript.MC.setScreen(screen);
135+
}
136+
132137
public void createIndent(int indent, int y)
133138
{
134139
for (int i = 0; i < indent; i += 5) {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,11 @@ public boolean mouseClicked(double x, double y, int button) {
9292

9393
if (button != 0) {
9494
CButton insertBefore = new CButton((int) x, (int) y, 40, 8, "Insert Before", () -> {
95+
scroll = panel.getScroll();
9596
DFScript.MC.setScreen(new ScriptAddSettingScreen(script, finalIndex));
9697
});
9798
CButton insertAfter = new CButton((int) x, (int) y+8, 40, 8, "Insert After", () -> {
99+
scroll = panel.getScroll();
98100
DFScript.MC.setScreen(new ScriptAddSettingScreen(script, finalIndex + 1));
99101
});
100102
CButton delete = new CButton((int) x, (int) y+16, 40, 8, "Delete", () -> {
@@ -107,6 +109,7 @@ public boolean mouseClicked(double x, double y, int button) {
107109
}
108110
else
109111
{
112+
scroll = panel.getScroll();
110113
DFScript.MC.setScreen(new ScriptEditSettingScreen(script, option));
111114
}
112115
return true;
@@ -126,6 +129,7 @@ public boolean mouseClicked(double x, double y, int button) {
126129
if(owned)
127130
{
128131
CButton add = new CButton(37, y, 48, 9, "Add Option", () -> {
132+
scroll = panel.getScroll();
129133
DFScript.MC.setScreen(new ScriptAddSettingScreen(script, script.getOptions().size()));
130134
});
131135
panel.add(add);

src/main/java/io/github/techstreet/dfscript/script/ScriptManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import io.github.techstreet.dfscript.script.options.ScriptNamedOption;
2222
import io.github.techstreet.dfscript.script.repetitions.ScriptBuiltinRepetition;
2323
import io.github.techstreet.dfscript.script.repetitions.ScriptWhile;
24-
import io.github.techstreet.dfscript.script.util.ScriptValueJson;
2524
import io.github.techstreet.dfscript.script.values.*;
2625
import io.github.techstreet.dfscript.util.FileUtil;
2726
import io.github.techstreet.dfscript.util.chat.ChatType;
@@ -77,7 +76,8 @@ public class ScriptManager implements Loadable {
7776
.registerTypeAdapter(ScriptTextValue.class, new ScriptTextValue.Serializer())
7877
.registerTypeAdapter(ScriptListValue.class, new ScriptListValue.Serializer())
7978
.registerTypeAdapter(ScriptDictionaryValue.class, new ScriptDictionaryValue.Serializer())
80-
.registerTypeAdapter(ScriptBoolValue.class, new ScriptDictionaryValue.Serializer())
79+
.registerTypeAdapter(ScriptBoolValue.class, new ScriptBoolValue.Serializer())
80+
.registerTypeAdapter(ScriptVariable.class, new ScriptVariable.Serializer())
8181
.create();
8282

8383
public ScriptManager() {

src/main/java/io/github/techstreet/dfscript/script/ScriptSnippet.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.gson.*;
44
import io.github.techstreet.dfscript.DFScript;
5+
import io.github.techstreet.dfscript.screen.CScreen;
56
import io.github.techstreet.dfscript.screen.ContextMenuButton;
67
import io.github.techstreet.dfscript.screen.script.ScriptEditPartScreen;
78
import io.github.techstreet.dfscript.screen.script.ScriptEditScreen;
@@ -17,7 +18,6 @@
1718
import io.github.techstreet.dfscript.script.conditions.ScriptConditionType;
1819
import io.github.techstreet.dfscript.script.event.ScriptHeader;
1920
import io.github.techstreet.dfscript.script.execution.ScriptActionContext;
20-
import io.github.techstreet.dfscript.script.execution.ScriptPosStackElement;
2121
import io.github.techstreet.dfscript.script.execution.ScriptTask;
2222
import io.github.techstreet.dfscript.script.render.ScriptPartRender;
2323
import io.github.techstreet.dfscript.script.repetitions.ScriptBuiltinRepetition;
@@ -33,7 +33,7 @@
3333
import java.lang.reflect.Type;
3434
import java.util.ArrayList;
3535
import java.util.List;
36-
import java.util.function.Consumer;
36+
import java.util.Objects;
3737

3838
public class ScriptSnippet extends ArrayList<ScriptPart> {
3939
boolean hidden = false;
@@ -129,16 +129,16 @@ public boolean mouseClicked(double x, double y, int button) {
129129

130130
if (button == 0) {
131131
if(part instanceof ScriptParametrizedPart parametrizedPart)
132-
DFScript.MC.setScreen(new ScriptEditPartScreen(parametrizedPart, script, header));
132+
CScreen.getCurrent().changeScreen(new ScriptEditPartScreen(parametrizedPart, script, header));
133133
if(part instanceof ScriptComment)
134134
return false;
135135
} else {
136136
List<ContextMenuButton> contextMenu = new ArrayList<>();
137137
contextMenu.add(new ContextMenuButton("Insert Before", () -> {
138-
DFScript.MC.setScreen(new ScriptPartCategoryScreen(script, thisSnippet, currentIndex));
138+
CScreen.getCurrent().changeScreen(new ScriptPartCategoryScreen(script, thisSnippet, currentIndex));
139139
}, false));
140140
contextMenu.add(new ContextMenuButton("Insert After", () -> {
141-
DFScript.MC.setScreen(new ScriptPartCategoryScreen(script, thisSnippet, currentIndex + 1));
141+
CScreen.getCurrent().changeScreen(new ScriptPartCategoryScreen(script, thisSnippet, currentIndex + 1));
142142
}, false));
143143
contextMenu.add(new ContextMenuButton("Delete", () -> {
144144
thisSnippet.remove(currentIndex);
@@ -162,7 +162,7 @@ public boolean mouseClicked(double x, double y, int button) {
162162

163163
ScriptPartRender.createIndent(panel, indent, y, 8);
164164
CButton add = new CButton((ScriptEditScreen.width-30)/2, y, 30, 8, "Add Part", () -> {
165-
DFScript.MC.setScreen(new ScriptPartCategoryScreen(script, thisSnippet, thisSnippet.size()));
165+
CScreen.getCurrent().changeScreen(new ScriptPartCategoryScreen(script, thisSnippet, thisSnippet.size()));
166166
});
167167

168168
panel.add(add);
@@ -247,7 +247,7 @@ public void removeOption(String option) {
247247
public void replaceFunction(String oldFunction, String newFunction) {
248248
for(ScriptPart part : this) {
249249
if(part instanceof ScriptFunctionCall fc) {
250-
if(fc.getFunctionName() == oldFunction) {
250+
if(Objects.equals(fc.getFunctionName(), oldFunction)) {
251251
fc.setFunction(newFunction);
252252
}
253253
}
@@ -263,7 +263,7 @@ public void removeFunction(String function) {
263263
while(index < this.size()) {
264264
ScriptPart part = this.get(index);
265265
if(part instanceof ScriptFunctionCall fc) {
266-
if(fc.getFunctionName() == function) {
266+
if(Objects.equals(fc.getFunctionName(), function)) {
267267
this.remove(index);
268268
continue;
269269
}

src/main/java/io/github/techstreet/dfscript/script/values/ScriptDictionaryValue.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import com.google.gson.*;
44

55
import java.lang.reflect.Type;
6-
import java.util.ArrayList;
76
import java.util.HashMap;
8-
import java.util.List;
97
import java.util.Map;
108

119
public class ScriptDictionaryValue extends ScriptValue {
@@ -89,7 +87,7 @@ public JsonElement serialize(ScriptDictionaryValue scriptValue, Type type, JsonS
8987
dictObj.add(key, context.serialize(dict.get(key)));
9088
}
9189
JsonObject obj = new JsonObject();
92-
obj.add("dict", obj);
90+
obj.add("dict", dictObj);
9391
obj.addProperty("___objectType", "dict");
9492
return obj;
9593
}

src/main/java/io/github/techstreet/dfscript/script/values/ScriptVariable.java

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package io.github.techstreet.dfscript.script.values;
22

3-
import io.github.techstreet.dfscript.script.values.ScriptUnknownValue;
4-
import io.github.techstreet.dfscript.script.values.ScriptValue;
3+
import com.google.gson.*;
54

5+
import java.lang.reflect.Type;
66
import java.util.HashMap;
77
import java.util.List;
8-
import java.util.Map;
9-
import java.util.stream.Collectors;
108

119
public class ScriptVariable extends ScriptValue {
1210
private ScriptValue value;
@@ -24,6 +22,11 @@ public ScriptValue get() {
2422
return value;
2523
}
2624

25+
@Override
26+
public String toString() {
27+
return asText();
28+
}
29+
2730
public void set(ScriptValue value) {
2831
this.value = value;
2932
}
@@ -62,4 +65,26 @@ String typeName() {
6265
public boolean valueEquals(ScriptValue other) {
6366
return get().valueEquals(other);
6467
}
68+
69+
@Override
70+
public ScriptValue getCompareValue() {
71+
return get().getCompareValue();
72+
}
73+
74+
@Override
75+
public int compare(ScriptValue other) {
76+
return get().compare(other);
77+
}
78+
79+
@Override
80+
public String formatAsText() {
81+
return get().formatAsText();
82+
}
83+
84+
public static class Serializer implements JsonSerializer<ScriptVariable> {
85+
@Override
86+
public JsonElement serialize(ScriptVariable scriptValue, Type type, JsonSerializationContext context) {
87+
return context.serialize(scriptValue.get());
88+
}
89+
}
6590
}

0 commit comments

Comments
 (0)