aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/roomedit
diff options
context:
space:
mode:
authorsyeyoung <cyong06@naver.com>2021-02-12 00:03:42 +0900
committersyeyoung <cyong06@naver.com>2021-02-12 00:03:42 +0900
commit89c82ad1fea9fd0a8e32a5e818c6c01856cdd660 (patch)
treeeb989b2e58b2b18480d41a262b9cabf1a0ba387d /src/main/java/kr/syeyoung/dungeonsguide/roomedit
parent505cb6fc92e7d2c7412b43f459796791ca36e5a3 (diff)
downloadSkyblock-Dungeons-Guide-89c82ad1fea9fd0a8e32a5e818c6c01856cdd660.tar.gz
Skyblock-Dungeons-Guide-89c82ad1fea9fd0a8e32a5e818c6c01856cdd660.tar.bz2
Skyblock-Dungeons-Guide-89c82ad1fea9fd0a8e32a5e818c6c01856cdd660.zip
YES
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit')
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java1
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonRoomEdit.java5
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditDummy.java104
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditNPC.java2
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java27
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/SecretEditPane.java10
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java1
7 files changed, 138 insertions, 12 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java
index 35f020a1..ac4521c8 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/EditingContext.java
@@ -37,6 +37,7 @@ public class EditingContext {
@Getter
private DungeonRoom room;
+ @Getter
private Stack<GuiScreen> guiStack = new Stack<GuiScreen>();
public boolean isEditingSecrets() {
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonRoomEdit.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonRoomEdit.java
index d37e7c53..34d7f740 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonRoomEdit.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/gui/GuiDungeonRoomEdit.java
@@ -4,6 +4,7 @@ import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
import kr.syeyoung.dungeonsguide.gui.MPanel;
import kr.syeyoung.dungeonsguide.gui.elements.MTabbedPane;
import kr.syeyoung.dungeonsguide.roomedit.panes.*;
+import lombok.Getter;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
@@ -21,6 +22,8 @@ public class GuiDungeonRoomEdit extends GuiScreen {
private DungeonRoom room;
private MTabbedPane tabbedPane;
+ @Getter
+ private SecretEditPane sep;
public GuiDungeonRoomEdit(DungeonRoom room) {
this.room = room;
@@ -32,7 +35,7 @@ public class GuiDungeonRoomEdit extends GuiScreen {
tabbedPane.addTab("General", new GeneralEditPane(room));
tabbedPane.addTab("Match", new RoomDataDisplayPane(room));
- tabbedPane.addTab("Secrets", new SecretEditPane(room));
+ tabbedPane.addTab("Secrets", sep = new SecretEditPane(room));
tabbedPane.addTab("Actions", new ActionDisplayPane(room));
tabbedPane.addTab("Test", new RoommatchingPane(room));
tabbedPane.addTab("Proc.Params", new ProcessorParameterEditPane(room));
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditDummy.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditDummy.java
new file mode 100755
index 00000000..73c3df8b
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditDummy.java
@@ -0,0 +1,104 @@
+package kr.syeyoung.dungeonsguide.roomedit.mechanicedit;
+
+import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.DungeonDummy;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.DungeonNPC;
+import kr.syeyoung.dungeonsguide.gui.MPanel;
+import kr.syeyoung.dungeonsguide.gui.elements.MLabel;
+import kr.syeyoung.dungeonsguide.gui.elements.MLabelAndElement;
+import kr.syeyoung.dungeonsguide.gui.elements.MTextField;
+import kr.syeyoung.dungeonsguide.gui.elements.MValue;
+import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
+import kr.syeyoung.dungeonsguide.roomedit.Parameter;
+import kr.syeyoung.dungeonsguide.roomedit.valueedit.ValueEdit;
+import kr.syeyoung.dungeonsguide.roomedit.valueedit.ValueEditCreator;
+import kr.syeyoung.dungeonsguide.utils.TextUtils;
+
+import java.awt.*;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class ValueEditDummy extends MPanel implements ValueEdit<DungeonDummy> {
+ private Parameter parameter;
+
+ // scroll pane
+ // just create
+ // add set
+ private DungeonDummy dungeonSecret;
+
+ private MLabel label;
+ private MValue<OffsetPoint> value;
+ private MTextField preRequisite;
+ private MLabelAndElement preRequisite2;
+
+ public ValueEditDummy(final Parameter parameter2) {
+ this.parameter = parameter2;
+ this.dungeonSecret = (DungeonDummy) parameter2.getNewData();
+
+
+ label = new MLabel();
+ label.setText("Dummy Point");
+ label.setAlignment(MLabel.Alignment.LEFT);
+ add(label);
+
+ value = new MValue(dungeonSecret.getSecretPoint(), Collections.emptyList());
+ add(value);
+
+ preRequisite = new MTextField() {
+ @Override
+ public void edit(String str) {
+ dungeonSecret.setPreRequisite(Arrays.asList(str.split(",")));
+ }
+ };
+ preRequisite.setText(TextUtils.join(dungeonSecret.getPreRequisite(), ","));
+ preRequisite2 = new MLabelAndElement("Req.",preRequisite);
+ preRequisite2.setBounds(new Rectangle(0,40,getBounds().width,20));
+ add(preRequisite2);
+ }
+
+ @Override
+ public void onBoundsUpdate() {
+ label.setBounds(new Rectangle(0,0,getBounds().width, 20));
+ value.setBounds(new Rectangle(0,20,getBounds().width, 20));
+ preRequisite2.setBounds(new Rectangle(0,40,getBounds().width,20));
+ }
+
+ @Override
+ public void setParameter(Parameter parameter) {
+ this.parameter = parameter;
+ }
+
+ @Override
+ public void renderWorld(float partialTicks) {
+ dungeonSecret.highlight(new Color(0,255,0,50), parameter.getName(), EditingContext.getEditingContext().getRoom(), partialTicks);
+ }
+
+ @Override
+ public void resize(int parentWidth, int parentHeight) {
+ this.setBounds(new Rectangle(0,0,parentWidth, parentHeight));
+ }
+
+ public static class Generator implements ValueEditCreator<ValueEditDummy> {
+
+ @Override
+ public ValueEditDummy createValueEdit(Parameter parameter) {
+ return new ValueEditDummy(parameter);
+ }
+
+ @Override
+ public Object createDefaultValue(Parameter parameter) {
+ return new DungeonDummy();
+ }
+
+ @Override
+ public Object cloneObj(Object object) {
+ try {
+ return ((DungeonDummy)object).clone();
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ assert false;
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditNPC.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditNPC.java
index 322bfad5..49f45932 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditNPC.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/mechanicedit/ValueEditNPC.java
@@ -38,7 +38,7 @@ public class ValueEditNPC extends MPanel implements ValueEdit<DungeonNPC> {
label = new MLabel();
- label.setText("FairySoul Point");
+ label.setText("NPC Point");
label.setAlignment(MLabel.Alignment.LEFT);
add(label);
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java
index 11e1982c..fc2584d6 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/GeneralEditPane.java
@@ -27,6 +27,7 @@ public class GeneralEditPane extends MPanel {
private MLabelAndElement uuid;
private MLabelAndElement name;
+ private MLabelAndElement secrets;
private MLabelAndElement shape;
private MLabelAndElement rotation;
@@ -59,12 +60,24 @@ public class GeneralEditPane extends MPanel {
name.setBounds(new Rectangle(0,20,getBounds().width, 20));
add(name);
}
+ {
+ final MIntegerSelectionButton la = new MIntegerSelectionButton(dungeonRoom.getDungeonRoomInfo().getTotalSecrets());
+ la.setOnUpdate(new Runnable() {
+ @Override
+ public void run() {
+ dungeonRoom.getDungeonRoomInfo().setTotalSecrets(la.getData());
+ }
+ });
+ secrets = new MLabelAndElement("Room Secrets: ", la);
+ secrets.setBounds(new Rectangle(0,40,getBounds().width, 20));
+ add(secrets);
+ }
{
MLabel la;
shape = new MLabelAndElement("Room Shape: ", la = new MLabel());
la.setText(dungeonRoom.getDungeonRoomInfo().getShape()+"");
- shape.setBounds(new Rectangle(0,40,getBounds().width, 20));
+ shape.setBounds(new Rectangle(0,60,getBounds().width, 20));
add(shape);
}
@@ -72,20 +85,20 @@ public class GeneralEditPane extends MPanel {
MLabel la;
rotation = new MLabelAndElement("Found Room Rotation: ", la = new MLabel());
la.setText(dungeonRoom.getRoomMatcher().getRotation()+"");
- rotation.setBounds(new Rectangle(0,60,getBounds().width, 20));
+ rotation.setBounds(new Rectangle(0,80,getBounds().width, 20));
add(rotation);
}
{
MLabel la;
shape2 = new MLabelAndElement("Found Room Shape: ", la = new MLabel());
la.setText(dungeonRoom.getShape()+"");
- shape2.setBounds(new Rectangle(0,80,getBounds().width, 20));
+ shape2.setBounds(new Rectangle(0,100,getBounds().width, 20));
add(shape2);
}
{
final MStringSelectionButton mStringSelectionButton = new MStringSelectionButton(new ArrayList<String>(ProcessorFactory.getProcessors()), dungeonRoom.getDungeonRoomInfo().getProcessorId());
roomProcessor = new MLabelAndElement("Room Processor: ", mStringSelectionButton);
- roomProcessor.setBounds(new Rectangle(0,100,getBounds().width, 20));
+ roomProcessor.setBounds(new Rectangle(0,120,getBounds().width, 20));
add(roomProcessor);
mStringSelectionButton.setOnUpdate(new Runnable() {
@@ -106,7 +119,7 @@ public class GeneralEditPane extends MPanel {
}
});
end.setBackgroundColor(Color.green);
- end.setBounds(new Rectangle(0,120,getBounds().width, 20));
+ end.setBounds(new Rectangle(0,140,getBounds().width, 20));
add(end);
}
{
@@ -132,7 +145,7 @@ public class GeneralEditPane extends MPanel {
}
});
schematic.setBackgroundColor(Color.orange);
- schematic.setBounds(new Rectangle(0,160,getBounds().width, 20));
+ schematic.setBounds(new Rectangle(0,180,getBounds().width, 20));
add(schematic);
}
{
@@ -147,7 +160,7 @@ public class GeneralEditPane extends MPanel {
}
});
save.setBackgroundColor(Color.green);
- save.setBounds(new Rectangle(0,140,getBounds().width, 20));
+ save.setBounds(new Rectangle(0,10,getBounds().width, 20));
add(save);
}
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/SecretEditPane.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/SecretEditPane.java
index 10a40013..6225f133 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/SecretEditPane.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/panes/SecretEditPane.java
@@ -36,6 +36,12 @@ public class SecretEditPane extends MPanel implements DynamicEditor {
}
}
+ public void createNewMechanic(String uid, DungeonMechanic data) {
+ MParameter parameter;
+ parameters.add(parameter = new MParameter(new Parameter(uid, data, data), SecretEditPane.this));
+ parameter.setBounds(new Rectangle(0,0,getBounds().width, 20));
+ }
+
public void buildElements() {
{
create = new MButton();
@@ -45,9 +51,7 @@ public class SecretEditPane extends MPanel implements DynamicEditor {
create.setOnActionPerformed(new Runnable() {
@Override
public void run() {
- MParameter parameter;
- parameters.add(parameter = new MParameter(new Parameter(UUID.randomUUID().toString(), null, null), SecretEditPane.this));
- parameter.setBounds(new Rectangle(0,0,getBounds().width, 20));
+ createNewMechanic(UUID.randomUUID().toString(), null);
}
});
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java
index 3186facd..4437088e 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java
@@ -41,6 +41,7 @@ public class ValueEditRegistry {
valueEditMap.put(DungeonTomb.class.getName(), new ValueEditTomb.Generator());
valueEditMap.put(DungeonBreakableWall.class.getName(), new ValueEditBreakableWall.Generator());
valueEditMap.put(DungeonJournal.class.getName(), new ValueEditJournal.Generator());
+ valueEditMap.put(DungeonDummy.class.getName(), new ValueEditDummy.Generator());
valueEditMap.put(DungeonPressurePlate.class.getName(), new ValueEditPressurePlate.Generator());
valueEditMap.put(DungeonOnewayLever.class.getName(), new ValueEditOnewayLever.Generator());