From 4e290dde6d3b65c633a32fe1c2bf1738fd250142 Mon Sep 17 00:00:00 2001 From: Discreater Date: Mon, 26 Apr 2021 15:23:19 +0800 Subject: [PATCH] feat: more Gui --- .../jecalculation/client/gui/JecGui.java | 169 ++++++++++++-- .../client/gui/guis/GuiCalculator.java | 24 +- .../client/resource/Resource.java | 39 +++- .../jecalculation/client/widget/Widget.java | 40 +++- .../client/widget/widgets/WButton.java | 28 ++- .../client/widget/widgets/WButtonIcon.java | 31 +-- .../client/widget/widgets/WEntry.java | 9 +- .../client/widget/widgets/WEntryGroup.java | 6 +- .../client/widget/widgets/WIcon.java | 36 +++ .../client/widget/widgets/WLine.java | 4 +- .../client/widget/widgets/WPager.java | 55 +++++ .../client/widget/widgets/WRectangle.java | 25 +++ .../client/widget/widgets/WText.java | 43 ++++ .../client/widget/widgets/WTextField.java | 42 ++++ .../event/handlers/InputEventHandler.java | 1 - .../towdium/jecalculation/gui/GuiHandler.java | 36 --- .../jecalculation/gui/JecaContainer.java | 88 -------- .../jecalculation/gui/JecaGuiContainer.java | 208 ------------------ .../jecalculation/gui/JecaRenderItem.java | 27 --- .../jecalculation/gui/guis/GuiCalculator.java | 149 ------------- .../jecalculation/gui/guis/GuiEditor.java | 106 --------- .../jecalculation/gui/guis/GuiRecipeList.java | 38 ---- .../gui/guis/GuiRecipeSearch.java | 84 ------- .../towdium/jecalculation/item/JecaItem.java | 3 - .../jecalculation/nei/JecaOverlayHandler.java | 61 +++-- .../jecalculation/nei/JecaTooltipHandler.java | 13 +- .../nei/NEICalculatorConfig.java | 9 +- .../towdium/jecalculation/nei/NEIPlugin.java | 1 - .../textures/gui/gui_calculator.png | Bin 2962 -> 0 bytes .../jecalculation/textures/gui/resources.png | Bin 4393 -> 4976 bytes 30 files changed, 516 insertions(+), 859 deletions(-) create mode 100644 src/main/java/me/towdium/jecalculation/client/widget/widgets/WIcon.java create mode 100644 src/main/java/me/towdium/jecalculation/client/widget/widgets/WPager.java create mode 100644 src/main/java/me/towdium/jecalculation/client/widget/widgets/WRectangle.java create mode 100644 src/main/java/me/towdium/jecalculation/client/widget/widgets/WText.java create mode 100644 src/main/java/me/towdium/jecalculation/client/widget/widgets/WTextField.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/GuiHandler.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/JecaContainer.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/JecaGuiContainer.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/JecaRenderItem.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/guis/GuiEditor.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeList.java delete mode 100644 src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeSearch.java delete mode 100644 src/main/resources/assets/jecalculation/textures/gui/gui_calculator.png diff --git a/src/main/java/me/towdium/jecalculation/client/gui/JecGui.java b/src/main/java/me/towdium/jecalculation/client/gui/JecGui.java index 1e893bd..1bf2f14 100644 --- a/src/main/java/me/towdium/jecalculation/client/gui/JecGui.java +++ b/src/main/java/me/towdium/jecalculation/client/gui/JecGui.java @@ -1,10 +1,11 @@ package me.towdium.jecalculation.client.gui; import cpw.mods.fml.client.config.GuiUtils; -import me.towdium.jecalculation.JustEnoughCalculation; import me.towdium.jecalculation.client.resource.Resource; import me.towdium.jecalculation.client.widget.Widget; import me.towdium.jecalculation.polyfill.mc.client.renderer.GlStateManager; +import me.towdium.jecalculation.utils.wrappers.Single; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.inventory.GuiContainer; @@ -15,7 +16,9 @@ import net.minecraft.util.ResourceLocation; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.function.Function; /** * Author: towdium @@ -23,6 +26,9 @@ import java.util.List; */ @ParametersAreNonnullByDefault public class JecGui extends GuiContainer { + public static final int COLOR_GREY = 0xFFA1A1A1; + public static final int COLOR_BLUE = 0xFFb0b9e6; + public List buttonList = super.buttonList; public WidgetManager widgetManager = new WidgetManager(); @@ -44,18 +50,20 @@ public class JecGui extends GuiContainer { widgetManager.onInit(); } - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) { - super.drawScreen(mouseX, mouseY, partialTicks); - GlStateManager.disableLighting(); - widgetManager.onDraw(mouseX, mouseY); - GlStateManager.enableLighting(); + public static boolean mouseIn(int xPos, int yPos, int xSize, int ySize, int xMouse, int yMouse) { + return xMouse > xPos && yMouse > yPos && xMouse <= xPos + xSize && yMouse <= yPos + ySize; } @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { - drawTexture(new ResourceLocation(JustEnoughCalculation.Reference.MODID, - "textures/gui/" + getBackground() + ".png"), guiLeft, guiTop, 0, 0, this.xSize, this.ySize); + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + drawDefaultBackground(); + super.drawScreen(mouseX, mouseY, partialTicks); + GlStateManager.disableLighting(); + GlStateManager.disableDepth(); + widgetManager.onDraw(mouseX, mouseY); + drawExtra(); + GlStateManager.enableLighting(); + GlStateManager.enableDepth(); } @Override @@ -63,22 +71,37 @@ public class JecGui extends GuiContainer { return false; } + @Override + protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { + drawResourceContinuous(Resource.WIDGET_PANEL, guiLeft, guiTop, xSize, ySize, 5, 5, 5, 5); + } + @Override protected void mouseClicked(int mouseX, int mouseY, int mouseButton) { - // here I haven't copied the event thingy, don't think anyone will use it + super.mouseClicked(mouseX, mouseY, mouseButton); widgetManager.onClick(mouseX, mouseY, mouseButton); } // new functions + @Override + protected void keyTyped(char typedChar, int keyCode) { + super.keyTyped(typedChar, keyCode); + widgetManager.onKey(typedChar, keyCode); + } + + public FontRenderer getFontRenderer() { + return fontRendererObj; + } + public void drawResource(Resource r, int xPos, int yPos) { - drawTexture(Resource.location, xPos, yPos, r.getXPos(), r.getYPos(), r.getXSize(), r.getYSize()); + drawTexture(r.getResourceLocation(), xPos, yPos, r.getXPos(), r.getYPos(), r.getXSize(), r.getYSize()); } public void drawResourceContinuous( Resource r, int xPos, int yPos, int xSize, int ySize, int borderTop, int borderBottom, int borderLeft, int borderRight) { - drawTextureContinuous(Resource.location, xPos, yPos, xSize, ySize, + drawTextureContinuous(r.getResourceLocation(), xPos, yPos, xSize, ySize, r.getXPos(), r.getYPos(), r.getXSize(), r.getYSize(), borderTop, borderBottom, borderLeft, borderRight); } @@ -98,8 +121,99 @@ public class JecGui extends GuiContainer { sourceXSize, sourceYSize, borderTop, borderBottom, borderLeft, borderRight, zLevel); } - protected String getBackground() { - return "error"; + public void drawRectangle(int xPos, int yPos, int xSize, int ySize, int color) { + drawRect(xPos, yPos, xPos + xSize, yPos + ySize, color); + } + + public void drawText(int xPos, int yPos, Font f, String... text) { + drawText(xPos, yPos, f, (s) -> 0, text); + } + + public void drawText(int xPos, int yPos, Font f, Function indenter, String... text) { + Single y = new Single<>(0); + boolean unicode = fontRendererObj.getUnicodeFlag(); + if (!f.unicode) fontRendererObj.setUnicodeFlag(false); + GlStateManager.pushMatrix(); + GlStateManager.translate(xPos, yPos, 0); + GlStateManager.scale(f.size, f.size, 1); + Arrays.stream(text).forEachOrdered(s -> { + fontRendererObj.drawString(s, indenter.apply(s), y.value, f.color, f.shadow); + y.value += fontRendererObj.FONT_HEIGHT; + }); + GlStateManager.popMatrix(); + fontRendererObj.setUnicodeFlag(unicode); + } + + public void drawText(int xPos, int yPos, int xSize, Font f, String... text) { + float sizeScaled = xSize / f.size; + int l = fontRendererObj.getStringWidth("..."); + String[] ss = !f.cut ? text : Arrays.stream(text).map(s -> { + int w = fontRendererObj.getStringWidth(s); + if (w <= sizeScaled) return s; + else if (l >= w) return "..."; + else return fontRendererObj.trimStringToWidth(s, (int) sizeScaled - l) + "..."; + }).toArray(String[]::new); + if (f.centred) { + drawText(xPos, yPos, f, (s) -> (int) ((sizeScaled - fontRendererObj.getStringWidth(s)) / 2), ss); + } else { + int maxLen = Arrays.stream(ss).mapToInt(s -> fontRendererObj.getStringWidth(s)).max().orElse(0); + int xOffset = (int) ((sizeScaled - maxLen) / 2); + drawText(xPos, yPos, f, (s) -> xOffset, ss); + } + } + + public void drawText(int xPos, int yPos, int xSize, int ySize, Font f, String... text) { + int yOffset = (ySize - (int) (text.length * fontRendererObj.FONT_HEIGHT * f.size)) / 2; + drawText(xPos, yPos + yOffset, xSize, f, text); + } + + public void drawTooltip(int xPos, int yPos, String... text) { + drawTooltip(xPos, yPos, Arrays.asList(text)); + } + + public void drawTooltip(int xPos, int yPos, List text) { + drawHoveringText(text, xPos, yPos); + GlStateManager.disableLighting(); + GlStateManager.disableDepth(); + } + + public void localize(String key) { + //LocalizationHelper.format(this.getClass(), ) + } + + // function to override + + protected void drawExtra() { + } + + public static class Font { + public static final Font DEFAULT_SHADOW = new Font(0xFFFFFF, true, true, false, true, 1); + public static final Font DEFAULT_NO_SHADOW = new Font(0x404040, false, true, false, true, 1); + public static final Font DEFAULT_HALF = new Font(0xFFFFFF, true, true, true, true, 0.5f); + + public int color; + public boolean shadow, cut, unicode, centred; + public float size; + + /** + * @param color foreground color + * @param shadow whether to draw shadow + * @param cut whether to cut string when exceed xSize + * @param unicode if false, FORCE NOT UNICODE + * @param size font size, 1 for default font size + */ + public Font(int color, boolean shadow, boolean cut, boolean unicode, boolean centred, float size) { + this.color = color; + this.shadow = shadow; + this.cut = cut; + this.size = size; + this.unicode = unicode; + this.centred = centred; + } + + public Font copy() { + return new Font(color, shadow, cut, unicode, centred, size); + } } public class WidgetManager { @@ -111,22 +225,39 @@ public class JecGui extends GuiContainer { public void remove(Widget w) { widgets.remove(w); - w.onRemoved(JecGui.this); + if (w instanceof Widget.Advanced) ((Widget.Advanced) w).onRemoved(JecGui.this); } public void onInit() { - widgets.forEach(w -> w.onGuiInit(JecGui.this)); + widgets.stream().filter(w -> w instanceof Widget.Advanced) + .forEach(w -> ((Widget.Advanced) w).onGuiInit(JecGui.this)); } public void onDraw(int mouseX, int mouseY) { widgets.forEach(widget -> widget.onDraw(JecGui.this, mouseX, mouseY)); } - public void onClick(int xMouse, int yMouse, int button) { - widgets.forEach(w -> w.onClicked(JecGui.this, xMouse, yMouse, button)); + @SuppressWarnings("UnusedReturnValue") + public boolean onClick(int xMouse, int yMouse, int button) { + return widgets.stream().filter(w -> w instanceof Widget.Advanced) + .anyMatch(w -> ((Widget.Advanced) w).onClicked(JecGui.this, xMouse, yMouse, button)); + } + + @SuppressWarnings("UnusedReturnValue") + public boolean onKey(char ch, int code) { + return widgets.stream().filter(w -> w instanceof Widget.Advanced) + .anyMatch(w -> ((Widget.Advanced) w).onKey(JecGui.this, ch, code)); } } public int getGuiLeft() { return guiLeft; } public int getGuiTop() { return guiTop; } + + public void drawHoveringText(String text, int x, int y) { + super.drawHoveringText(Arrays.asList(text), x, y, fontRendererObj); + } + + public void drawHoveringText(List textLines, int x, int y) { + super.drawHoveringText(textLines, x, y, fontRendererObj); + } } diff --git a/src/main/java/me/towdium/jecalculation/client/gui/guis/GuiCalculator.java b/src/main/java/me/towdium/jecalculation/client/gui/guis/GuiCalculator.java index 523b489..7ae79be 100644 --- a/src/main/java/me/towdium/jecalculation/client/gui/guis/GuiCalculator.java +++ b/src/main/java/me/towdium/jecalculation/client/gui/guis/GuiCalculator.java @@ -2,9 +2,7 @@ package me.towdium.jecalculation.client.gui.guis; import me.towdium.jecalculation.client.gui.JecGui; import me.towdium.jecalculation.client.resource.Resource; -import me.towdium.jecalculation.client.widget.widgets.WButtonIcon; -import me.towdium.jecalculation.client.widget.widgets.WEntryGroup; -import me.towdium.jecalculation.client.widget.widgets.WLine; +import me.towdium.jecalculation.client.widget.widgets.*; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; @@ -19,17 +17,17 @@ import javax.annotation.ParametersAreNonnullByDefault; public class GuiCalculator extends JecGui { public GuiCalculator(@Nullable GuiScreen parent) { super(parent); - widgetManager.add(new WButtonIcon(7, 7, Resource.LABEL_NORMAL, Resource.LABEL_FOCUSED) - .setListenerLeft(() -> Minecraft.getMinecraft().displayGuiScreen(null)) - .setListenerRight(() -> Minecraft.getMinecraft().displayGuiScreen(null))); - widgetManager.add(new WButtonIcon(130, 7, Resource.NEW_NORMAL, Resource.NEW_FOCUSED)); - widgetManager.add(new WButtonIcon(149, 7, Resource.SEARCH_NORMAL, Resource.SEARCH_FOCUSED)); + widgetManager.add(new WButtonIcon(7, 7, 20, 20, Resource.BUTTON_LABEL_N, Resource.BUTTON_LABEL_F) + .setListenerLeft(() -> Minecraft.getMinecraft().displayGuiScreen(null)) + .setListenerRight(() -> Minecraft.getMinecraft().displayGuiScreen(null))); + widgetManager.add(new WButtonIcon(130, 7, 20, 20, Resource.BUTTON_NEW_N, Resource.BUTTON_NEW_F)); + widgetManager.add(new WButtonIcon(149, 7, 20, 20, Resource.BUTTON_SEARCH_N, Resource.BUTTON_SEARCH_F)); widgetManager.add(new WEntryGroup(7, 87, 9, 4)); + widgetManager.add(new WEntryGroup(7, 31, 8, 1)); + widgetManager.add(new WEntry(31, 7, 20, 20)); widgetManager.add(new WLine(52)); - } - - @Override - protected String getBackground() { - return "gui_calculator"; + widgetManager.add(new WTextField(62, 7, 63)); + widgetManager.add(new WIcon(151, 31, 18, 18, Resource.ICON_RECENT_N, Resource.ICON_RECENT_F)); + widgetManager.add(new WPager(7, 56, 162)); } } diff --git a/src/main/java/me/towdium/jecalculation/client/resource/Resource.java b/src/main/java/me/towdium/jecalculation/client/resource/Resource.java index 5ab7d7a..f397b05 100644 --- a/src/main/java/me/towdium/jecalculation/client/resource/Resource.java +++ b/src/main/java/me/towdium/jecalculation/client/resource/Resource.java @@ -10,24 +10,37 @@ import net.minecraft.util.ResourceLocation; public class Resource { public static final ResourceLocation location = new ResourceLocation( JustEnoughCalculation.Reference.MODID, "textures/gui/resources.png"); - public static final Resource LABEL_NORMAL = new Resource(0, 14, 14, 14); - public static final Resource LABEL_FOCUSED = new Resource(0, 0, 14, 14); - public static final Resource NEW_NORMAL = new Resource(14, 14, 14, 14); - public static final Resource NEW_FOCUSED = new Resource(14, 0, 14, 14); - public static final Resource SEARCH_NORMAL = new Resource(28, 14, 14, 14); - public static final Resource SEARCH_FOCUSED = new Resource(28, 0, 14, 14); - public static final Resource BUTTON_NORMAL = new Resource(216, 0, 20, 20); - public static final Resource BUTTON_FOCUSED = new Resource(236, 0, 20, 20); - public static final Resource SLOT = new Resource(196, 0, 20, 20); - public static final Resource LINE = new Resource(0, 28, 163, 4); + public static final Resource BUTTON_LABEL_N = new Resource(0, 14, 14, 14); + public static final Resource BUTTON_LABEL_F = new Resource(0, 0, 14, 14); + public static final Resource BUTTON_NEW_N = new Resource(14, 14, 14, 14); + public static final Resource BUTTON_NEW_F = new Resource(14, 0, 14, 14); + public static final Resource BUTTON_SEARCH_N = new Resource(28, 14, 14, 14); + public static final Resource BUTTON_SEARCH_F = new Resource(28, 0, 14, 14); + public static final Resource WIDGET_BUTTON_N = new Resource(216, 0, 20, 20); + public static final Resource WIDGET_BUTTON_F = new Resource(236, 0, 20, 20); + public static final Resource WIDGET_SLOT = new Resource(196, 0, 20, 20); + public static final Resource WIDGET_LINE = new Resource(0, 28, 163, 4); + public static final Resource WIDGET_PANEL = new Resource(176, 0, 20, 20); + public static final Resource WIDGET_ARR_L_F = new Resource(156, 0, 9, 9); + public static final Resource WIDGET_ARR_L_N = new Resource(156, 10, 9, 9); + public static final Resource WIDGET_ARR_R_F = new Resource(166, 0, 9, 9); + public static final Resource WIDGET_ARR_R_N = new Resource(166, 10, 9, 9); + public static final Resource ICON_RECENT_N = new Resource(0, 46, 14, 14); + public static final Resource ICON_RECENT_F = new Resource(0, 32, 14, 14); protected int xPos, yPos, xSize, ySize; + protected ResourceLocation rl; - public Resource(int xPos, int yPos, int xSize, int ySize) { + public Resource(int xPos, int yPos, int xSize, int ySize, ResourceLocation rl) { this.xPos = xPos; this.yPos = yPos; this.xSize = xSize; this.ySize = ySize; + this.rl = rl; + } + + public Resource(int xPos, int yPos, int xSize, int ySize) { + this(xPos, yPos, xSize, ySize, location); } public int getXPos() { @@ -45,4 +58,8 @@ public class Resource { public int getYSize() { return ySize; } + + public ResourceLocation getResourceLocation() { + return rl; + } } diff --git a/src/main/java/me/towdium/jecalculation/client/widget/Widget.java b/src/main/java/me/towdium/jecalculation/client/widget/Widget.java index f48540d..a02c95e 100644 --- a/src/main/java/me/towdium/jecalculation/client/widget/Widget.java +++ b/src/main/java/me/towdium/jecalculation/client/widget/Widget.java @@ -8,15 +8,49 @@ import net.minecraft.client.gui.Gui; * Date: 8/14/17. */ public class Widget extends Gui { - public void onGuiInit(JecGui gui) { + protected static int gl(JecGui gui) { + return gui.getGuiLeft(); + } + + protected static int gt(JecGui gui) { + return gui.getGuiTop(); } public void onDraw(JecGui gui, int xMouse, int yMouse) { } - public void onRemoved(JecGui gui) { + public static class Advanced extends Widget { + public void onRemoved(JecGui gui) { + } + + public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + return false; + } + + public boolean onKey(JecGui gui, char ch, int code) { + return false; + } + + public void onGuiInit(JecGui gui) { + } } - public void onClicked(JecGui gui, int xMouse, int yMouse, int button) { + public class Timer { + long time = System.currentTimeMillis(); + boolean running = false; + + public void setState(boolean b) { + if (!b && running) + running = false; + if (b && !running) { + running = true; + time = System.currentTimeMillis(); + } + } + + public long getTime() { + return running ? System.currentTimeMillis() - time : 0; + } + } } diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButton.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButton.java index fdf0f73..7a36521 100644 --- a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButton.java +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButton.java @@ -10,7 +10,7 @@ import net.minecraft.client.Minecraft; * Author: towdium * Date: 8/14/17. */ -public class WButton extends Widget { +public class WButton extends Widget.Advanced { protected int xPos, yPos, xSize, ySize; protected Runnable lsnrLeft, lsnrRight; protected String text; @@ -34,24 +34,42 @@ public class WButton extends Widget { return this; } + protected static boolean mouseIn(GuiButtonExt button, int x, int y) { + return button.enabled && button.visible && + JecGui.mouseIn(button.xPosition, button.yPosition, button.width, button.height, x, y); + } + + @Override public void onGuiInit(JecGui gui) { super.onGuiInit(gui); - button = new GuiButtonExt(0, xPos + gui.getGuiLeft(), yPos + gui.getGuiTop(), xSize, ySize, text); + button = new GuiButtonExt(0, xPos + gui.getGuiLeft(), yPos + gui.getGuiTop(), xSize, ySize, text) { + @Override + public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) { + return false; + } + }; gui.buttonList.add(button); } @Override - public void onClicked(JecGui gui, int xMouse, int yMouse, int button) { - if (this.button.mousePressed(Minecraft.getMinecraft(), xMouse, yMouse)) { + public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + if (mouseIn(this.button, xMouse, yMouse)) { if (button == 0 && lsnrLeft != null) { lsnrLeft.run(); ClientUtils.playClickSound(1.0F); + return true; } else if (button == 1 && lsnrRight != null) { lsnrLeft.run(); ClientUtils.playClickSound(0.8F); + return true; } - } + return false; + } + + @Override + public void onRemoved(JecGui gui) { + gui.buttonList.remove(button); } } diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButtonIcon.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButtonIcon.java index 4d64bea..36b432c 100644 --- a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButtonIcon.java +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WButtonIcon.java @@ -10,37 +10,38 @@ import net.minecraft.client.Minecraft; * Date: 17-8-17. */ public class WButtonIcon extends WButton { - protected int xPos, yPos; + protected int xPos, yPos, xSize, ySize; protected Resource normal, focused; - public WButtonIcon(int xPos, int yPos, Resource normal, Resource focused) { - super(xPos, yPos, 20, 20, ""); + public WButtonIcon(int xPos, int yPos, int xSize, int ySize, Resource normal, Resource focused) { + super(xPos, yPos, xSize, ySize, ""); this.xPos = xPos; this.yPos = yPos; + this.xSize = xSize; + this.ySize = ySize; this.normal = normal; this.focused = focused; } @Override public void onGuiInit(JecGui gui) { - super.onGuiInit(gui); - gui.buttonList.add(new GuiButtonExt(0, xPos + gui.getGuiLeft(), yPos + gui.getGuiTop(), 20, 20, "") { + button = new GuiButtonExt(0, xPos + gui.getGuiLeft(), yPos + gui.getGuiTop(), xSize, ySize, "") { @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { final int x = this.xPosition; final int y = this.yPosition; this.field_146123_n = mouseX > x + 1 && mouseY > y + 1 && mouseX <= x + width - 1 && mouseY <= y + height - 1; boolean hovered = this.field_146123_n; - gui.drawResource(hovered ? Resource.BUTTON_FOCUSED : Resource.BUTTON_NORMAL, x, y); - String text = displayString; - int strWidth = mc.fontRenderer.getStringWidth(text); - int ellipsisWidth = mc.fontRenderer.getStringWidth("..."); - if (strWidth > width - 6 && strWidth > ellipsisWidth) - text = mc.fontRenderer.trimStringToWidth(text, width - 6 - ellipsisWidth).trim() + "..."; - this.drawCenteredString(mc.fontRenderer, text, x + this.width / 2, y + (this.height - 8) / 2, - hovered ? 16777120 : 14737632); - gui.drawResource(hovered ? focused : normal, x + 3, y + 3); + gui.drawResourceContinuous(hovered ? Resource.WIDGET_BUTTON_F : Resource.WIDGET_BUTTON_N, x, y, width, height, 3, 3, 3, 3); + Resource r = hovered ? focused : normal; + gui.drawResource(r, x + (width - r.getXSize()) / 2, y + (height - r.getYSize()) / 2); } - }); + + @Override + public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) { + return false; + } + }; + gui.buttonList.add(button); } } diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntry.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntry.java index 5e53d17..3065edf 100644 --- a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntry.java +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntry.java @@ -9,9 +9,9 @@ import me.towdium.jecalculation.core.entry.Entry; * Author: towdium * Date: 17-8-17. */ -public class WEntry extends Widget { - protected int xPos, yPos, xSize, ySize; - protected Entry entry; +public class WEntry extends Widget.Advanced { + public int xPos, yPos, xSize, ySize; + public Entry entry; public WEntry(int xPos, int yPos, int xSize, int ySize) { this.xPos = xPos; @@ -30,10 +30,11 @@ public class WEntry extends Widget { @Override public void onDraw(JecGui gui, int xMouse, int yMouse) { - gui.drawResourceContinuous(Resource.SLOT, xPos + gui.getGuiLeft(), yPos + gui.getGuiTop(), + gui.drawResourceContinuous(Resource.WIDGET_SLOT, xPos + gui.getGuiLeft(), yPos + gui.getGuiTop(), xSize, ySize, 3, 3, 3, 3); if (mouseIn(gui, xMouse, yMouse)) drawRect(gui.getGuiLeft() + xPos + 1, gui.getGuiTop() + yPos + 1, gui.getGuiLeft() + xPos + xSize - 1, gui.getGuiTop() + yPos + ySize - 1, 0x80FFFFFF); + // TODO draw itemStack } public boolean mouseIn(JecGui gui, int x, int y) { diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntryGroup.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntryGroup.java index ac804f4..758b12b 100644 --- a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntryGroup.java +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WEntryGroup.java @@ -10,7 +10,7 @@ import java.util.stream.IntStream; * Author: towdium * Date: 17-8-17. */ -public class WEntryGroup extends Widget { +public class WEntryGroup extends Widget.Advanced { ArrayList widgets = new ArrayList<>(); public WEntryGroup(int xPos, int yPos, int column, int row) { @@ -38,7 +38,7 @@ public class WEntryGroup extends Widget { } @Override - public void onClicked(JecGui gui, int xMouse, int yMouse, int button) { - widgets.forEach(w -> w.onClicked(gui, xMouse, yMouse, button)); + public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + return widgets.stream().anyMatch(w -> w.onClicked(gui, xMouse, yMouse, button)); } } diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WIcon.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WIcon.java new file mode 100644 index 0000000..c45f31a --- /dev/null +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WIcon.java @@ -0,0 +1,36 @@ +package me.towdium.jecalculation.client.widget.widgets; + +import me.towdium.jecalculation.client.gui.JecGui; +import me.towdium.jecalculation.client.resource.Resource; +import me.towdium.jecalculation.client.widget.Widget; + + +/** + * Author: towdium + * Date: 17-8-18. + */ +public class WIcon extends Widget { + public int xPos, yPos, xSize, ySize; + public Resource normal, focused; + Timer timer = new Timer(); + + public WIcon(int xPos, int yPos, int xSize, int ySize, Resource normal, Resource focused) { + this.xPos = xPos; + this.yPos = yPos; + this.xSize = xSize; + this.ySize = ySize; + this.normal = normal; + this.focused = focused; + } + + @Override + public void onDraw(JecGui gui, int xMouse, int yMouse) { + boolean hovered = JecGui.mouseIn(xPos + gl(gui), yPos + gt(gui), xSize, ySize, xMouse, yMouse); + gui.drawRectangle(xPos + gl(gui), yPos + gt(gui), xSize, ySize, + hovered ? JecGui.COLOR_BLUE : JecGui.COLOR_GREY); + Resource r = hovered ? focused : normal; + gui.drawResource(r, (xSize - r.getXSize()) / 2 + xPos + gl(gui), (ySize - r.getYSize()) / 2 + yPos + gt(gui)); + timer.setState(hovered); + if (timer.getTime() > 500) gui.drawTooltip(xMouse, yMouse,"hahaa"); // TODO hover + } +} diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WLine.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WLine.java index 75d2138..72db6b4 100644 --- a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WLine.java +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WLine.java @@ -9,7 +9,7 @@ import me.towdium.jecalculation.client.widget.Widget; * Date: 17-8-18. */ public class WLine extends Widget { - protected int y; + public int y; public WLine(int y) { this.y = y; @@ -17,6 +17,6 @@ public class WLine extends Widget { @Override public void onDraw(JecGui gui, int xMouse, int yMouse) { - gui.drawResource(Resource.LINE, 6 + gui.getGuiLeft(), y + gui.getGuiTop() - 1); + gui.drawResource(Resource.WIDGET_LINE, 6 + gui.getGuiLeft(), y + gui.getGuiTop() - 1); } } diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WPager.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WPager.java new file mode 100644 index 0000000..ca906ac --- /dev/null +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WPager.java @@ -0,0 +1,55 @@ +package me.towdium.jecalculation.client.widget.widgets; + +import me.towdium.jecalculation.client.gui.JecGui; +import me.towdium.jecalculation.client.resource.Resource; +import me.towdium.jecalculation.client.widget.Widget; + +import java.util.stream.Stream; + +/** + * Author: towdium + * Date: 17-8-19. + */ +public class WPager extends Widget.Advanced { + public static final int SIZE = 13; + + protected int xPos, xSize, yPos; + protected WButtonIcon left, right; + protected Widget wRect, wText; + + public WPager(int xPos, int yPos, int xSize) { + this.xPos = xPos; + this.xSize = xSize; + this.yPos = yPos; + left = new WButtonIcon(xPos, yPos, SIZE, SIZE, Resource.WIDGET_ARR_L_N, Resource.WIDGET_ARR_L_F); + right = new WButtonIcon(xPos + xSize - SIZE, yPos, SIZE, SIZE, + Resource.WIDGET_ARR_R_N, Resource.WIDGET_ARR_R_F); + wRect = new WRectangle(xPos + SIZE, yPos, xSize - 2 * SIZE, SIZE, JecGui.COLOR_GREY); + wText = new WText(xPos + SIZE, yPos, xSize - 2 * SIZE, SIZE, JecGui.Font.DEFAULT_SHADOW, "test"); // TODO input + } + + @Override + public void onGuiInit(JecGui gui) { + Stream.of(left, right).forEach(w -> w.onGuiInit(gui)); + } + + @Override + public void onDraw(JecGui gui, int xMouse, int yMouse) { + Stream.of(left, right, wRect, wText).forEach(w -> w.onDraw(gui, xMouse, yMouse)); + } + + @Override + public void onRemoved(JecGui gui) { + Stream.of(left, right).forEach(w -> w.onRemoved(gui)); + } + + @Override + public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + return Stream.of(left, right).anyMatch(w -> w.onClicked(gui, xMouse, yMouse, button)); + } + + @Override + public boolean onKey(JecGui gui, char ch, int code) { + return Stream.of(left, right).anyMatch(w -> w.onKey(gui, ch, code)); + } +} diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WRectangle.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WRectangle.java new file mode 100644 index 0000000..b4f7331 --- /dev/null +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WRectangle.java @@ -0,0 +1,25 @@ +package me.towdium.jecalculation.client.widget.widgets; + +import me.towdium.jecalculation.client.gui.JecGui; +import me.towdium.jecalculation.client.widget.Widget; + +/** + * Author: towdium + * Date: 17-8-22. + */ +public class WRectangle extends Widget { + public int xPos, yPos, xSize, ySize, color; + + public WRectangle(int xPos, int yPos, int xSize, int ySize, int color) { + this.xPos = xPos; + this.yPos = yPos; + this.xSize = xSize; + this.ySize = ySize; + this.color = color; + } + + @Override + public void onDraw(JecGui gui, int xMouse, int yMouse) { + gui.drawRectangle(xPos + gl(gui), yPos + gt(gui), xSize, ySize, color); + } +} diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WText.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WText.java new file mode 100644 index 0000000..7b200e8 --- /dev/null +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WText.java @@ -0,0 +1,43 @@ +package me.towdium.jecalculation.client.widget.widgets; + +import me.towdium.jecalculation.client.gui.JecGui; +import me.towdium.jecalculation.client.widget.Widget; + +/** + * Author: towdium + * Date: 17-8-21. + */ +public class WText extends Widget { + public static final int UNDEFINED = Integer.MAX_VALUE; + + int xPos, yPos, xSize, ySize; + JecGui.Font font; + String key; + + public WText(int xPos, int yPos, JecGui.Font font, String key) { + this(xPos, yPos, UNDEFINED, UNDEFINED, font, key); + } + + public WText(int xPos, int yPos, int xSize, JecGui.Font font, String key) { + this(xPos, yPos, xSize, UNDEFINED, font, key); + } + + public WText(int xPos, int yPos, int xSize, int ySize, JecGui.Font font, String key) { + this.xPos = xPos; + this.yPos = yPos; + this.xSize = xSize; + this.ySize = ySize; + this.font = font; + this.key = key; + } + + @Override + public void onDraw(JecGui gui, int xMouse, int yMouse) { + int gl = gl(gui); + int gt = gt(gui); + String[] text = key.split("\n"); + if (xSize == UNDEFINED) gui.drawText(xPos + gl, yPos + gt, font, text); + else if (ySize == UNDEFINED) gui.drawText(xPos + gl, yPos + gt, xSize, font, text); + else gui.drawText(xPos + gl, yPos + gt, xSize, ySize, font, text); + } +} diff --git a/src/main/java/me/towdium/jecalculation/client/widget/widgets/WTextField.java b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WTextField.java new file mode 100644 index 0000000..815e749 --- /dev/null +++ b/src/main/java/me/towdium/jecalculation/client/widget/widgets/WTextField.java @@ -0,0 +1,42 @@ +package me.towdium.jecalculation.client.widget.widgets; + +import me.towdium.jecalculation.client.gui.JecGui; +import me.towdium.jecalculation.client.widget.Widget; +import net.minecraft.client.gui.GuiTextField; + +/** + * Author: towdium + * Date: 17-8-18. + */ +public class WTextField extends Widget.Advanced { + protected int xPos, yPos, xSize; + GuiTextField textField; + + public WTextField(int xPos, int yPos, int xSize) { + this.xPos = xPos; + this.yPos = yPos; + this.xSize = xSize; + } + + @Override + public void onGuiInit(JecGui gui) { + textField = new GuiTextField(gui.getFontRenderer(), xPos + gui.getGuiLeft(), yPos + gui.getGuiTop(), xSize, 20); + } + + @Override + public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + boolean flag = xMouse >= textField.xPosition && xMouse < textField.xPosition + textField.width && yMouse >= textField.yPosition && yMouse < textField.yPosition + textField.height; + textField.mouseClicked(xMouse, yMouse, button); + return textField.isFocused() && flag && button == 0; + } + + @Override + public void onDraw(JecGui gui, int xMouse, int yMouse) { + textField.drawTextBox(); + } + + @Override + public boolean onKey(JecGui gui, char ch, int code) { + return textField.textboxKeyTyped(ch, code); + } +} diff --git a/src/main/java/me/towdium/jecalculation/event/handlers/InputEventHandler.java b/src/main/java/me/towdium/jecalculation/event/handlers/InputEventHandler.java index 862afcc..ace5898 100644 --- a/src/main/java/me/towdium/jecalculation/event/handlers/InputEventHandler.java +++ b/src/main/java/me/towdium/jecalculation/event/handlers/InputEventHandler.java @@ -19,7 +19,6 @@ public class InputEventHandler { @SubscribeEvent(priority = EventPriority.NORMAL, receiveCanceled = true) public void onKey(InputEvent.KeyInputEvent event) { if (ProxyClient.keyOpenGui.isPressed() && JustEnoughCalculation.side != JustEnoughCalculation.enumSide.SERVER) { - JustEnoughCalculation.logger.info("key pressed"); Minecraft.getMinecraft().displayGuiScreen(new GuiCalculator(null)); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/GuiHandler.java b/src/main/java/me/towdium/jecalculation/gui/GuiHandler.java deleted file mode 100644 index 8f4baad..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/GuiHandler.java +++ /dev/null @@ -1,36 +0,0 @@ -package me.towdium.jecalculation.gui; - -import cpw.mods.fml.common.network.IGuiHandler; -import me.towdium.jecalculation.gui.guis.GuiCalculator; -import me.towdium.jecalculation.gui.guis.GuiEditor; -import me.towdium.jecalculation.gui.guis.GuiRecipeSearch; -import net.minecraft.client.Minecraft; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class GuiHandler implements IGuiHandler { - public static final class GuiId { - public static final int CALCULATOR = 0; - public static final int RECIPE_SEARCH = 1; - public static final int EDITOR = 2; - - } - - @Override - public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { - return null; - } - - @Override - public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { - switch (id) { - case GuiId.CALCULATOR: - return new GuiCalculator(null); - case GuiId.RECIPE_SEARCH: - return new GuiRecipeSearch(Minecraft.getMinecraft().currentScreen); - case GuiId.EDITOR: - return new GuiEditor(null); - } - return null; - } -} diff --git a/src/main/java/me/towdium/jecalculation/gui/JecaContainer.java b/src/main/java/me/towdium/jecalculation/gui/JecaContainer.java deleted file mode 100644 index 5fad611..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/JecaContainer.java +++ /dev/null @@ -1,88 +0,0 @@ -package me.towdium.jecalculation.gui; - -import me.towdium.jecalculation.utils.ItemStackHelper; -import me.towdium.jecalculation.polyfill.ClickType; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.InventoryBasic; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import java.util.ArrayList; -import java.util.List; - -public abstract class JecaContainer extends Container { - InventoryBasic inventory; - List slotBuffer = new ArrayList<>(); - - public enum EnumSlotType {SELECT, AMOUNT, DISABLED} - - public JecaContainer() { - addSlots(); - int count = 0; - int current = -1; - for (int[] record : slotBuffer) { - count += (record[4] * record[5]); - } - inventory = new InventoryBasic("Temp", false, count); - for (int[] record : slotBuffer) { - for (int a = 0; a < record[4]; a++) { - for (int b = 0; b < record[5]; b++) { - addSlotToContainer( - new Slot(inventory, ++current, record[0] + b * record[2], record[1] + a * record[3])); - } - } - } - } - - @Override - public boolean canInteractWith(EntityPlayer entityPlayer) { - return true; - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) { - return null; - } - - @Override - public ItemStack slotClick(int slotId, int dragType, int clickTypeIn, EntityPlayer player) { - // PICKUP = 0 - // QUICK_MOVE = 1 - // SWAP = 2 - // CLONE = 3 - // THROW = 4 - // QUICK_CRAFT = 5 - // PICKUP_ALL = 6 - if (slotId >= 0 && getSlotType(slotId) == EnumSlotType.AMOUNT) { - ItemStack itemStack = getSlot(slotId).getStack(); - if (itemStack != null) { - itemStack = itemStack.copy(); - if (dragType == 0 && clickTypeIn == ClickType.PICKUP) { - itemStack = ItemStackHelper.Click.leftClick(itemStack); - } else if (dragType == 0 && clickTypeIn == ClickType.QUICK_MOVE) { - itemStack = ItemStackHelper.Click.leftShift(itemStack); - } else if (dragType == 1 && clickTypeIn == ClickType.PICKUP) { - itemStack = ItemStackHelper.Click.rightClick(itemStack); - } else if (dragType == 1 && clickTypeIn == ClickType.QUICK_MOVE) { - itemStack = ItemStackHelper.Click.rightShift(itemStack); - } - getSlot(slotId).putStack(itemStack); - } - } - return null; - } - - protected void addSlotSingle(int left, int top) { - slotBuffer.add(new int[]{left, top, 0, 0, 1, 1}); - } - - protected void addSlotGroup(int left, int top, int intervalH, int intervalV, int sizeH, int sizeV) { - slotBuffer.add(new int[]{left, top, intervalH, intervalV, sizeH, sizeV}); - } - - - protected abstract void addSlots(); - - public abstract EnumSlotType getSlotType(int index); -} diff --git a/src/main/java/me/towdium/jecalculation/gui/JecaGuiContainer.java b/src/main/java/me/towdium/jecalculation/gui/JecaGuiContainer.java deleted file mode 100644 index 4da9899..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/JecaGuiContainer.java +++ /dev/null @@ -1,208 +0,0 @@ -package me.towdium.jecalculation.gui; - -import me.towdium.jecalculation.utils.ItemStackHelper; -import me.towdium.jecalculation.polyfill.SoundEvents; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -import java.lang.reflect.Field; -import java.util.Arrays; -import java.util.List; -import java.util.function.Supplier; - -public abstract class JecaGuiContainer extends GuiContainer { - GuiScreen parent; - int activeSlot = -1; - long timeStart = 0; - ItemStack temp; - - public JecaGuiContainer(Container inventorySlotsIn, GuiScreen parent) { - super(inventorySlotsIn); - this.parent = parent; - } - - public boolean setActiveSlot(int id) { - if (id == -1 || ((JecaContainer) inventorySlots).getSlotType(id) != JecaContainer.EnumSlotType.DISABLED) { - activeSlot = id; - return true; - } else { - return false; - } - } - - @Override - public void setWorldAndResolution(Minecraft mc, int width, int height) { - super.setWorldAndResolution(mc, width, height); - //TODO check - itemRender = new JecaRenderItem(); - } - - - @Override - public void drawScreen(int mouseX, int mouseY, float partialTicks) { - super.drawScreen(mouseX, mouseY, partialTicks); - RenderHelper.disableStandardItemLighting(); // ? - - drawTooltipScreen(mouseX, mouseY); - RenderHelper.enableStandardItemLighting(); // > - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { - if (activeSlot != -1) { - drawSlotOverlay(activeSlot, 0x60aeff00); - } - super.drawGuiContainerForegroundLayer(mouseX, mouseY); - } - - @Override - protected void keyTyped(char typedChar, int keyCode) { - if (keyCode == 1) { - if (activeSlot != -1) { - inventorySlots.getSlot(activeSlot).putStack(temp); - setActiveSlot(-1); - } else { - mc.displayGuiScreen(parent); - } - } else { - super.keyTyped(typedChar, keyCode); - } - } - - @Override - protected void mouseClicked(int i1, int i2, int i3) { - if (activeSlot == -1) { - Slot slot = getSlotUnderMouse(); - if (slot != null) { - switch (((JecaContainer) inventorySlots).getSlotType(slot.getSlotIndex())) { - case SELECT: - temp = slot.getStack(); - if (setActiveSlot(slot.getSlotIndex())) { - mc.thePlayer.playSound(SoundEvents.UI_BUTTON_CLICK, 0.2f, 1f); - } - break; - case AMOUNT: - temp = slot.getStack(); - if (!slot.getHasStack() && setActiveSlot(slot.getSlotIndex())) { - mc.thePlayer.playSound(SoundEvents.UI_BUTTON_CLICK, 0.2f, 1f); - } - break; - } - } - super.mouseClicked(i1, i2, i3); - } else { - Slot active = inventorySlots.getSlot(activeSlot); - active.putStack(ItemStackHelper.toItemStackJEC(active.getStack())); - activeSlot = -1; - mc.thePlayer.playSound(SoundEvents.UI_BUTTON_CLICK, 0.2f, 1f); - } - } - - /** - * called by NEI when need display item name or tool tip - * - * @param stack current mouse over item - */ - public void handleMouseOverNEIItemPanel(ItemStack stack) { - if (activeSlot != -1) { - inventorySlots.getSlot(activeSlot) - .putStack(stack == null ? null : ItemStackHelper.toItemStackJEC(stack.copy())); - } - } - - protected void drawTooltipScreen(int mouseX, int mouseY) { - boolean flagUnicode = mc.fontRenderer.getUnicodeFlag(); - boolean flagOver = false; - mc.fontRenderer.setUnicodeFlag(true); - //noinspection unchecked - for (GuiButton button : (List) buttonList) { - String tooltip = getButtonTooltip(button.id); - if (tooltip != null) { - mc.fontRenderer - .drawStringWithShadow("?", button.xPosition + button.getButtonWidth() - 7, button.yPosition + 1, - 0xE0E0E0); - if (isMouseOver(button, mouseX, mouseY)) { - flagOver = true; - mc.fontRenderer.drawStringWithShadow("\247b?", button.xPosition + button.getButtonWidth() - 7, - button.yPosition + 1, 16777215); - mc.fontRenderer.setUnicodeFlag(flagUnicode); - if (timeStart == 0) { - timeStart = System.currentTimeMillis(); - } else if (System.currentTimeMillis() - timeStart > 1000) { - drawHoveringText(Arrays.asList(tooltip.split("\\\\n")), mouseX, mouseY, mc.fontRenderer); - } - } - } - } - if (!flagOver) { - timeStart = 0; - mc.fontRenderer.setUnicodeFlag(flagUnicode); - } - } - - protected void drawSlotOverlay(int index, int color) { - Slot slot = inventorySlots.getSlot(index); - int size = getSizeSlot(index); - int move = (size - 16) / 2; - drawRect(slot.xDisplayPosition - move, slot.yDisplayPosition - move, slot.xDisplayPosition + size - move, - slot.yDisplayPosition + size - move, color); - } - - public void drawCenteredStringMultiLine(FontRenderer fontRendererIn, - String text, - int x1, - int x2, - int y1, - int y2, - int color) { - String[] buffer = text.split("\\n"); - float x = (x1 + x2) / 2.0f; - float y = (y1 + y2 - buffer.length * 10 + 2) / 2.0f - 10; - for (String s : buffer) { - fontRendererIn - .drawStringWithShadow(s, (int) x - fontRendererIn.getStringWidth(s) / 2, (int) (y += 10), color); - } - } - - protected boolean isMouseOver(GuiButton button, int mouseX, int mouseY) { - return mouseX >= button.xPosition + button.getButtonWidth() - 10 && - mouseX <= button.xPosition + button.getButtonWidth() && mouseY >= button.yPosition && - mouseY <= button.yPosition + 10; - } - - protected void drawCenteredStringWithoutShadow(FontRenderer fontRendererIn, String text, int x, int y, int color) { - fontRendererIn.drawString(text, x - fontRendererIn.getStringWidth(text) / 2, y, color); - } - - protected abstract String getButtonTooltip(int buttonId); - - protected abstract int getSizeSlot(int index); - - protected Slot getSlotUnderMouse() { - Slot theSlot = null; - try { - Field field = JecaGuiContainer.class.getSuperclass().getDeclaredField("theSlot"); - field.setAccessible(true); - theSlot = (Slot) field.get(this); - field.setAccessible(false); - } catch (NoSuchFieldException | IllegalAccessException e) { - e.printStackTrace(); - } - return theSlot; - } - - static class RenderItemSupplier implements Supplier { - @Override - public RenderItem get() { - return null; - } - } -} diff --git a/src/main/java/me/towdium/jecalculation/gui/JecaRenderItem.java b/src/main/java/me/towdium/jecalculation/gui/JecaRenderItem.java deleted file mode 100644 index 91fa836..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/JecaRenderItem.java +++ /dev/null @@ -1,27 +0,0 @@ -package me.towdium.jecalculation.gui; - -import me.towdium.jecalculation.utils.ItemStackHelper; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.item.ItemStack; - -public class JecaRenderItem extends RenderItem { - @Override - public void renderItemOverlayIntoGUI(FontRenderer fr, - TextureManager textureManager, - ItemStack stack, - int xPosition, - int yPosition, - String text) { - boolean b = fr.getUnicodeFlag(); - fr.setUnicodeFlag(true); - String customText = stack == null ? - "" : - ItemStackHelper.NBT.getType(stack) - .getDisplayString(ItemStackHelper.NBT.getAmount(stack)); - System.out.println("render " + customText); - super.renderItemOverlayIntoGUI(fr, textureManager, stack, xPosition, yPosition, customText); - fr.setUnicodeFlag(b); - } -} diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java deleted file mode 100644 index 5e48212..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java +++ /dev/null @@ -1,149 +0,0 @@ -package me.towdium.jecalculation.gui.guis; - -import me.towdium.jecalculation.JustEnoughCalculation; -import me.towdium.jecalculation.gui.JecaContainer; -import me.towdium.jecalculation.gui.JecaGuiContainer; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.GuiTextField; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -import javax.annotation.Nullable; - -public class GuiCalculator extends JecaGuiContainer { - GuiTextField textFieldAmount; - - GuiButton buttonSearch; - GuiButton buttonAdd; - GuiButton buttonView; - GuiButton buttonSettings; - GuiButton buttonLeft; - GuiButton buttonRight; - GuiButton buttonMode; - GuiButton buttonStock; - - int activeSlot = -1; - int page = 1; - int total = 0; - EnumMode mode = EnumMode.INPUT; - - @SuppressWarnings("DuplicateBranchesInSwitch") - public enum EnumMode { - INPUT, PROCEDURE, OUTPUT, CATALYST; - - int toInt() { - switch (this) { - case INPUT: - return 1; - case PROCEDURE: - return 2; - case OUTPUT: - return 3; - case CATALYST: - return 4; - default: - return 1; - } - } - - static EnumMode fromInt(int i) { - switch (i) { - case 1: - return INPUT; - case 2: - return PROCEDURE; - case 3: - return OUTPUT; - case 4: - return CATALYST; - default: - return INPUT; - } - } - } - - public GuiCalculator(GuiScreen parent) { - super(new ContainerCalculator(), parent); - } - - @SuppressWarnings("unchecked") - @Override - public void initGui() { - super.initGui(); - buttonSearch = new GuiButton(1, guiLeft + 119, guiTop + 7, 50, 20, "search"); - buttonAdd = new GuiButton(2, guiLeft + 7, guiTop + 53, 52, 20, "Add"); - buttonView = new GuiButton(3, guiLeft + 63, guiTop + 53, 52, 20, "Records"); - buttonSettings = new GuiButton(4, guiLeft + 119, guiTop + 53, 50, 20, "Settings"); - buttonLeft = new GuiButton(5, guiLeft + 7, guiTop + 139, 14, 20, "<"); - buttonRight = new GuiButton(6, guiLeft + 45, guiTop + 139, 14, 20, ">"); - buttonMode = new GuiButton(7, guiLeft + 63, guiTop + 139, 52, 20, "Catalyst"); - buttonStock = new GuiButton(8, guiLeft + 119, guiTop + 139, 50, 20, "Stock"); - buttonList.add(buttonSearch); - buttonList.add(buttonAdd); - buttonList.add(buttonView); - buttonList.add(buttonSettings); - buttonList.add(buttonLeft); - buttonList.add(buttonRight); - buttonList.add(buttonMode); - buttonList.add(buttonStock); - textFieldAmount = new GuiTextField(fontRendererObj, guiLeft + 39, guiTop + 8, 75, 18); - } - - - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - this.mc.getTextureManager().bindTexture( - new ResourceLocation(JustEnoughCalculation.Reference.MODID, "textures/gui/gui_calculator.png")); - this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize); - textFieldAmount.drawTextBox(); - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { - super.drawGuiContainerForegroundLayer(mouseX, mouseY); - fontRendererObj.drawString("x", 30, 13, 0x404040); - drawCenteredStringWithoutShadow(fontRendererObj, "Recent", 144, 36, 0x404040); - drawCenteredString(fontRendererObj, page + "/" + total, 33, 145, 0xFFFFFF); - } - - @Override - protected void actionPerformed(GuiButton button) { - //noinspection SwitchStatementWithTooFewBranches - switch (button.id) { - case 1: mc.displayGuiScreen(new GuiRecipeSearch(this)); - } - } - @SuppressWarnings("SwitchStatementWithTooFewBranches") - @Override - protected String getButtonTooltip(int buttonId) { - switch (buttonId) { - case 4: - return "Hello\\nShit"; - default: - return null; - } - } - - @Override - protected int getSizeSlot(int index) { - return index == 0 ? 20: 0; - } - - public static class ContainerCalculator extends JecaContainer { - @Override - protected void addSlots() { - addSlotSingle(9, 9); - addSlotGroup(8, 32, 18, 18, 1, 6); - addSlotGroup(8, 82, 18, 18, 3, 9); - } - - @Override - public EnumSlotType getSlotType(int index) { - return index == 0 ? EnumSlotType.SELECT : EnumSlotType.DISABLED; - } - } -} diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiEditor.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiEditor.java deleted file mode 100644 index fb83c4c..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/guis/GuiEditor.java +++ /dev/null @@ -1,106 +0,0 @@ -package me.towdium.jecalculation.gui.guis; - -import cpw.mods.fml.client.config.GuiButtonExt; -import me.towdium.jecalculation.JustEnoughCalculation; -import me.towdium.jecalculation.JecaTranslator; -import me.towdium.jecalculation.gui.JecaContainer; -import me.towdium.jecalculation.gui.JecaGuiContainer; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.util.ResourceLocation; - -import javax.annotation.Nullable; -import java.util.ArrayList; - -public class GuiEditor extends JecaGuiContainer { - ArrayList buttonMode; - GuiButton buttonLeft; - GuiButton buttonRight; - GuiButton buttonNew; - GuiButton buttonHelp; - GuiButton buttonSave; - GuiButton buttonClear; - - - public GuiEditor(GuiScreen parent) { - super(new ContainerEditor(), parent); - } - - @SuppressWarnings("unchecked") - @Override - public void initGui() { - super.initGui(); - buttonMode = new ArrayList<>(); - int count = -1; - for (int i = 0; i < 2; i++) { - for (int j = 0; j < 4; j++) { - buttonMode.add(new GuiButtonExt(++count, 44 + j * 21 + guiLeft, 51 + i * 33 + guiTop, 10, 10, "#")); - buttonMode.add(new GuiButtonExt(++count, 54 + j * 21 + guiLeft, 51 + i * 33 + guiTop, 10, 10, "I")); - } - } - for (int i = 0; i < 2; i++) { - for (int j = 0; j < 6; j++) { - buttonMode.add(new GuiButtonExt(++count, 44 + j * 21 + guiLeft, 117 + i * 32 + guiTop, 10, 10, "#")); - buttonMode.add(new GuiButtonExt(++count, 54 + j * 21 + guiLeft, 117 + i * 32 + guiTop, 10, 10, "I")); - } - } - buttonLeft = new GuiButtonExt(40, guiLeft + 7, guiTop + 7, 14, 20, "<"); - buttonRight = new GuiButtonExt(41, guiLeft + 90, guiTop + 7, 14, 20, ">"); - buttonNew = new GuiButtonExt(42, guiLeft + 108, guiTop + 7, 61, 20, - JecaTranslator.format("gui.editor.newGroup")); - buttonHelp = new GuiButtonExt(43, guiLeft + 131, guiTop + 75, 38, 18, JecaTranslator.format("gui.editor.help")); - buttonSave = new GuiButtonExt(44, guiLeft + 131, guiTop + 31, 38, 18, JecaTranslator.format("gui.editor.save")); - buttonClear = new GuiButtonExt(45, guiLeft + 131, guiTop + 53, 38, 18, - JecaTranslator.format("gui.editor.clear")); - buttonList.addAll(buttonMode); - buttonList.add(buttonLeft); - buttonList.add(buttonRight); - buttonList.add(buttonNew); - buttonList.add(buttonHelp); - buttonList.add(buttonSave); - buttonList.add(buttonClear); - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { - super.drawGuiContainerForegroundLayer(mouseX, mouseY); - drawCenteredStringMultiLine(fontRendererObj, JecaTranslator.format("gui.editor.output"), 7, 44, 31, 61, - 0xFFFFFF); - drawCenteredStringMultiLine(fontRendererObj, JecaTranslator.format("gui.editor.catalyst"), 7, 44, 64, 94, - 0xFFFFFF); - drawCenteredStringMultiLine(fontRendererObj, JecaTranslator.format("gui.editor.input"), 7, 44, 97, 159, - 0xFFFFFF); - } - - @Nullable - @Override - protected String getButtonTooltip(int buttonId) { - return null; - } - - @Override - protected int getSizeSlot(int index) { - return 20; - } - - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { - this.mc.getTextureManager() - .bindTexture(new ResourceLocation(JustEnoughCalculation.Reference.MODID, "textures/gui/guiEditor.png")); - this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize); - } - - public static class ContainerEditor extends JecaContainer { - @Override - protected void addSlots() { - addSlotGroup(46, 33, 21, 33, 1, 4); - addSlotGroup(46, 66, 21, 33, 1, 4); - addSlotGroup(46, 99, 21, 32, 2, 6); - } - - @Override - public EnumSlotType getSlotType(int index) { - return EnumSlotType.AMOUNT; - } - } -} diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeList.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeList.java deleted file mode 100644 index e89c913..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeList.java +++ /dev/null @@ -1,38 +0,0 @@ -package me.towdium.jecalculation.gui.guis; - -import cpw.mods.fml.client.config.GuiButtonExt; -import me.towdium.jecalculation.gui.JecaContainer; -import me.towdium.jecalculation.gui.JecaGuiContainer; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.inventory.Container; - -public abstract class GuiRecipeList extends JecaGuiContainer { - - public GuiRecipeList(Container inventorySlotsIn, GuiScreen parent) { - super(inventorySlotsIn, parent); - } - - @Override - protected int getSizeSlot(int index) { - return 0; - } - - @SuppressWarnings("unchecked") - @Override - public void initGui() { - super.initGui(); - for (int i = 0; i < 5; i++) { - buttonList.add(new GuiButtonExt(2 * i, guiLeft + 83, guiTop + 32 + 21 * i, 41, 18, "edit")); - buttonList.add(new GuiButtonExt(1 + 2 * i, guiLeft + 128, guiTop + 32 + 21 * i, 41, 18, "delete")); - } - buttonList.add(new GuiButtonExt(10, guiLeft + 7, guiTop + 139, 20, 20, "<")); - buttonList.add(new GuiButtonExt(11, guiLeft + 149, guiTop + 139, 20, 20, ">")); - } - - protected static abstract class ContainerRecipeList extends JecaContainer { - @Override - protected void addSlots() { - addSlotGroup(8, 33, 18, 21, 5, 4); - } - } -} diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeSearch.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeSearch.java deleted file mode 100644 index 2c887a7..0000000 --- a/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipeSearch.java +++ /dev/null @@ -1,84 +0,0 @@ -package me.towdium.jecalculation.gui.guis; - -import me.towdium.jecalculation.JustEnoughCalculation; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.util.ResourceLocation; - -public class GuiRecipeSearch extends GuiRecipeList { - GuiButton buttonMode; - GuiButton buttonSearch; - EnumMode mode = EnumMode.OUT; - - enum EnumMode { - IN, OUT, IO; - - EnumMode next() { - switch (this) { - case OUT: - return IN; - case IN: - return IO; - case IO: - return OUT; - default: - return OUT; - } - } - - EnumMode last() { - switch (this) { - case OUT: - return IO; - case IN: - return OUT; - case IO: - return IN; - default: - return OUT; - } - } - } - - public GuiRecipeSearch(GuiScreen parent) { - super(new ContainerRecipeList() { - @Override - protected void addSlots() { - super.addSlots(); - addSlotSingle(9, 9); - } - - @Override - public EnumSlotType getSlotType(int index) { - return index == 20 ? EnumSlotType.SELECT : EnumSlotType.DISABLED; - } - }, parent); - } - - @SuppressWarnings("unchecked") - @Override - public void initGui() { - super.initGui(); - buttonMode = new GuiButton(12, 31 + guiLeft, 7 + guiTop, 84, 20, "mode"); - buttonSearch = new GuiButton(13, 119 + guiLeft, 7 + guiTop, 50, 20, "search"); - buttonList.add(buttonMode); - buttonList.add(buttonSearch); - } - - @Override - protected String getButtonTooltip(int buttonId) { - return null; - } - - @Override - protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) { - this.mc.getTextureManager().bindTexture( - new ResourceLocation(JustEnoughCalculation.Reference.MODID, "textures/gui/guiRecipeSearch.png")); - this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize); - } - - @Override - protected int getSizeSlot(int index) { - return index == 20 ? 20 : 18; - } -} diff --git a/src/main/java/me/towdium/jecalculation/item/JecaItem.java b/src/main/java/me/towdium/jecalculation/item/JecaItem.java index b85776d..62c6a35 100644 --- a/src/main/java/me/towdium/jecalculation/item/JecaItem.java +++ b/src/main/java/me/towdium/jecalculation/item/JecaItem.java @@ -1,12 +1,9 @@ package me.towdium.jecalculation.item; import me.towdium.jecalculation.JustEnoughCalculation; -import me.towdium.jecalculation.gui.GuiHandler; import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.world.World; /** diff --git a/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java b/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java index bdaec39..2cc6c16 100644 --- a/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java +++ b/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java @@ -4,7 +4,6 @@ import codechicken.nei.PositionedStack; import codechicken.nei.api.IOverlayHandler; import codechicken.nei.recipe.IRecipeHandler; import me.towdium.jecalculation.utils.ItemStackHelper; -import me.towdium.jecalculation.gui.guis.GuiEditor; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @@ -15,36 +14,36 @@ import java.util.List; public class JecaOverlayHandler implements IOverlayHandler { @Override public void overlayRecipe(GuiContainer firstGui, IRecipeHandler recipe, int recipeIndex, boolean shift) { - if(firstGui instanceof GuiEditor) { - List inputStacks = new ArrayList<>(); - LOOP: - for (PositionedStack positionedStack : recipe.getIngredientStacks(recipeIndex)) { - ItemStack itemStack = positionedStack.items[0]; - for (ItemStack exist : inputStacks) { - if (ItemStackHelper.isTypeEqual(exist, itemStack)) { - exist.stackSize += itemStack.stackSize; - continue LOOP; - } - } - inputStacks.add(itemStack.copy()); - } - ItemStack outputStack = recipe.getResultStack(recipeIndex).items[0]; - - Minecraft mc = Minecraft.getMinecraft(); - mc.displayGuiScreen(new GuiEditor(firstGui)); - GuiContainer myGuiContainer = (GuiContainer) mc.currentScreen; - if (myGuiContainer != null) { - myGuiContainer.inventorySlots.getSlot(0).putStack(outputStack); - for (int i = 8; i <= 8 + inputStacks.size() - 1 && i <= 19; i++) { - myGuiContainer.inventorySlots.getSlot(i).putStack(inputStacks.get(i - 8)); - } - //crafting item, nei may not have - // myGuiContainer.inventorySlots.getSlot(4).putStack(); - } - - } else { - System.out.println(firstGui.getClass().toString()); - } +// if(firstGui instanceof GuiEditor) { +// List inputStacks = new ArrayList<>(); +// LOOP: +// for (PositionedStack positionedStack : recipe.getIngredientStacks(recipeIndex)) { +// ItemStack itemStack = positionedStack.items[0]; +// for (ItemStack exist : inputStacks) { +// if (ItemStackHelper.isTypeEqual(exist, itemStack)) { +// exist.stackSize += itemStack.stackSize; +// continue LOOP; +// } +// } +// inputStacks.add(itemStack.copy()); +// } +// ItemStack outputStack = recipe.getResultStack(recipeIndex).items[0]; +// +// Minecraft mc = Minecraft.getMinecraft(); +// mc.displayGuiScreen(new GuiEditor(firstGui)); +// GuiContainer myGuiContainer = (GuiContainer) mc.currentScreen; +// if (myGuiContainer != null) { +// myGuiContainer.inventorySlots.getSlot(0).putStack(outputStack); +// for (int i = 8; i <= 8 + inputStacks.size() - 1 && i <= 19; i++) { +// myGuiContainer.inventorySlots.getSlot(i).putStack(inputStacks.get(i - 8)); +// } +// //crafting item, nei may not have +// // myGuiContainer.inventorySlots.getSlot(4).putStack(); +// } +// +// } else { +// System.out.println(firstGui.getClass().toString()); +// } } } diff --git a/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java b/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java index 2766cf6..dc30488 100644 --- a/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java +++ b/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java @@ -1,7 +1,6 @@ package me.towdium.jecalculation.nei; import codechicken.nei.guihook.IContainerTooltipHandler; -import me.towdium.jecalculation.gui.JecaGuiContainer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @@ -15,9 +14,9 @@ public class JecaTooltipHandler implements IContainerTooltipHandler { @Override public List handleItemDisplayName(GuiContainer gui, ItemStack itemstack, List currenttip) { - if (gui instanceof JecaGuiContainer) { - ((JecaGuiContainer)gui).handleMouseOverNEIItemPanel(itemstack); - } +// if (gui instanceof JecaGuiContainer) { +// ((JecaGuiContainer)gui).handleMouseOverNEIItemPanel(itemstack); +// } return currenttip; } @@ -27,9 +26,9 @@ public class JecaTooltipHandler implements IContainerTooltipHandler { int mousex, int mousey, List currenttip) { - if (gui instanceof JecaGuiContainer) { - ((JecaGuiContainer)gui).handleMouseOverNEIItemPanel(itemstack); - } +// if (gui instanceof JecaGuiContainer) { +// ((JecaGuiContainer)gui).handleMouseOverNEIItemPanel(itemstack); +// } return currenttip; } } diff --git a/src/main/java/me/towdium/jecalculation/nei/NEICalculatorConfig.java b/src/main/java/me/towdium/jecalculation/nei/NEICalculatorConfig.java index fc7258a..1239db7 100644 --- a/src/main/java/me/towdium/jecalculation/nei/NEICalculatorConfig.java +++ b/src/main/java/me/towdium/jecalculation/nei/NEICalculatorConfig.java @@ -3,7 +3,6 @@ package me.towdium.jecalculation.nei; import codechicken.nei.api.API; import codechicken.nei.api.IConfigureNEI; import me.towdium.jecalculation.JustEnoughCalculation; -import me.towdium.jecalculation.gui.guis.GuiEditor; public class NEICalculatorConfig implements IConfigureNEI { @@ -11,10 +10,10 @@ public class NEICalculatorConfig implements IConfigureNEI { public void loadConfig() { System.out.println("loaded nei config"); String [] recipeType = new String[]{ "crafting", "crafting2x2", "smelting", "fuel", "brewing"}; - for (String ident : recipeType) { - API.registerGuiOverlay(GuiEditor.class, ident); - API.registerGuiOverlayHandler(GuiEditor.class, new JecaOverlayHandler(), ident); - } +// for (String ident : recipeType) { +// API.registerGuiOverlay(GuiEditor.class, ident); +// API.registerGuiOverlayHandler(GuiEditor.class, new JecaOverlayHandler(), ident); +// } } @Override diff --git a/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java b/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java index 7f55220..16c8cbf 100644 --- a/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java +++ b/src/main/java/me/towdium/jecalculation/nei/NEIPlugin.java @@ -2,7 +2,6 @@ package me.towdium.jecalculation.nei; import codechicken.nei.api.API; import codechicken.nei.guihook.GuiContainerManager; -import me.towdium.jecalculation.gui.guis.GuiEditor; public class NEIPlugin { public static void init() { diff --git a/src/main/resources/assets/jecalculation/textures/gui/gui_calculator.png b/src/main/resources/assets/jecalculation/textures/gui/gui_calculator.png deleted file mode 100644 index 6647cce488efeaf311be4daba5fe583e1f109543..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2962 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 delta 4023 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