diff options
| author | syeyoung <cyong06@naver.com> | 2021-02-04 21:55:02 +0900 |
|---|---|---|
| committer | syeyoung <cyong06@naver.com> | 2021-02-04 21:55:02 +0900 |
| commit | c37bda238c5072fa50dfa2d87aa137e1bdf5c4ac (patch) | |
| tree | 5a276b3db53c9275cb0da74cf8aed0cfa0e79491 /src/main/java/kr/syeyoung/dungeonsguide/roomedit | |
| parent | 809f6b70870ec2a0fd4e4abfd24539e30d8db11b (diff) | |
| download | Skyblock-Dungeons-Guide-c37bda238c5072fa50dfa2d87aa137e1bdf5c4ac.tar.gz Skyblock-Dungeons-Guide-c37bda238c5072fa50dfa2d87aa137e1bdf5c4ac.tar.bz2 Skyblock-Dungeons-Guide-c37bda238c5072fa50dfa2d87aa137e1bdf5c4ac.zip | |
move guis
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomedit')
42 files changed, 74 insertions, 1344 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/MPanel.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/MPanel.java deleted file mode 100755 index ad350863..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/MPanel.java +++ /dev/null @@ -1,210 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit; - -import lombok.AccessLevel; -import lombok.Getter; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.ScaledResolution; -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.OpenGlHelper; -import org.lwjgl.opengl.GL11; -import org.w3c.dom.css.Rect; - -import java.awt.*; -import java.io.IOException; -import java.util.List; -import java.util.ArrayList; -import java.util.concurrent.CopyOnWriteArrayList; - -@Getter -public class MPanel { - protected Rectangle bounds = new Rectangle(0,0,0,0); // relative to parent - - protected List<MPanel> childComponents = new CopyOnWriteArrayList<MPanel>(); - - protected Color backgroundColor = new Color(0,0,0,0); - - protected Rectangle lastAbsClip = new Rectangle(0,0,0,0); - - @Getter(AccessLevel.PUBLIC) - protected boolean isFocused; - - public void setBackgroundColor(Color c) { - if (c == null) return; - this.backgroundColor = c; - } - - public void setPosition(Point pt) { - this.setBounds(new Rectangle(pt.x, pt.y, getBounds().width, getBounds().height)); - } - - public void setSize(Dimension dim) { - this.setBounds(new Rectangle(getBounds().x, getBounds().y, dim.width, dim.height)); - } - - public Dimension getSize() { - return getBounds().getSize(); - } - - public void setBounds(Rectangle bounds) { - if (bounds == null) return; - this.bounds.x = bounds.x; - this.bounds.y = bounds.y; - this.bounds.width = bounds.width; - this.bounds.height = bounds.height; - - for (MPanel childComponent : childComponents) { - childComponent.resize0(getBounds().width, getBounds().height); - } - onBoundsUpdate(); - } - - public void onBoundsUpdate() { - - } - - public void add(MPanel child) { - this.childComponents.add(child); - } - - public void remove(MPanel panel) { - this.childComponents.remove(panel); - } - - public void render0(ScaledResolution resolution, Point parentPoint, Rectangle parentClip, int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks) { // 0,0 - a a - - - int relMousex = relMousex0 - getBounds().x; - int relMousey = relMousey0 - getBounds().y; - - GlStateManager.translate(getBounds().x, getBounds().y, 0); - GlStateManager.color(1,1,1,0); - - - Rectangle absBound = getBounds().getBounds(); - absBound.setLocation(absBound.x + parentPoint.x, absBound.y + parentPoint.y); - Rectangle clip = determineClip(parentClip, absBound); - lastAbsClip = clip; - - clip(resolution, clip.x, clip.y, clip.width, clip.height); - GlStateManager.pushAttrib(); - GL11.glEnable(GL11.GL_SCISSOR_TEST); - - GlStateManager.pushAttrib(); - GuiScreen.drawRect(0,0, getBounds().width, getBounds().height, backgroundColor.getRGB()); - GlStateManager.popAttrib(); - - GlStateManager.pushMatrix(); - GlStateManager.pushAttrib(); - render(absMousex, absMousey, relMousex, relMousey, partialTicks, clip); - GlStateManager.popAttrib(); - GlStateManager.popMatrix(); - - GL11.glDisable(GL11.GL_SCISSOR_TEST); - GL11.glPopAttrib(); - - - Point newPt = new Point(parentPoint.x + getBounds().x, parentPoint.y + getBounds().y); - - for (MPanel mPanel : getChildComponents()){ - GlStateManager.pushMatrix(); - GlStateManager.pushAttrib(); - mPanel.render0(resolution, newPt, clip, absMousex, absMousey, relMousex, relMousey, partialTicks); - GlStateManager.popAttrib(); - GlStateManager.popMatrix(); - } - } - - public void clip(ScaledResolution resolution, int x, int y, int width, int height) { - int scale = resolution.getScaleFactor(); - GL11.glScissor((x ) * scale, Minecraft.getMinecraft().displayHeight - (y + height) * scale, (width) * scale, height * scale); - } - - private Rectangle determineClip(Rectangle rect1, Rectangle rect2) { - int minX = Math.max(rect1.x, rect2.x); - int minY = Math.max(rect1.y, rect2.y); - int maxX = Math.min(rect1.x + rect1.width, rect2.x + rect2.width); - int maxY = Math.min(rect1.y + rect1.height, rect2.y +rect2.height); - if (minX > maxX) return new Rectangle(0,0,0,0); - if (minY > maxY) return new Rectangle(0,0,0,0); - return new Rectangle(minX, minY, maxX - minX, maxY - minY); - } - - public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) {} - - public void resize0(int parentWidth, int parentHeight) { - resize(parentWidth, parentHeight); - } - - public void resize(int parentWidth, int parentHeight) {} - - - public void keyTyped0(char typedChar, int keyCode) { - for (MPanel childComponent : getChildComponents()) { - childComponent.keyTyped0(typedChar, keyCode); - } - - if (isFocused) - keyTyped(typedChar, keyCode); - } - public void keyTyped(char typedChar, int keyCode) {} - - public boolean mouseClicked0(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0, int mouseButton) { - int relMousex = relMouseX0 - getBounds().x; - int relMousey = relMouseY0 - getBounds().y; - - boolean noClip = true; - boolean focusedOverall = false; - for (MPanel childComponent : getChildComponents()) { - if (childComponent.mouseClicked0(absMouseX, absMouseY, relMousex, relMousey, mouseButton)) { - noClip = false; - focusedOverall = true; - } - } - - if (getBounds().contains(relMouseX0, relMouseY0) && noClip) { - isFocused = true; - focusedOverall = true; - } else { - isFocused = false; - } - - mouseClicked(absMouseX, absMouseY, relMousex, relMousey, mouseButton); - return focusedOverall; - } - - public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) {} - - public void mouseReleased0(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0, int state) { - int relMousex = relMouseX0 - getBounds().x; - int relMousey = relMouseY0 - getBounds().y; - - for (MPanel childComponent : getChildComponents()) { - childComponent.mouseReleased0(absMouseX, absMouseY, relMousex, relMousey, state); - } - mouseReleased(absMouseX, absMouseY, relMousex, relMousey, state); - } - public void mouseReleased(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int state) {} - - public void mouseClickMove0(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0, int clickedMouseButton, long timeSinceLastClick) { - int relMousex = relMouseX0 - getBounds().x; - int relMousey = relMouseY0 - getBounds().y; - - for (MPanel childComponent : getChildComponents()) { - childComponent.mouseClickMove0(absMouseX, absMouseY, relMousex, relMousey, clickedMouseButton, timeSinceLastClick); - } - mouseClickMove(absMouseX, absMouseY, relMousex, relMousey, clickedMouseButton, timeSinceLastClick); - } - public void mouseClickMove(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int clickedMouseButton, long timeSinceLastClick) {} - - public void mouseScrolled0(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0, int scrollAmount) { - int relMousex = relMouseX0 - getBounds().x; - int relMousey = relMouseY0 - getBounds().y; - - for (MPanel childComponent : getChildComponents()) { - childComponent.mouseScrolled0(absMouseX, absMouseY, relMousex, relMousey, scrollAmount); - } - mouseScrolled(absMouseX, absMouseY, relMousex, relMousey, scrollAmount); - } - public void mouseScrolled(int absMouseX, int absMouseY, int relMouseX0, int relMouseY0, int scrollAmount) {} -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MButton.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MButton.java deleted file mode 100755 index 7d6581fc..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MButton.java +++ /dev/null @@ -1,54 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit.elements; - -import kr.syeyoung.dungeonsguide.roomedit.MPanel; -import lombok.Getter; -import lombok.Setter; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.Gui; -import org.lwjgl.opengl.GL11; -import org.w3c.dom.css.Rect; - -import java.awt.*; - -@Getter -@Setter -public class MButton extends MPanel { - private String text; - - private Color foreground = Color.white; - private Color hover = Color.gray; - private Color clicked = Color.lightGray; - private Color disabled = Color.darkGray; - - private boolean enabled = true; - - private Runnable onActionPerformed; - - @Override - public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle clip) { - Dimension bounds = getSize(); - - Color bg = backgroundColor; - if (!enabled) { - bg = disabled; - } else if (new Rectangle(new Point(0,0),bounds).contains(relMousex0, relMousey0)) { - bg = hover; - } - if (bg != null) - Gui.drawRect(0,0,getBounds().width, getBounds().height, bg.getRGB()); - - FontRenderer renderer = Minecraft.getMinecraft().fontRendererObj; - int width = renderer.getStringWidth(getText()); - int x = (getBounds().width - width) / 2; - int y = (getBounds().height - renderer.FONT_HEIGHT) / 2; - - renderer.drawString(getText(), x,y, foreground.getRGB()); - } - - @Override - public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) { - if (onActionPerformed != null && lastAbsClip.contains(absMouseX, absMouseY)) - onActionPerformed.run(); - } -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MColor.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MColor.java deleted file mode 100644 index 360d1992..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MColor.java +++ /dev/null @@ -1,30 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit.elements; - -import kr.syeyoung.dungeonsguide.roomedit.MPanel; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import net.minecraft.client.gui.Gui; - -import java.awt.*; - -@AllArgsConstructor -@NoArgsConstructor -public class MColor extends MPanel { - @Getter - @Setter - private Color color = Color.white; - @Getter - @Setter - private Dimension size = new Dimension(20,15); - @Override - public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) { - Rectangle rectangle = getBounds(); - - int x = (rectangle.width - getSize().width) / 2; - int y = (rectangle.height - getSize().height) / 2; - - Gui.drawRect(x,y,x+getSize().width,y+getSize().height, getColor().getRGB()); - } -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MFloatSelectionButton.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MFloatSelectionButton.java deleted file mode 100755 index 504d3e33..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MFloatSelectionButton.java +++ /dev/null @@ -1,74 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit.elements; - -import kr.syeyoung.dungeonsguide.roomedit.MPanel; -import lombok.Getter; -import lombok.Setter; - -import java.awt.*; - -@Getter -@Setter -public class MFloatSelectionButton extends MPanel { - - private float data; - - private MButton dec; - private MButton inc; - private MTextField selected; - - @Getter - @Setter - private Runnable onUpdate; - - public MFloatSelectionButton(float data2) { - this.data = data2; - - dec = new MButton(); dec.setText("<"); add(dec); - inc = new MButton(); inc.setText(">"); add(inc); - selected = new MTextField() { - @Override - public String getText() { - return data +""; - } - @Override - public void edit(String str) { - try { - data = Float.parseFloat(str); - onUpdate.run(); - } catch (Exception e) {} - } - }; updateSelected(); add(selected); - - dec.setOnActionPerformed(new Runnable() { - @Override - public void run() { - data--; - updateSelected(); - onUpdate.run(); - } - }); - inc.setOnActionPerformed(new Runnable() { - @Override - public void run() { - data ++; - updateSelected(); - onUpdate.run(); - } - }); - } - - public float getSelected() { - return data; - } - - public void updateSelected() { - selected.setText(data+""); - } - - @Override - public void onBoundsUpdate() { - dec.setBounds(new Rectangle(0,0,getBounds().height, getBounds().height)); - inc.setBounds(new Rectangle(getBounds().width - getBounds().height, 0, getBounds().height, getBounds().height)); - selected.setBounds(new Rectangle(getBounds().height, 0, getBounds().width - getBounds().height - getBounds().height, getBounds().height)); - } -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MIntegerSelectionButton.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MIntegerSelectionButton.java deleted file mode 100755 index c61e4f08..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MIntegerSelectionButton.java +++ /dev/null @@ -1,71 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit.elements; - -import kr.syeyoung.dungeonsguide.roomedit.MPanel; -import lombok.Getter; -import lombok.Setter; - -import java.awt.*; -import java.util.List; - -@Getter -@Setter -public class MIntegerSelectionButton extends MPanel { - - private int data; - - private MButton dec; - private MButton inc; - private MTextField selected; - - @Getter - @Setter - private Runnable onUpdate; - - public MIntegerSelectionButton(int data2) { - this.data = data2; - - dec = new MButton(); dec.setText("<"); add(dec); - inc = new MButton(); inc.setText(">"); add(inc); - selected = new MTextField() { - @Override - public void edit(String str) { - try { - data = Integer.parseInt(str); - onUpdate.run(); - } catch (Exception e) {} - } - }; updateSelected(); add(selected); - - dec.setOnActionPerformed(new Runnable() { - @Override - public void run() { - data--; - updateSelected(); - onUpdate.run(); - } - }); - inc.setOnActionPerformed(new Runnable() { - @Override - public void run() { - data ++; - updateSelected(); - onUpdate.run(); - } - }); - } - - public int getSelected() { - return data; - } - - private void updateSelected() { - selected.setText(data+""); - } - - @Override - public void onBoundsUpdate() { - dec.setBounds(new Rectangle(0,0,getBounds().height, getBounds().height)); - inc.setBounds(new Rectangle(getBounds().width - getBounds().height, 0, getBounds().height, getBounds().height)); - selected.setBounds(new Rectangle(getBounds().height, 0, getBounds().width - getBounds().height - getBounds().height, getBounds().height)); - } -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MLabel.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MLabel.java deleted file mode 100755 index d01b858f..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MLabel.java +++ /dev/null @@ -1,48 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit.elements; - -import kr.syeyoung.dungeonsguide.roomedit.MPanel; -import lombok.Getter; -import lombok.Setter; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; - -import java.awt.*; - -public class MLabel extends MPanel { - @Getter - @Setter - private String text; - - @Getter - @Setter - private Color foreground = Color.white; - - public enum Alignment { - LEFT, CENTER, RIGHT - } - @Getter - @Setter - private Alignment alignment= Alignment.LEFT; - - @Override - public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle clip) { - Dimension bounds = getSize(); - - FontRenderer renderer = Minecraft.getMinecraft().fontRendererObj; - int width = renderer.getStringWidth(getText()); - int x,y; - if (alignment == Alignment.CENTER) { - x = (getBounds().width - width) / 2; - y = (getBounds().height - renderer.FONT_HEIGHT) / 2; - } else if (alignment == Alignment.LEFT) { - x = 0; - y = (getBounds().height - renderer.FONT_HEIGHT) / 2; - } else if (alignment == Alignment.RIGHT) { - x = getBounds().width - width; - y = (getBounds().height - renderer.FONT_HEIGHT) / 2; - } else{ - return; - } - renderer.drawString(getText(), x,y, 0xffffff); - } -} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MLabelAndElement.java b/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MLabelAndElement.java deleted file mode 100755 index 9bab1bdb..00000000 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomedit/elements/MLabelAndElement.java +++ /dev/null @@ -1,52 +0,0 @@ -package kr.syeyoung.dungeonsguide.roomedit.elements; - -import kr.syeyoung.dungeonsguide.roomedit.MPanel; -import lombok.Getter; -import lombok.Setter; -import net.minecraft.client.gui.Gui; - -import java.awt.*; - -public class MLabelAndElement extends MPanel { - private MLabel label; - private MPanel element; - - @Getter @Setter - private Color hover; - @Getter @Setter - private Runnable onClick; - - public MLabelAndElement(String label, MPanel element) { - this.add(this.label = new MLabel()); - this.label.setText(label); - this.add(element); - this.element = element; - } - - @Override - public void render(int absMousex, int absMousey, int relMousex0, int relMousey0, float partialTicks, Rectangle scissor) { - if (hover != null && new Rectangle(new Point(0,0),getBounds().getSize()).contains(relMousex0, relMousey0)) { - Gui.drawRect(0,0,getBounds().width, getBounds().height, hover.getRGB()); - } - } - - @Override - public void mouseClicked(int absMouseX, int absMouseY, int relMouseX, int relMouseY, int mouseButton) { - if (onClick!= null && lastAbsClip.contains(absMouseX, absMouseY)) { - onClick.run(); - } - } - - @Override - public void resize(int parentWidth, int parentHeight) { - this.setSize(new Dimension(parentWidth, getBounds().height)); - label.setBounds(new Rectangle(0,0,parentHeight / 3, getBounds().height)); - element.setBounds(new Rectangle(parentWidth / 3,0,parentWidth / 3 * 2, getBounds().height)); - } - - @Override - public void onBoundsUpdate() { - label.setBounds(new Rectangle(0,0,getBounds().width / 3, getBounds().height)); - element.setBounds(new Rectangle(getBounds().width / 3,0,getBounds().width / 3 * 2, getBounds().height)); - } -} |
