diff --git a/src/main/java/noppes/npcs/client/gui/util/animation/AnimationGraphEditor.java b/src/main/java/noppes/npcs/client/gui/util/animation/AnimationGraphEditor.java index 055d0055f..ad117ad4f 100644 --- a/src/main/java/noppes/npcs/client/gui/util/animation/AnimationGraphEditor.java +++ b/src/main/java/noppes/npcs/client/gui/util/animation/AnimationGraphEditor.java @@ -2,6 +2,7 @@ package noppes.npcs.client.gui.util.animation; import noppes.npcs.client.gui.util.GuiNPCInterface; import noppes.npcs.client.gui.util.GuiUtil; +import noppes.npcs.client.gui.util.animation.panel.PanelActiveFrame; import noppes.npcs.client.gui.util.animation.panel.PanelFrameType; import noppes.npcs.constants.animation.EnumFrameType; @@ -9,6 +10,7 @@ public class AnimationGraphEditor extends ViewportGraphEditor { public GridPointManager pointManager; public PanelFrameType frameTypePanel = new PanelFrameType(this); + public PanelActiveFrame activeFramePanel = new PanelActiveFrame(this); public AnimationGraphEditor(GuiNPCInterface parent) { super(parent); @@ -18,13 +20,13 @@ public class AnimationGraphEditor extends ViewportGraphEditor { public void initGui(int startX, int startY, int endX, int endY) { super.initGui(startX, startY, endX, endY); - frameTypePanel.initGui(startX - 70, startY, startX, endY); + frameTypePanel.initGui(startX - 70, startY, startX, startY + 78); + activeFramePanel.initGui(startX - 70, startY + 79, startX, endY-1); } public void drawScreen(int mouseX, int mouseY, float partialTicks, int wheel) { - GuiUtil.drawGradientRect(startX, startY, endX, endY, 0xFF303030, 0xFF303030); - frameTypePanel.draw(); + activeFramePanel.draw(); grid.draw(mouseX, mouseY, partialTicks, wheel); pointManager.draw(mouseX, mouseY, partialTicks); presetOverlay.draw(mouseX, mouseY, wheel); @@ -33,18 +35,21 @@ public class AnimationGraphEditor extends ViewportGraphEditor { public void mouseClicked(int mouseX, int mouseY, int button) { super.mouseClicked(mouseX, mouseY, button); frameTypePanel.mouseClicked(mouseX, mouseY, button); + activeFramePanel.mouseClicked(mouseX, mouseY, button); pointManager.mouseClicked(mouseX, mouseY, button); } public void keyTyped(char c, int i) { super.keyTyped(c, i); frameTypePanel.keyTyped(c, i); + activeFramePanel.keyTyped(c, i); pointManager.keyTyped(c, i); } public EnumFrameType getSelectedType() { return frameTypePanel.selectedElement.type; } + public void setSelectedType(EnumFrameType type) { frameTypePanel.list.forEach(element -> { if(element.type == type) diff --git a/src/main/java/noppes/npcs/client/gui/util/animation/panel/PanelActiveFrame.java b/src/main/java/noppes/npcs/client/gui/util/animation/panel/PanelActiveFrame.java new file mode 100644 index 000000000..4be5d4dd8 --- /dev/null +++ b/src/main/java/noppes/npcs/client/gui/util/animation/panel/PanelActiveFrame.java @@ -0,0 +1,99 @@ +package noppes.npcs.client.gui.util.animation.panel; + +import net.minecraft.client.Minecraft; +import noppes.npcs.client.gui.util.GuiUtil; +import noppes.npcs.client.gui.util.animation.AnimationGraphEditor; +import noppes.npcs.client.gui.util.animation.OverlayKeyPresetViewer; +import noppes.npcs.client.utils.Color; +import org.lwjgl.opengl.GL11; + +public class PanelActiveFrame { + public AnimationGraphEditor graph; + + public int startX, startY, endX, endY, width, height; + public float scale = 0.6f; + public int elementHeight = 11, elementSpacing = 2; + + public PanelTextBox frame = new PanelTextBox(), value = new PanelTextBox(); + + public PanelActiveFrame(AnimationGraphEditor graph) { + this.graph = graph; + } + + public void initGui(int startX, int startY, int endX, int endY) { + this.startX = startX; + this.startY = startY; + this.endX = endX; + this.endY = endY; + this.width = endX - startX; + this.height = endY - startY; + } + + public void draw() { + int mouseX = graph.parent.mouseX, mouseY = graph.parent.mouseY; + + GL11.glPushMatrix(); + GL11.glTranslatef(startX, startY + 1, 0); + // GuiUtil.drawRectD(0, 0, width - 1, height, 0xff3d3d3d); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + new Color(0X2D2D2D,0.75F).glColor(); + Minecraft.getMinecraft().getTextureManager().bindTexture(OverlayKeyPresetViewer.TEXTURE); + GuiUtil.drawTexturedModalRect(0, -38, 88, 77, 44, 435); + GL11.glDisable(GL11.GL_BLEND); + + + GL11.glPushMatrix(); + GL11.glScalef(scale, scale, 1); + + GL11.glPushMatrix(); + GL11.glRotatef(-90,0,0,1); + graph.getFontRenderer().drawString("Active frame", -62, -14, 0xdddddd); + GuiUtil.drawHorizontalLine(-6,-62,-2,0xffdddddd); + GL11.glPopMatrix(); + + + // GL11.glTranslatef(0, 17, 0); + graph.getFontRenderer().drawString("Easing", 9, 3, 0xb1b1b1); + GL11.glTranslatef(0, 17, 0); + graph.getFontRenderer().drawString("-Type", 9, 0, 0xb1b1b1); + GL11.glTranslatef(0, 18, 0); + graph.getFontRenderer().drawString("Frame", 9, 0, 0xb1b1b1); + + GL11.glTranslatef(0, 15, 0); + graph.getFontRenderer().drawString("Value", 9, 0, 0xb1b1b1); + GL11.glPopMatrix(); + + frame.screenX = 29; //remove scaling from maxStringWidth + frame.screenY = 11; + frame.boxScaleX = 1.2f; + frame.textScale = scale; + + boolean isAboveFrame = frame.isMouseAbove(mouseX - startX, mouseY - startY); + frame.boxColor = new Color(isAboveFrame ? 0x797979 : 0x545454); + frame.draw(graph.mc.fontRenderer); + + value.screenX = 29; //remove scaling from maxStringWidth + value.screenY = 20; + value.boxScaleX = 1.2f; + value.textScale = scale; + boolean isAboveValue = value.isMouseAbove(mouseX - startX, mouseY - startY); + value.boxColor = new Color(isAboveValue ? 0x797979 : 0x545454); + value.draw(graph.mc.fontRenderer); + + GL11.glPopMatrix(); + } + + public void keyTyped(char c, int i) { + + } + + public void mouseClicked(int mouseX, int mouseY, int button) { + + } + + public boolean isMouseAbove(int mouseX, int mouseY) { + return mouseX >= startX && mouseX < endX && mouseY >= startY && mouseY < endY; + } +} diff --git a/src/main/resources/assets/customnpcs/textures/gui/keypreset_highres.png b/src/main/resources/assets/customnpcs/textures/gui/keypreset_highres.png index 7ae192fea..bd393937b 100644 Binary files a/src/main/resources/assets/customnpcs/textures/gui/keypreset_highres.png and b/src/main/resources/assets/customnpcs/textures/gui/keypreset_highres.png differ