diff options
| author | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-11-26 13:02:20 +0900 | 
|---|---|---|
| committer | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-11-26 13:02:20 +0900 | 
| commit | 4d5276d8523e5c4771bdde386c9a538ec544d4c5 (patch) | |
| tree | 9c504ad9c1e441caa4f50cb1e78b00b91fa023ca /src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit | |
| parent | 4ada6858039f3ca2f5de3c81df8c78f481d897d4 (diff) | |
| download | Skyblock-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')
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); | 
