diff options
| author | syeyoung <cyong06@naver.com> | 2021-01-09 14:00:44 +0900 | 
|---|---|---|
| committer | syeyoung <cyong06@naver.com> | 2021-01-09 14:00:44 +0900 | 
| commit | 3513364b2177cb88c57284c113b367000e93f2e5 (patch) | |
| tree | dcfc0401cada0bfe319422fa3fe1c61493498777 /src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit | |
| parent | b382461db0b5fb96271bf548fa5aa89f0981ae05 (diff) | |
| download | Skyblock-Dungeons-Guide-3513364b2177cb88c57284c113b367000e93f2e5.tar.gz Skyblock-Dungeons-Guide-3513364b2177cb88c57284c113b367000e93f2e5.tar.bz2 Skyblock-Dungeons-Guide-3513364b2177cb88c57284c113b367000e93f2e5.zip | |
what?
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit')
3 files changed, 109 insertions, 15 deletions
| diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditAColor.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditAColor.java index 1dc52921..1a277cb1 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditAColor.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditAColor.java @@ -54,6 +54,7 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {          Color color = (Color) parameter2.getNewData();          Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), hsv); +        alpha = color.getAlpha() / 255.0f;          {              h = new MFloatSelectionButton(hsv[0] * 360); @@ -99,31 +100,33 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {              a.setOnUpdate(new Runnable() {                  @Override                  public void run() { -                    alpha = v.getData() / 100; +                    alpha = a.getData() / 100;                      update();                  }              }); -            MLabelAndElement mLabelAndElement = new MLabelAndElement("V", v); +            MLabelAndElement mLabelAndElement = new MLabelAndElement("A", a);              mLabelAndElement.setBounds(new Rectangle(0,20,getBounds().width,20));              add(mLabelAndElement);          }      }      private float[] hsv = new float[3]; -    private float alpha; +    private float alpha = 0;      public void update() {          if (hsv[2] > 1) hsv[2] = 1;          if (hsv[2] < 0) hsv[2] = 0;          if (hsv[1] > 1) hsv[1] = 1;          if (hsv[1] < 0) hsv[1] = 0; -        parameter.setNewData(new Color(Color.HSBtoRGB(hsv[0], hsv[1], hsv[2]))); +        parameter.setNewData(new AColor(Color.HSBtoRGB(hsv[0], hsv[1], hsv[2]) & 0xffffff | ((int)(alpha * 255)) << 24, true ));          h.setData((float) Math.floor(hsv[0] * 360));          s.setData((float) Math.floor(hsv[1] * 100));          v.setData((float) Math.floor(hsv[2] * 100)); +        a.setData((float) Math.floor(alpha * 100));          h.updateSelected();          s.updateSelected();          v.updateSelected(); +        a.updateSelected();      }      @Override      public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) { @@ -144,15 +147,18 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {          float g = (rgb >> 8 & 255) / 255.0f;          float b = (rgb & 255) / 255.0f;          GL11.glBegin(GL11.GL_TRIANGLES); -        GL11.glColor4f(0,0,0,1);GL11.glVertex3i(25+width ,45, 0); -        GL11.glColor4f(0,0,0,1);GL11.glVertex3i(10+width , 45, 0); -        GL11.glColor4f(r,g,b,1);GL11.glVertex3i(25+width , 45+width, 0); +        GL11.glColor4f(0,0,0,alpha);GL11.glVertex3i(25+width ,45, 0); +        GL11.glColor4f(0,0,0,alpha);GL11.glVertex3i(10+width , 45, 0); +        GL11.glColor4f(r,g,b,alpha);GL11.glVertex3i(25+width , 45+width, 0); -        GL11.glColor4f(0,0,0,1); GL11.glVertex3i(10+width , 45, 0); -        GL11.glColor4f(r,g,b,1);GL11.glVertex3i(10+width , 45 + width, 0); -        GL11.glColor4f(r,g,b,1);GL11.glVertex3i(25+width , 45+width, 0); +        GL11.glColor4f(0,0,0,alpha); GL11.glVertex3i(10+width , 45, 0); +        GL11.glColor4f(r,g,b,alpha);GL11.glVertex3i(10+width , 45 + width, 0); +        GL11.glColor4f(r,g,b,alpha);GL11.glVertex3i(25+width , 45+width, 0);          GL11.glEnd(); - +        rgb = Color.HSBtoRGB(hsv[0], hsv[1], hsv[2]); +        r = (rgb >> 16 & 255) / 255.0f; +        g = (rgb >> 8 & 255) / 255.0f; +        b = (rgb & 255) / 255.0f;          GL11.glBegin(GL11.GL_TRIANGLES);          GL11.glColor4f(r,g,b,0);GL11.glVertex3i(50+width ,45, 0);          GL11.glColor4f(r,g,b,0);GL11.glVertex3i(35+width , 45, 0); @@ -169,7 +175,7 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {          float cy = 45 + radius;          GL11.glBegin(GL11.GL_TRIANGLE_FAN); -        GL11.glColor4f(1,1,1,1); +        GL11.glColor4f(1,1,1,alpha);          GL11.glVertex3f(cx,cy,0);          for (int i = 0; i <= 360; i++) {              float rad = 3.141592653f * i / 180; @@ -177,7 +183,7 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {              float r2 = (rgb2 >> 16 & 255) / 255.0f;              float g2 = (rgb2 >> 8 & 255) / 255.0f;              float b2 = (rgb2 & 255) / 255.0f; -            GL11.glColor4f(r2,g2,b2, 1); +            GL11.glColor4f(r2,g2,b2, alpha);              GL11.glVertex3f(MathHelper.cos(rad) * radius + cx, MathHelper.sin(rad) * radius + cy, 0);          }          GL11.glEnd(); @@ -199,6 +205,11 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {          worldrenderer.pos(27+width, 45 + (hsv[2]) * width, 0.5).endVertex();          tessellator.draw(); +        worldrenderer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION); +        worldrenderer.pos(33+width, 45 + (alpha) * width, 0.5).endVertex(); +        worldrenderer.pos(52+width, 45 + (alpha) * width, 0.5).endVertex(); +        tessellator.draw(); +          GL11.glEnable(GL11.GL_TEXTURE_2D);          GL11.glDisable(GL11.GL_BLEND);          GL11.glColor4f(1,1,1,1); @@ -234,7 +245,7 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {          {              if (35+width <= relMouseX && relMouseX <= 50 + width &&                      45 <= relMouseY && relMouseY <= 45 + width) { -                hsv[2] = (relMouseY - 45) / (float)width; +                alpha = (relMouseY - 45) / (float)width;                  selected = 3;              }          } @@ -243,7 +254,7 @@ public class ValueEditAColor extends MPanel implements ValueEdit<AColor> {      @Override      public void mouseClickMove(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int clickedMouseButton, long timeSinceLastClick) { -        int width = getBounds().width - 30; +        int width = getBounds().width - 60;          float radius = width / 2f;          float circleX = 5 + radius;          float circleY = 45 + radius; diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditFloat.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditFloat.java new file mode 100755 index 00000000..33520f89 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditFloat.java @@ -0,0 +1,82 @@ +package kr.syeyoung.dungeonsguide.roomedit.valueedit; + +import kr.syeyoung.dungeonsguide.roomedit.MPanel; +import kr.syeyoung.dungeonsguide.roomedit.Parameter; +import kr.syeyoung.dungeonsguide.roomedit.elements.MFloatSelectionButton; +import kr.syeyoung.dungeonsguide.roomedit.elements.MIntegerSelectionButton; +import kr.syeyoung.dungeonsguide.roomedit.elements.MLabel; +import kr.syeyoung.dungeonsguide.roomedit.elements.MLabelAndElement; + +import java.awt.*; + +public class ValueEditFloat extends MPanel implements ValueEdit<Float> { +    private Parameter parameter; + + +    @Override +    public void renderWorld(float partialTicks) { + +    } +    public ValueEditFloat(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,getBounds().width,20)); +            add(mLabelAndElement); +        } +        { +            float newData = (Float) parameter.getNewData(); +            final MFloatSelectionButton textField = new MFloatSelectionButton(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,getBounds().width,20)); +            add(mLabelAndElement); +        } +    } + +    @Override +    public void onBoundsUpdate() { +        for (MPanel panel :getChildComponents()){ +            panel.setSize(new Dimension(getBounds().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<ValueEditFloat> { + +        @Override +        public ValueEditFloat createValueEdit(Parameter parameter) { +            return new ValueEditFloat(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/ValueEditRegistry.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java index 001f5bc7..33c9d61b 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/valueedit/ValueEditRegistry.java @@ -28,6 +28,7 @@ public class ValueEditRegistry {          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(Float.class.getName(), new ValueEditFloat.Generator());          valueEditMap.put(OffsetPoint.class.getName(), new ValueEditOffsetPoint.Generator());          valueEditMap.put(OffsetPointSet.class.getName(), new ValueEditOffsetPointSet.Generator());          valueEditMap.put(Color.class.getName(), new ValueEditColor.Generator()); | 
