aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit
diff options
context:
space:
mode:
authorsyeyoung <42869671+cyoung06@users.noreply.github.com>2020-11-26 13:02:20 +0900
committersyeyoung <42869671+cyoung06@users.noreply.github.com>2020-11-26 13:02:20 +0900
commit4d5276d8523e5c4771bdde386c9a538ec544d4c5 (patch)
tree9c504ad9c1e441caa4f50cb1e78b00b91fa023ca /src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit
parent4ada6858039f3ca2f5de3c81df8c78f481d897d4 (diff)
downloadSkyblock-Dungeons-Guide-4d5276d8523e5c4771bdde386c9a538ec544d4c5.tar.gz
Skyblock-Dungeons-Guide-4d5276d8523e5c4771bdde386c9a538ec544d4c5.tar.bz2
Skyblock-Dungeons-Guide-4d5276d8523e5c4771bdde386c9a538ec544d4c5.zip
value edit stuff
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java79
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java78
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java130
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java2
6 files changed, 299 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java
new file mode 100644
index 00000000..7a9b4259
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java
@@ -0,0 +1,79 @@
+package kr.syeyoung.dungeonsguide.roomedit.valueedit;
+
+import kr.syeyoung.dungeonsguide.roomedit.MPanel;
+import kr.syeyoung.dungeonsguide.roomedit.Parameter;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MLabel;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MLabelAndElement;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MStringSelectionButton;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MTextField;
+import scala.actors.threadpool.Arrays;
+
+import java.awt.*;
+
+public class ValueEditBoolean extends MPanel implements ValueEdit<Boolean> {
+ private Parameter parameter;
+
+
+ public ValueEditBoolean(Parameter parameter2) {
+ this.parameter = parameter2;
+ {
+ MLabel label = new MLabel() {
+ @Override
+ public String getText() {
+ return parameter.getPreviousData().toString();
+ }
+ };
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("Prev",label);
+ mLabelAndElement.setBounds(new Rectangle(0,0,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ {
+ boolean newData = (Boolean) parameter.getNewData();
+ final MStringSelectionButton textField = new MStringSelectionButton(Arrays.asList(new String[] {"true", "false"}), Boolean.toString(newData));
+ textField.setOnUpdate(new Runnable() {
+ @Override
+ public void run() {
+ parameter.setNewData(Boolean.valueOf(textField.getSelected()));
+ }
+ });
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("New",textField);
+ mLabelAndElement.setBounds(new Rectangle(0,20,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ }
+
+ @Override
+ public void onBoundsUpdate() {
+ for (MPanel panel :getChildComponents()){
+ panel.setSize(new Dimension(bounds.width, 20));
+ }
+ }
+
+ @Override
+ public void setParameter(Parameter parameter) {
+ this.parameter = parameter;
+ }
+
+ @Override
+ public void resize(int parentWidth, int parentHeight) {
+ this.setBounds(new Rectangle(0,0,parentWidth, parentHeight));
+ }
+
+ public static class Generator implements ValueEditCreator<ValueEditBoolean> {
+
+ @Override
+ public ValueEditBoolean createValueEdit(Parameter parameter) {
+ return new ValueEditBoolean(parameter);
+ }
+
+ @Override
+ public Object createDefaultValue(Parameter parameter) {
+ return true;
+ }
+
+ @Override
+ public Object cloneObj(Object object) {
+ return object;
+ }
+ }
+}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java
new file mode 100644
index 00000000..7806cafc
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java
@@ -0,0 +1,78 @@
+package kr.syeyoung.dungeonsguide.roomedit.valueedit;
+
+import kr.syeyoung.dungeonsguide.roomedit.MPanel;
+import kr.syeyoung.dungeonsguide.roomedit.Parameter;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MIntegerSelectionButton;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MLabel;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MLabelAndElement;
+import kr.syeyoung.dungeonsguide.roomedit.elements.MTextField;
+
+import java.awt.*;
+
+public class ValueEditInteger extends MPanel implements ValueEdit<Integer> {
+ private Parameter parameter;
+
+
+ public ValueEditInteger(final Parameter parameter2) {
+ this.parameter = parameter2;
+ {
+ MLabel label = new MLabel() {
+ @Override
+ public String getText() {
+ return parameter.getPreviousData().toString();
+ }
+ };
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("Prev",label);
+ mLabelAndElement.setBounds(new Rectangle(0,0,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ {
+ int newData = (Integer) parameter.getNewData();
+ final MIntegerSelectionButton textField = new MIntegerSelectionButton(newData);
+ textField.setOnUpdate(new Runnable() {
+ @Override
+ public void run() {
+ parameter.setNewData(textField.getData());
+ }
+ });
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("New",textField);
+ mLabelAndElement.setBounds(new Rectangle(0,20,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ }
+
+ @Override
+ public void onBoundsUpdate() {
+ for (MPanel panel :getChildComponents()){
+ panel.setSize(new Dimension(bounds.width, 20));
+ }
+ }
+
+ @Override
+ public void setParameter(Parameter parameter) {
+ this.parameter = parameter;
+ }
+
+ @Override
+ public void resize(int parentWidth, int parentHeight) {
+ this.setBounds(new Rectangle(0,0,parentWidth, parentHeight));
+ }
+
+ public static class Generator implements ValueEditCreator<ValueEditInteger> {
+
+ @Override
+ public ValueEditInteger createValueEdit(Parameter parameter) {
+ return new ValueEditInteger(parameter);
+ }
+
+ @Override
+ public Object createDefaultValue(Parameter parameter) {
+ return 0;
+ }
+
+ @Override
+ public Object cloneObj(Object object) {
+ return object;
+ }
+ }
+}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java
index 42488e98..d71ebc88 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditNull.java
@@ -12,4 +12,9 @@ public class ValueEditNull implements ValueEditCreator {
public ActuallyClonable createDefaultValue(Parameter parameter) {
return null;
}
+
+ @Override
+ public Object cloneObj(Object object) {
+ return null;
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java
new file mode 100644
index 00000000..c91e0bea
--- /dev/null
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java
@@ -0,0 +1,130 @@
+package kr.syeyoung.dungeonsguide.roomedit.valueedit;
+
+import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
+import kr.syeyoung.dungeonsguide.roomedit.EditingContext;
+import kr.syeyoung.dungeonsguide.roomedit.MPanel;
+import kr.syeyoung.dungeonsguide.roomedit.Parameter;
+import kr.syeyoung.dungeonsguide.roomedit.elements.*;
+import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import scala.actors.threadpool.Arrays;
+
+import java.awt.*;
+
+public class ValueEditOffsetPoint extends MPanel implements ValueEdit<String> {
+ private Parameter parameter;
+
+
+ public ValueEditOffsetPoint(final Parameter parameter2) {
+ this.parameter = parameter2;
+ {
+ MLabel label = new MLabel() {
+ @Override
+ public String getText() {
+ return parameter.getPreviousData().toString();
+ }
+ };
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("Prev",label);
+ mLabelAndElement.setBounds(new Rectangle(0,0,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ OffsetPoint newData = (OffsetPoint) parameter.getNewData();
+ {
+ final MIntegerSelectionButton textField = new MIntegerSelectionButton(newData.getX());
+ textField.setOnUpdate(new Runnable() {
+ @Override
+ public void run() {
+ ((OffsetPoint) parameter.getNewData()).setX(textField.getData());
+ }
+ });
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("x",textField);
+ mLabelAndElement.setBounds(new Rectangle(0,20,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ {
+ final MIntegerSelectionButton textField = new MIntegerSelectionButton(newData.getY());
+ textField.setOnUpdate(new Runnable() {
+ @Override
+ public void run() {
+ ((OffsetPoint) parameter.getNewData()).setY(textField.getData());
+ }
+ });
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("y",textField);
+ mLabelAndElement.setBounds(new Rectangle(0,40,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ {
+ final MIntegerSelectionButton textField = new MIntegerSelectionButton(newData.getZ());
+ textField.setOnUpdate(new Runnable() {
+ @Override
+ public void run() {
+ ((OffsetPoint) parameter.getNewData()).setX(textField.getData());
+ }
+ });
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("z",textField);
+ mLabelAndElement.setBounds(new Rectangle(0,60,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ {
+ final MLabel setToHEre = new MLabel() {
+ @Override
+ public String getText() {
+ OffsetPoint offsetPoint = (OffsetPoint) parameter.getNewData();
+ return Block.getIdFromBlock(offsetPoint.getBlock(EditingContext.getEditingContext().getRoom())) +
+ ":" + offsetPoint.getData(EditingContext.getEditingContext().getRoom());
+ }
+ };
+ MLabelAndElement mLabelAndElement = new MLabelAndElement("newPt",setToHEre);
+ mLabelAndElement.setBounds(new Rectangle(0,80,bounds.width,20));
+ add(mLabelAndElement);
+ }
+ }
+
+ @Override
+ public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) {
+ RenderUtils.highlightBlock2(((OffsetPoint)parameter.getPreviousData()).getBlockPos(EditingContext.getEditingContext().getRoom()), new Color(255,0,0,150), partialTicks);
+ RenderUtils.highlightBlock2(((OffsetPoint)parameter.getNewData()).getBlockPos(EditingContext.getEditingContext().getRoom()), new Color(0,255,0,150), partialTicks);
+ }
+
+ @Override
+ public void onBoundsUpdate() {
+ for (MPanel panel :getChildComponents()){
+ panel.setSize(new Dimension(bounds.width, 20));
+ }
+ }
+
+ @Override
+ public void setParameter(Parameter parameter) {
+ this.parameter = parameter;
+ }
+
+ @Override
+ public void resize(int parentWidth, int parentHeight) {
+ this.setBounds(new Rectangle(0,0,parentWidth, parentHeight));
+ }
+
+ public static class Generator implements ValueEditCreator<ValueEditOffsetPoint> {
+
+ @Override
+ public ValueEditOffsetPoint createValueEdit(Parameter parameter) {
+ return new ValueEditOffsetPoint(parameter);
+ }
+
+ @Override
+ public Object createDefaultValue(Parameter parameter) {
+ return new OffsetPoint(EditingContext.getEditingContext().getRoom(), Minecraft.getMinecraft().thePlayer.getPosition());
+ }
+
+ @Override
+ public Object cloneObj(Object object) {
+ try {
+ return ((OffsetPoint)object).clone();
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ assert false;
+ return 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 72120c0f..5fd86b22 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java
@@ -1,5 +1,7 @@
package kr.syeyoung.dungeonsguide.roomedit.valueedit;
+import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -19,5 +21,8 @@ public class ValueEditRegistry {
static {
valueEditMap.put("null", new ValueEditNull());
valueEditMap.put(String.class.getName(), new ValueEditString.Generator());
+ valueEditMap.put(Boolean.class.getName(), new ValueEditBoolean.Generator());
+ valueEditMap.put(Integer.class.getName(), new ValueEditInteger.Generator());
+ valueEditMap.put(OffsetPoint.class.getName(), new ValueEditOffsetPoint.Generator());
}
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java
index e7162a1a..96bb9a4f 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java
@@ -26,12 +26,14 @@ public class ValueEditString extends MPanel implements ValueEdit<String> {
add(mLabelAndElement);
}
{
+ String newData = (String) parameter.getNewData();
MTextField textField = new MTextField() {
@Override
public void edit(String str) {
parameter.setNewData(str);
}
};
+ textField.setText(newData);
MLabelAndElement mLabelAndElement = new MLabelAndElement("New",textField);
mLabelAndElement.setBounds(new Rectangle(0,20,bounds.width,20));
add(mLabelAndElement);