diff options
| author | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-11-26 15:09:22 +0900 |
|---|---|---|
| committer | syeyoung <42869671+cyoung06@users.noreply.github.com> | 2020-11-26 15:09:22 +0900 |
| commit | dad6bd4f55ac53435d59e84035a531d787886ac6 (patch) | |
| tree | 14ee8e216fcd5aed1d4403317e907c00b55e2504 /src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit | |
| parent | 4d5276d8523e5c4771bdde386c9a538ec544d4c5 (diff) | |
| download | Skyblock-Dungeons-Guide-dad6bd4f55ac53435d59e84035a531d787886ac6.tar.gz Skyblock-Dungeons-Guide-dad6bd4f55ac53435d59e84035a531d787886ac6.tar.bz2 Skyblock-Dungeons-Guide-dad6bd4f55ac53435d59e84035a531d787886ac6.zip | |
value edit stuff
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit')
7 files changed, 201 insertions, 7 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java index dcff4ebd..5025132d 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEdit.java @@ -4,4 +4,6 @@ import kr.syeyoung.dungeonsguide.roomedit.Parameter; public interface ValueEdit<T extends Object> { public void setParameter(Parameter parameter); + + public void renderWorld(float partialTicks); } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java index 7a9b4259..27e4d21d 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditBoolean.java @@ -55,6 +55,11 @@ public class ValueEditBoolean extends MPanel implements ValueEdit<Boolean> { } @Override + public void renderWorld(float partialTicks) { + + } + + @Override public void resize(int parentWidth, int parentHeight) { this.setBounds(new Rectangle(0,0,parentWidth, parentHeight)); } diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java index 7806cafc..63ccfd64 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditInteger.java @@ -13,6 +13,10 @@ public class ValueEditInteger extends MPanel implements ValueEdit<Integer> { private Parameter parameter; + @Override + public void renderWorld(float partialTicks) { + + } public ValueEditInteger(final Parameter parameter2) { this.parameter = parameter2; { diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java index c91e0bea..7e603dc5 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPoint.java @@ -15,6 +15,11 @@ import java.awt.*; public class ValueEditOffsetPoint extends MPanel implements ValueEdit<String> { private Parameter parameter; + @Override + public void renderWorld(float partialTicks) { + RenderUtils.highlightBlock(((OffsetPoint)parameter.getPreviousData()).getBlockPos(EditingContext.getEditingContext().getRoom()), new Color(255,0,0,150), partialTicks); + RenderUtils.highlightBlock(((OffsetPoint)parameter.getNewData()).getBlockPos(EditingContext.getEditingContext().getRoom()), new Color(0,255,0,150), partialTicks); + } public ValueEditOffsetPoint(final Parameter parameter2) { this.parameter = parameter2; @@ -59,7 +64,7 @@ public class ValueEditOffsetPoint extends MPanel implements ValueEdit<String> { textField.setOnUpdate(new Runnable() { @Override public void run() { - ((OffsetPoint) parameter.getNewData()).setX(textField.getData()); + ((OffsetPoint) parameter.getNewData()).setZ(textField.getData()); } }); MLabelAndElement mLabelAndElement = new MLabelAndElement("z",textField); @@ -82,12 +87,6 @@ public class ValueEditOffsetPoint extends MPanel implements ValueEdit<String> { } @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)); diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPointSet.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPointSet.java new file mode 100644 index 00000000..a701894f --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditOffsetPointSet.java @@ -0,0 +1,178 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint; +import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet; +import kr.syeyoung.dungeonsguide.roomedit.EditingContext; +import kr.syeyoung.dungeonsguide.roomedit.MPanel; +import kr.syeyoung.dungeonsguide.roomedit.Parameter; +import kr.syeyoung.dungeonsguide.roomedit.elements.MButton; +import kr.syeyoung.dungeonsguide.roomedit.elements.MOffsetPoint; +import kr.syeyoung.dungeonsguide.roomedit.elements.MParameter; +import kr.syeyoung.dungeonsguide.utils.RenderUtils; +import lombok.Getter; +import net.minecraft.client.Minecraft; + +import java.awt.*; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + +public class ValueEditOffsetPointSet extends MPanel implements ValueEdit<OffsetPointSet> { + private Parameter parameter; + + // scroll pane + // just create + // add set + + private MPanel scroll; + @Getter + private List<MPanel> MParameters = new ArrayList<MPanel>(); + + private MButton add, addSet; + + public void delete(OffsetPoint offsetPoint) { + ((OffsetPointSet)parameter.getNewData()).getOffsetPointList().remove(offsetPoint); + Iterator<MPanel> iterator = MParameters.iterator(); + while (iterator.hasNext()) { + MOffsetPoint panel = (MOffsetPoint) iterator.next(); + if (panel.getData() == offsetPoint) { + iterator.remove(); + break; + } + } + + } + + public ValueEditOffsetPointSet(final Parameter parameter2) { + this.parameter = parameter2; + { + scroll = new MPanel() { + private int offsetY = 0; + + @Override + public List<MPanel> getChildComponents() { + return MParameters; + } + + @Override + public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) { + int heights = 0; + for (MPanel panel:getChildComponents()) { + panel.setPosition(new Point(0, -offsetY + heights)); + heights += panel.getBounds().height; + } + } + + @Override + public void onBoundsUpdate() { + for (MPanel panel :getChildComponents()){ + panel.setSize(new Dimension(bounds.width, 20)); + } + } + @Override + public void resize(int parentWidth, int parentHeight) { + this.setBounds(new Rectangle(5,5,parentWidth-10,parentHeight-10)); + } + + @Override + public void mouseScrolled(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0, int scrollAmount) { + if (new Rectangle(new Point(0,0), getSize()).contains(relMouseX0, relMouseY0)) { + if (scrollAmount >0) offsetY += 20; + else if (scrollAmount < 0) offsetY -= 20; + if (offsetY <0) offsetY = 0; + } + } + }; + scroll.setBounds(new Rectangle(0,0,bounds.width, bounds.height-20)); + add(scroll); + } + + { + add = new MButton() { + @Override + public void resize(int parentWidth, int parentHeight) { + setBounds(new Rectangle(0,parentHeight - 20, parentWidth / 2, 20)); + } + }; + add.setText("Add"); + add.setBackgroundColor(Color.green); + add.setOnActionPerformed(new Runnable() { + @Override + public void run() { + OffsetPoint offsetPoint = new OffsetPoint(EditingContext.getEditingContext().getRoom(), Minecraft.getMinecraft().thePlayer.getPosition()); + MParameters.add(new MOffsetPoint(ValueEditOffsetPointSet.this, offsetPoint)); + ((OffsetPointSet)parameter.getNewData()).getOffsetPointList().add(offsetPoint); + } + }); + + addSet = new MButton(){ + @Override + public void resize(int parentWidth, int parentHeight) { + setBounds(new Rectangle(parentWidth / 2,parentHeight - 20, parentWidth / 2, 20)); + } + }; + addSet.setText("Add Set"); + addSet.setBackgroundColor(Color.cyan); + addSet.setOnActionPerformed(new Runnable() { + @Override + public void run() { + //open gui + } + }); + add(add); + add(addSet); + } + for (OffsetPoint offsetPoint : ((OffsetPointSet)parameter.getNewData()).getOffsetPointList()) { + MParameters.add(new MOffsetPoint(this, offsetPoint)); + } + } + + @Override + public void onBoundsUpdate() { + scroll.setBounds(new Rectangle(0,0,bounds.width, bounds.height-20)); + add.setBounds(new Rectangle(0,bounds.height-20,bounds.width / 2, 20)); + addSet.setBounds(new Rectangle(bounds.width / 2,bounds.height-20,bounds.width / 2, 20)); + } + + @Override + public void setParameter(Parameter parameter) { + this.parameter = parameter; + } + + @Override + public void renderWorld(float partialTicks) { + for (OffsetPoint offsetPoint :((OffsetPointSet)parameter.getNewData()).getOffsetPointList()) { + RenderUtils.highlightBlock(offsetPoint.getBlockPos(EditingContext.getEditingContext().getRoom()), new Color(0,255,255,50), partialTicks); + } + } + + @Override + public void resize(int parentWidth, int parentHeight) { + this.setBounds(new Rectangle(0,0,parentWidth, parentHeight)); + } + + public static class Generator implements ValueEditCreator<ValueEditOffsetPointSet> { + + @Override + public ValueEditOffsetPointSet createValueEdit(Parameter parameter) { + return new ValueEditOffsetPointSet(parameter); + } + + @Override + public Object createDefaultValue(Parameter parameter) { + return new OffsetPointSet(); + } + + @Override + public Object cloneObj(Object object) { + try { + return ((OffsetPointSet)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 5fd86b22..9ceef61e 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java @@ -1,6 +1,7 @@ package kr.syeyoung.dungeonsguide.roomedit.valueedit; import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint; +import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet; import java.util.ArrayList; import java.util.HashMap; @@ -24,5 +25,6 @@ public class ValueEditRegistry { valueEditMap.put(Boolean.class.getName(), new ValueEditBoolean.Generator()); valueEditMap.put(Integer.class.getName(), new ValueEditInteger.Generator()); valueEditMap.put(OffsetPoint.class.getName(), new ValueEditOffsetPoint.Generator()); + valueEditMap.put(OffsetPointSet.class.getName(), new ValueEditOffsetPointSet.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 96bb9a4f..abdda81f 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditString.java @@ -11,6 +11,10 @@ import java.awt.*; public class ValueEditString extends MPanel implements ValueEdit<String> { private Parameter parameter; + @Override + public void renderWorld(float partialTicks) { + + } public ValueEditString(Parameter parameter2) { this.parameter = parameter2; |
