Skip to content

Commit

Permalink
1) moved all the control actions into a new category called Control
Browse files Browse the repository at this point in the history
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
  • Loading branch information
XTerPL committed Feb 5, 2023
1 parent e950126 commit ef25ede
Show file tree
Hide file tree
Showing 56 changed files with 2,986 additions and 1,034 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package io.github.techstreet.dfscript.screen;

import io.github.techstreet.dfscript.DFScript;
import io.github.techstreet.dfscript.screen.script.ScriptEditScreen;

public class ContextMenuButton {
String name;
Runnable onClick;

boolean reloadOnClick;

public ContextMenuButton(String name, Runnable onClick) {
this.name = name;
this.onClick = onClick;
this.reloadOnClick = true;
}

public ContextMenuButton(String name, Runnable onClick, boolean reloadOnClick) {
this.name = name;
this.onClick = onClick;
this.reloadOnClick = reloadOnClick;
}

public Runnable getOnClick() {
if(reloadOnClick) {
return () -> {
onClick.run();
if(DFScript.MC.currentScreen instanceof ScriptEditScreen editScreen)
{
editScreen.reload();
}
};
}

return onClick;
}

public String getName() {
return name;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import io.github.techstreet.dfscript.screen.widget.CItem;
import io.github.techstreet.dfscript.screen.widget.CTextField;
import io.github.techstreet.dfscript.script.Script;
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
import io.github.techstreet.dfscript.script.ScriptPart;
import io.github.techstreet.dfscript.script.action.ScriptAction;
import io.github.techstreet.dfscript.script.argument.ScriptNumberArgument;
import io.github.techstreet.dfscript.script.argument.ScriptTextArgument;
Expand All @@ -17,9 +19,9 @@
public class ScriptAddArgumentScreen extends CScreen {

private final Script script;
private final ScriptAction action;
private final ScriptParametrizedPart action;

public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {
public ScriptAddArgumentScreen(Script script, ScriptParametrizedPart action, int index) {
super(100, 50);
this.script = script;
this.action = action;
Expand Down Expand Up @@ -57,22 +59,22 @@ public ScriptAddArgumentScreen(Script script, ScriptAction action, int index) {

addText.setClickListener((btn) -> {
action.getArguments().add(index, new ScriptTextArgument(input.getText()));
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
});

addNumber.setClickListener((btn) -> {
try {
double number = Double.parseDouble(input.getText());
action.getArguments().add(index, new ScriptNumberArgument(number));
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
} catch (Exception err) {
input.textColor = 0xFF3333;
}
});

addVariable.setClickListener((btn) -> {
action.getArguments().add(index, new ScriptVariableArgument(input.getText()));
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
});

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

@Override
public void close() {
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,19 @@
import io.github.techstreet.dfscript.screen.CScreen;
import io.github.techstreet.dfscript.screen.widget.CItem;
import io.github.techstreet.dfscript.script.Script;
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
import io.github.techstreet.dfscript.script.ScriptPart;
import io.github.techstreet.dfscript.script.action.ScriptAction;
import io.github.techstreet.dfscript.script.argument.ScriptClientValueArgument;

public class ScriptAddClientValueScreen extends CScreen {

private final Script script;
private final ScriptAction action;
private final ScriptParametrizedPart action;
private final int insertIndex;
private static final int WIDTH = 55;

public ScriptAddClientValueScreen(ScriptAction action, Script script, int insertIndex) {
public ScriptAddClientValueScreen(ScriptParametrizedPart action, Script script, int insertIndex) {
super(WIDTH, 52);
this.script = script;
this.action = action;
Expand All @@ -26,7 +28,7 @@ public ScriptAddClientValueScreen(ScriptAction action, Script script, int insert
CItem item = new CItem(x, y, arg.getIcon());
item.setClickListener((btn) -> {
action.getArguments().add(insertIndex, arg);
DFScript.MC.setScreen(new ScriptEditActionScreen(action, script));
DFScript.MC.setScreen(new ScriptEditPartScreen(action, script));
});
widgets.add(item);
x += 10;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,21 @@
import io.github.techstreet.dfscript.screen.widget.CItem;
import io.github.techstreet.dfscript.screen.widget.CScrollPanel;
import io.github.techstreet.dfscript.script.Script;
import io.github.techstreet.dfscript.script.ScriptParametrizedPart;
import io.github.techstreet.dfscript.script.ScriptPart;
import io.github.techstreet.dfscript.script.action.ScriptAction;
import io.github.techstreet.dfscript.script.argument.ScriptClientValueArgument;
import io.github.techstreet.dfscript.script.argument.ScriptConfigArgument;
import io.github.techstreet.dfscript.script.options.ScriptNamedOption;

public class ScriptAddConfigValueScreen extends CScreen {
private final Script script;
private final ScriptAction action;
private final ScriptParametrizedPart action;
private final int insertIndex;

private static int WIDTH = 200;
private static int HEIGHT = 94;

public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insertIndex) {
public ScriptAddConfigValueScreen(ScriptParametrizedPart action, Script script, int insertIndex) {
super(WIDTH, HEIGHT);
this.script = script;
this.action = action;
Expand All @@ -32,7 +33,7 @@ public ScriptAddConfigValueScreen(ScriptAction action, Script script, int insert
CItem item = new CItem(x, y, arg.getIcon());
item.setClickListener((btn) -> {
this.action.getArguments().add(insertIndex, new ScriptConfigArgument(arg.getName(), this.script));
DFScript.MC.setScreen(new ScriptEditActionScreen(this.action, this.script));
DFScript.MC.setScreen(new ScriptEditPartScreen(this.action, this.script));
});
panel.add(item);
x += 10;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package io.github.techstreet.dfscript.screen.script;

import io.github.techstreet.dfscript.DFScript;
import io.github.techstreet.dfscript.screen.CScreen;
import io.github.techstreet.dfscript.screen.widget.CItem;
import io.github.techstreet.dfscript.script.Script;
import io.github.techstreet.dfscript.script.action.ScriptAction;
import io.github.techstreet.dfscript.script.action.ScriptActionCategory;
import io.github.techstreet.dfscript.script.action.ScriptActionCategoryExtra;
import io.github.techstreet.dfscript.script.action.ScriptActionType;
import io.github.techstreet.dfscript.script.event.ScriptEvent;
import io.github.techstreet.dfscript.script.event.ScriptEventType;
import io.github.techstreet.dfscript.script.event.ScriptHeaderCategory;

import java.util.ArrayList;
import java.util.List;

public class ScriptAddHeaderScreen extends CScreen {

private final Script script;
private final int insertIndex;

public ScriptAddHeaderScreen(Script script, int insertIndex, ScriptHeaderCategory category) {
super(size(category), size(category));
int size = size(category);
this.script = script;
this.insertIndex = insertIndex;

int x = 3;
int y = 3;

for (ScriptEventType type : ScriptEventType.values()) {
//if (type.getCategory() != category) continue;

CItem item = new CItem(x, y, type.getIcon());
item.setClickListener((btn) -> {
ScriptEvent event = new ScriptEvent(type);
script.getHeaders().add(insertIndex, event);
DFScript.MC.setScreen(new ScriptEditScreen(script));
});
widgets.add(item);
x += 10;
if (x >= size-10) {
x = 3;
y += 10;
}
}
}

private static int size(ScriptHeaderCategory category) {
int amount = 0;
for (ScriptEventType type : ScriptEventType.values()) {
//if (type.getCategory() != category) continue;

amount++;
}
return (int) (Math.ceil(Math.sqrt(amount))*10)+4;
}

@Override
public void close() {
DFScript.MC.setScreen(new ScriptHeaderCategoryScreen(script, insertIndex));
}
}
Loading

0 comments on commit ef25ede

Please sign in to comment.