From 5bbc85740721fe2532f01ae32f8330bc4abb01fb Mon Sep 17 00:00:00 2001 From: Discreater Date: Fri, 30 Apr 2021 16:13:43 +0800 Subject: [PATCH] feat: framework tweaked --- .../jecalculation/data/label/ILabel.java | 80 +++++++++++++++++-- .../data/label/labels/LFluidStack.java | 4 +- .../data/label/labels/LItemStack.java | 4 +- .../data/label/labels/LOreDict.java | 9 +-- .../data/label/labels/LString.java | 4 +- .../jecalculation/data/structure/User.java | 39 +++++++-- .../event/handlers/ControllerClient.java | 12 +++ .../event/handlers/InputEventHandler.java | 8 +- .../towdium/jecalculation/gui/IWPicker.java | 4 +- .../me/towdium/jecalculation/gui/IWidget.java | 8 +- .../gui/{JecGui.java => JecaGui.java} | 32 ++++---- .../jecalculation/gui/drawables/WButton.java | 12 +-- .../gui/drawables/WButtonIcon.java | 4 +- .../gui/drawables/WButtonText.java | 6 +- .../gui/drawables/WContainer.java | 10 +-- .../jecalculation/gui/drawables/WIcon.java | 8 +- .../jecalculation/gui/drawables/WLabel.java | 27 ++++--- .../gui/drawables/WLabelGroup.java | 8 +- .../gui/drawables/WLabelScroll.java | 24 ++++-- .../jecalculation/gui/drawables/WLine.java | 4 +- .../jecalculation/gui/drawables/WPage.java | 10 +-- .../jecalculation/gui/drawables/WPanel.java | 4 +- .../gui/drawables/WRectangle.java | 4 +- .../jecalculation/gui/drawables/WScroll.java | 8 +- .../jecalculation/gui/drawables/WSearch.java | 23 ++---- .../gui/drawables/WSwitcher.java | 6 +- .../jecalculation/gui/drawables/WText.java | 18 ++--- .../gui/drawables/WTextField.java | 8 +- .../jecalculation/gui/drawables/WTooltip.java | 6 +- .../jecalculation/gui/guis/GuiCalculator.java | 17 ++-- .../gui/guis/GuiDisambiguation.java | 4 +- .../jecalculation/gui/guis/GuiRecipe.java | 16 ++-- .../jecalculation/gui/guis/GuiSearch.java | 22 +++++ .../gui/guis/pickers/PickerSimple.java | 3 +- .../gui/guis/pickers/PickerUniversal.java | 8 +- .../jecalculation/nei/JecaOverlayHandler.java | 6 +- .../jecalculation/nei/JecaTooltipHandler.java | 4 +- .../nei/NEICalculatorConfig.java | 6 +- .../jecalculation/network/ProxyClient.java | 4 +- .../jecalculation/network/ProxyServer.java | 4 +- .../jecalculation/utils/Utilities.java | 4 + .../assets/jecalculation/lang/en_US.lang | 1 + 42 files changed, 317 insertions(+), 176 deletions(-) rename src/main/java/me/towdium/jecalculation/gui/{JecGui.java => JecaGui.java} (95%) create mode 100644 src/main/java/me/towdium/jecalculation/gui/guis/GuiSearch.java diff --git a/src/main/java/me/towdium/jecalculation/data/label/ILabel.java b/src/main/java/me/towdium/jecalculation/data/label/ILabel.java index 76e09e6..30e09ed 100644 --- a/src/main/java/me/towdium/jecalculation/data/label/ILabel.java +++ b/src/main/java/me/towdium/jecalculation/data/label/ILabel.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.data.label; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWPicker; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.guis.pickers.PickerSimple; import me.towdium.jecalculation.gui.guis.pickers.PickerUniversal; import me.towdium.jecalculation.data.label.labels.LFluidStack; @@ -37,7 +37,7 @@ public interface ILabel { Serializer DESERIALIZER = new Serializer(); Converter CONVERTER = new Converter(); RegistryEditor EDITOR = new RegistryEditor(); - ILabel EMPTY = new LItemStack(ItemStackHelper.EMPTY_ITEM_STACK, 0); + ILabel EMPTY = new LEmpty(); String FORMAT_BLUE = "\u00A79"; String FORMAT_GREY = "\u00A78"; @@ -63,6 +63,7 @@ public interface ILabel { DESERIALIZER.register(LItemStack.IDENTIFIER, LItemStack::new); DESERIALIZER.register(LOreDict.IDENTIFIER, LOreDict::new); DESERIALIZER.register(LString.IDENTIFIER, LString::new); + DESERIALIZER.register(LEmpty.IDENTIFIER, i -> EMPTY); } List getToolTip(List existing, boolean detailed); @@ -83,14 +84,14 @@ public interface ILabel { String getIdentifier(); @SideOnly(Side.CLIENT) - default void drawLabel(JecGui gui, int xPos, int yPos, boolean center) { + default void drawLabel(JecaGui gui, int xPos, int yPos, boolean center) { GlStateManager.pushMatrix(); GlStateManager.translate(center ? xPos - 8 : xPos, center ? yPos - 8 : yPos, 0); drawLabel(gui); GlStateManager.popMatrix(); } - void drawLabel(JecGui gui); + void drawLabel(JecaGui gui); /** * Since {@link ILabel} merging is bidirectional, it is redundant to @@ -112,7 +113,7 @@ public interface ILabel { } static Optional mergeItemStackNItemStack(ILabel a, ILabel b, boolean add) { - if (a instanceof LItemStack && b instanceof LItemStack && a != ILabel.EMPTY && b != ILabel.EMPTY) { + if (a instanceof LItemStack && b instanceof LItemStack) { LItemStack lisA = (LItemStack) a; LItemStack lisB = (LItemStack) b; ItemStack isA = lisA.getItemStack(); @@ -194,8 +195,7 @@ public interface ILabel { public ILabel deserialize(NBTTagCompound nbt) { String s = nbt.getString(KEY_IDENTIFIER); ILabel e = idToData.get(s).apply(nbt.getCompoundTag(KEY_CONTENT)); - if (e != ILabel.EMPTY) return e; - else throw new RuntimeException("Fail to deserialize label type: " + s); + return idToData.get(s).apply(nbt.getCompoundTag(KEY_CONTENT)); } public NBTTagCompound serialize(ILabel label) { @@ -259,4 +259,70 @@ public interface ILabel { } } } + + class LEmpty implements ILabel { + public static final String IDENTIFIER = "empty"; + + private LEmpty() { + } + + @Override + public ILabel increaseAmount() { + return this; + } + + @Override + public ILabel increaseAmountLarge() { + return this; + } + + @Override + public ILabel decreaseAmount() { + return this; + } + + @Override + public ILabel decreaseAmountLarge() { + return this; + } + + @Override + public ILabel invertAmount() { + return this; + } + + @Override + public String getAmountString() { + return ""; + } + + @Override + public String getDisplayName() { + return ""; + } + + @Override + public List getToolTip(List existing, boolean detailed) { + return new ArrayList<>(); + } + + @Override + public ILabel copy() { + return this; + } + + @Override + public NBTTagCompound toNBTTagCompound() { + return new NBTTagCompound(); + } + + @Override + public String getIdentifier() { + return IDENTIFIER; + } + + @Override + public void drawLabel(JecaGui gui) { + } + } } diff --git a/src/main/java/me/towdium/jecalculation/data/label/labels/LFluidStack.java b/src/main/java/me/towdium/jecalculation/data/label/labels/LFluidStack.java index cef8711..19d91d1 100644 --- a/src/main/java/me/towdium/jecalculation/data/label/labels/LFluidStack.java +++ b/src/main/java/me/towdium/jecalculation/data/label/labels/LFluidStack.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.data.label.labels; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.utils.Utilities; @@ -100,7 +100,7 @@ public class LFluidStack implements ILabel { @Override @SideOnly(Side.CLIENT) - public void drawLabel(JecGui gui) { + public void drawLabel(JecaGui gui) { gui.drawResource(Resource.LBL_FLUID, 0, 0); gui.drawFluid(fluid.getFluid(), 2, 2, 12, 12); } diff --git a/src/main/java/me/towdium/jecalculation/data/label/labels/LItemStack.java b/src/main/java/me/towdium/jecalculation/data/label/labels/LItemStack.java index c728805..5e9c324 100644 --- a/src/main/java/me/towdium/jecalculation/data/label/labels/LItemStack.java +++ b/src/main/java/me/towdium/jecalculation/data/label/labels/LItemStack.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.data.label.labels; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.utils.Utilities; import net.minecraft.item.ItemStack; @@ -76,7 +76,7 @@ public class LItemStack extends LabelSimpleAmount { @Override @SideOnly(Side.CLIENT) - public void drawLabel(JecGui gui) { + public void drawLabel(JecaGui gui) { gui.drawItemStack(0, 0, itemStack, false); } diff --git a/src/main/java/me/towdium/jecalculation/data/label/labels/LOreDict.java b/src/main/java/me/towdium/jecalculation/data/label/labels/LOreDict.java index e187ab0..737a711 100644 --- a/src/main/java/me/towdium/jecalculation/data/label/labels/LOreDict.java +++ b/src/main/java/me/towdium/jecalculation/data/label/labels/LOreDict.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.data.label.labels; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.JustEnoughCalculation; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.polyfill.mc.client.renderer.GlStateManager; @@ -31,11 +31,6 @@ public class LOreDict extends LabelSimpleAmount { public static final String KEY_AMOUNT = "amount"; public static final boolean MODE_FORCE = false; - - static { - - } - protected String name; public LOreDict(String name) { @@ -102,7 +97,7 @@ public class LOreDict extends LabelSimpleAmount { @Override @SideOnly(Side.CLIENT) - public void drawLabel(JecGui gui) { + public void drawLabel(JecaGui gui) { NonNullList list = NonNullList.create(); OreDictionary.getOres(name).forEach(is -> { if (is.getItemDamage() == OreDictionary.WILDCARD_VALUE) { diff --git a/src/main/java/me/towdium/jecalculation/data/label/labels/LString.java b/src/main/java/me/towdium/jecalculation/data/label/labels/LString.java index 9c7a8fe..9e69bb3 100644 --- a/src/main/java/me/towdium/jecalculation/data/label/labels/LString.java +++ b/src/main/java/me/towdium/jecalculation/data/label/labels/LString.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.data.label.labels; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.utils.Utilities; @@ -61,7 +61,7 @@ public class LString extends LabelSimpleAmount { @Override @SideOnly(Side.CLIENT) - public void drawLabel(JecGui gui) { + public void drawLabel(JecaGui gui) { gui.drawResource(Resource.LBL_UNIV_B, 0, 0); gui.drawResource(Resource.LBL_UNIV_F, 0, 0, (name.hashCode() * 0x131723) & 0xFFFFFF); } diff --git a/src/main/java/me/towdium/jecalculation/data/structure/User.java b/src/main/java/me/towdium/jecalculation/data/structure/User.java index 28d23da..13fcfe3 100644 --- a/src/main/java/me/towdium/jecalculation/data/structure/User.java +++ b/src/main/java/me/towdium/jecalculation/data/structure/User.java @@ -8,10 +8,11 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import java.util.ArrayList; -import java.util.HashSet; +import java.util.Collection; import java.util.List; import java.util.Optional; import java.util.function.BiConsumer; +import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -95,11 +96,35 @@ public class User { } public List search(String group, ILabel label, Recipe.enumIoType type) { - HashSet set = new HashSet<>(); - IntStream.range(0, type.getSize()).forEach(i -> get(group).ifPresent(rs -> rs.forEach(r -> { - ILabel.MERGER.merge(label, r.getLabel(type)[i], true).ifPresent(l -> set.add(r)); - }))); - return new ArrayList<>(set); + return search(records.get(group).map(Collection::stream).orElseGet(Stream::empty), + r -> IntStream.range(0, type.getSize()).anyMatch( + i -> ILabel.MERGER.merge(label, r.getLabel(type)[i], true).isPresent())); + } + + public List search(String group, String label, Recipe.enumIoType type) { + return search(records.get(group).map(Collection::stream).orElseGet(Stream::empty), + r -> IntStream.range(0, type.getSize()).anyMatch( + i -> Utilities.contains(r.getLabel(type)[i].getDisplayName(), label))); + } + + public List search(ILabel label, Recipe.enumIoType type) { + return search(records.stream().flatMap(i -> i.two.stream()), r -> IntStream.range(0, type.getSize()) + .anyMatch(i -> ILabel.MERGER + .merge(label, r.getLabel( + type)[i], true) + .isPresent())); + } + + public List search(String label, Recipe.enumIoType type) { + return search(records.stream().flatMap(i -> i.two.stream()), r -> IntStream.range(0, type.getSize()) + .anyMatch(i -> Utilities + .contains(r.getLabel( + type)[i].getDisplayName(), + label))); + } + + private List search(Stream list, Predicate pre) { + return list.filter(pre).collect(Collectors.toCollection(ArrayList::new)); } public void forEach(BiConsumer> consumer) { @@ -125,7 +150,7 @@ public class User { } public static class Recent { - Utilities.Recent record = new Utilities.Recent<>(9); + Utilities.Recent record = new Utilities.Recent<>((a, b) -> a == ILabel.EMPTY || a.equals(b), 9); public static final String IDENTIFIER = "recent"; public Recent(NBTTagList nbt) { diff --git a/src/main/java/me/towdium/jecalculation/event/handlers/ControllerClient.java b/src/main/java/me/towdium/jecalculation/event/handlers/ControllerClient.java index 1d4f69e..7434014 100644 --- a/src/main/java/me/towdium/jecalculation/event/handlers/ControllerClient.java +++ b/src/main/java/me/towdium/jecalculation/event/handlers/ControllerClient.java @@ -74,6 +74,18 @@ public class ControllerClient { return getRecord().recipes.search(group, label, type); } + public static List search(String group, String label, Recipe.enumIoType type) { + return getRecord().recipes.search(group, label, type); + } + + public static List search(ILabel label, Recipe.enumIoType type) { + return getRecord().recipes.search(label, type); + } + + public static List search(String label, Recipe.enumIoType type) { + return getRecord().recipes.search(label, type); + } + public static List getRecent() { if (recordWorld == null) return recordClient.recent.getRecords(); else { 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 1dcde58..85d6fba 100644 --- a/src/main/java/me/towdium/jecalculation/event/handlers/InputEventHandler.java +++ b/src/main/java/me/towdium/jecalculation/event/handlers/InputEventHandler.java @@ -6,7 +6,7 @@ import cpw.mods.fml.common.gameevent.InputEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.JustEnoughCalculation; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.guis.GuiCalculator; import me.towdium.jecalculation.network.ProxyClient; import net.minecraft.client.Minecraft; @@ -22,16 +22,16 @@ public class InputEventHandler { @SubscribeEvent(receiveCanceled = true) public void onKey(InputEvent.KeyInputEvent event) { if (ProxyClient.keyOpenGui.isPressed()) { - if (JustEnoughCalculation.side == JustEnoughCalculation.enumSide.CLIENT) JecGui.displayGui(new GuiCalculator()); + if (JustEnoughCalculation.side == JustEnoughCalculation.enumSide.CLIENT) JecaGui.displayGui(new GuiCalculator()); else Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentTranslation("chat.server_mode")); } } @SubscribeEvent(priority = EventPriority.HIGHEST) public void onMouseClick(GuiScreenEvent.ActionPerformedEvent.Pre event) { - if (event.gui instanceof JecGui) { + if (event.gui instanceof JecaGui) { JustEnoughCalculation.logger.info("on mouse click in gui screen event"); - JecGui gui = (JecGui) event.gui; + JecaGui gui = (JecaGui) event.gui; event.setCanceled(gui.handleMouseEvent()); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/IWPicker.java b/src/main/java/me/towdium/jecalculation/gui/IWPicker.java index d942834..96021c8 100644 --- a/src/main/java/me/towdium/jecalculation/gui/IWPicker.java +++ b/src/main/java/me/towdium/jecalculation/gui/IWPicker.java @@ -19,11 +19,11 @@ public interface IWPicker extends IWidget { IWPicker setCallback(Consumer callback); class Simple extends WContainer implements IWPicker { - protected Wrapper> callback = new Wrapper<>(null); + protected Consumer callback; @Override public IWPicker setCallback(Consumer callback) { - this.callback.value = callback; + this.callback = callback; return this; } } diff --git a/src/main/java/me/towdium/jecalculation/gui/IWidget.java b/src/main/java/me/towdium/jecalculation/gui/IWidget.java index eea53e2..e3ac380 100644 --- a/src/main/java/me/towdium/jecalculation/gui/IWidget.java +++ b/src/main/java/me/towdium/jecalculation/gui/IWidget.java @@ -1,17 +1,17 @@ package me.towdium.jecalculation.gui; public interface IWidget { - void onDraw(JecGui gui, int xMouse, int yMouse); + void onDraw(JecaGui gui, int xMouse, int yMouse); - default boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + default boolean onClicked(JecaGui gui, int xMouse, int yMouse, int button) { return false; } - default boolean onKey(JecGui gui, char ch, int code) { + default boolean onKey(JecaGui gui, char ch, int code) { return false; } - default boolean onScroll(JecGui gui, int xMouse, int yMouse, int diff) { + default boolean onScroll(JecaGui gui, int xMouse, int yMouse, int diff) { return false; } } diff --git a/src/main/java/me/towdium/jecalculation/gui/JecGui.java b/src/main/java/me/towdium/jecalculation/gui/JecaGui.java similarity index 95% rename from src/main/java/me/towdium/jecalculation/gui/JecGui.java rename to src/main/java/me/towdium/jecalculation/gui/JecaGui.java index c41583d..ed613aa 100644 --- a/src/main/java/me/towdium/jecalculation/gui/JecGui.java +++ b/src/main/java/me/towdium/jecalculation/gui/JecaGui.java @@ -40,21 +40,21 @@ import java.util.function.Function; */ @ParametersAreNonnullByDefault @SideOnly(Side.CLIENT) -public class JecGui extends GuiContainer { +public class JecaGui extends GuiContainer { public static final int COLOR_GUI_GREY = 0xFFA1A1A1; public static final int COLOR_TEXT_RED = 0xFF0000; public static final int COLOR_TEXT_WHITE = 0xFFFFFF; public static final boolean ALWAYS_TOOLTIP = false; public ILabel hand = ILabel.EMPTY; public IWidget root; - protected JecGui parent; + protected JecaGui parent; protected List>> tooltipBuffer = new ArrayList<>(); - public JecGui(@Nullable JecGui parent, IWidget root) { + public JecaGui(@Nullable JecaGui parent, IWidget root) { this(parent, false, root); } - public JecGui(@Nullable JecGui parent, boolean acceptsTransfer, IWidget root) { + public JecaGui(@Nullable JecaGui parent, boolean acceptsTransfer, IWidget root) { super(acceptsTransfer ? new ContainerTransfer() : new ContainerNonTransfer()); this.parent = parent; this.root = root; @@ -77,29 +77,29 @@ public class JecGui extends GuiContainer { } /** - * @return The currently displayed {@link JecGui} - * Make sure the method is called when a {@link JecGui} is displayed! + * @return The currently displayed {@link JecaGui} + * Make sure the method is called when a {@link JecaGui} is displayed! * Otherwise it will throw a {@link NullPointerException} */ - public static JecGui getCurrent() { + public static JecaGui getCurrent() { GuiScreen gui = Minecraft.getMinecraft().currentScreen; - JecGui ret = gui instanceof JecGui ? (JecGui) gui : null; + JecaGui ret = gui instanceof JecaGui ? (JecaGui) gui : null; Objects.requireNonNull(ret); return ret; } private static void displayGuiUnsafe(boolean updateParent, boolean acceptsTransfer, IWidget root) { Minecraft mc = Minecraft.getMinecraft(); - JecGui parent; + JecaGui parent; if (mc.currentScreen == null) parent = null; - else if (!(mc.currentScreen instanceof JecGui)) + else if (!(mc.currentScreen instanceof JecaGui)) parent = getCurrent(); else if (updateParent) - parent = (JecGui) mc.currentScreen; + parent = (JecaGui) mc.currentScreen; else - parent = ((JecGui) mc.currentScreen).parent; - JecGui toShow = new JecGui(parent, acceptsTransfer, root); + parent = ((JecaGui) mc.currentScreen).parent; + JecaGui toShow = new JecaGui(parent, acceptsTransfer, root); mc.displayGuiScreen(toShow); } @@ -453,13 +453,13 @@ public class JecGui extends GuiContainer { public static class JecContainer extends Container { - JecGui gui; + JecaGui gui; - public JecGui getGui() { + public JecaGui getGui() { return gui; } - public void setGui(JecGui gui) { + public void setGui(JecaGui gui) { this.gui = gui; } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WButton.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WButton.java index c9b6543..2c9d607 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WButton.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WButton.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.utils.ClientUtils; import me.towdium.jecalculation.utils.Utilities; @@ -41,16 +41,16 @@ public abstract class WButton extends WTooltip { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { super.onDraw(gui, xMouse, yMouse); - boolean hovered = JecGui.mouseIn(xPos + 1, yPos + 1, xSize - 2, ySize - 2, xMouse, yMouse); + boolean hovered = JecaGui.mouseIn(xPos + 1, yPos + 1, xSize - 2, ySize - 2, xMouse, yMouse); gui.drawResourceContinuous(disabled ? Resource.WGT_BUTTON_D : (hovered ? Resource.WGT_BUTTON_F : Resource.WGT_BUTTON_N), xPos, yPos, xSize, ySize, 3, 3, 3, 3); } @Override - public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { - if (!disabled && JecGui.mouseIn(xPos + 1, yPos + 1, xSize - 2, ySize - 2, xMouse, yMouse)) { + public boolean onClicked(JecaGui gui, int xMouse, int yMouse, int button) { + if (!disabled && JecaGui.mouseIn(xPos + 1, yPos + 1, xSize - 2, ySize - 2, xMouse, yMouse)) { if (button == 0 && lsnrLeft != null) { lsnrLeft.run(); ClientUtils.playClickSound(1.0F); @@ -66,7 +66,7 @@ public abstract class WButton extends WTooltip { @Override public boolean mouseIn(int xMouse, int yMouse) { - return JecGui.mouseIn(xPos + 1, yPos + 1, xSize - 2, ySize - 2, xMouse, yMouse); + return JecaGui.mouseIn(xPos + 1, yPos + 1, xSize - 2, ySize - 2, xMouse, yMouse); } public WButton setDisabled(boolean b) { diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonIcon.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonIcon.java index 7e68183..f1b403e 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonIcon.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonIcon.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import javax.annotation.Nullable; @@ -41,7 +41,7 @@ public class WButtonIcon extends WButton { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { super.onDraw(gui, xMouse, yMouse); Resource r = disabled ? rDisabled : (mouseIn(xMouse, yMouse) ? rFocused : rNormal); if (r != null) gui.drawResource(r, xPos + (xSize - r.getXSize()) / 2, yPos + (ySize - r.getYSize()) / 2); diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonText.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonText.java index 503cd29..078d0f2 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonText.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WButtonText.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.utils.Utilities; import javax.annotation.ParametersAreNonnullByDefault; @@ -19,7 +19,7 @@ public class WButtonText extends WButton { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { super.onDraw(gui, xMouse, yMouse); int textColor = mouseIn(xMouse, yMouse) ? 16777120 : 0; String text = Utilities.I18n.format(String.join(".", "gui", name, "text")); @@ -28,7 +28,7 @@ public class WButtonText extends WButton { String str = text; if (strWidth > xSize - 6 && strWidth > ellipsisWidth) str = gui.getFontRenderer().trimStringToWidth(text, xSize - 6 - ellipsisWidth).trim() + "..."; - JecGui.Font f = JecGui.Font.DEFAULT_SHADOW.copy(); + JecaGui.Font f = JecaGui.Font.DEFAULT_SHADOW.copy(); f.color = textColor; gui.drawText(xPos, yPos, xSize, ySize, f, str); } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WContainer.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WContainer.java index 7ea2519..22a0419 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WContainer.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WContainer.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.IWidget; import javax.annotation.ParametersAreNonnullByDefault; @@ -41,24 +41,24 @@ public class WContainer implements IWidget { } @Override - public void onDraw(JecGui gui, int mouseX, int mouseY) { + public void onDraw(JecaGui gui, int mouseX, int mouseY) { widgets.forEach(widget -> widget.onDraw(gui, mouseX, mouseY)); } @Override - public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + public boolean onClicked(JecaGui gui, int xMouse, int yMouse, int button) { for (IWidget w : widgets) if (w.onClicked(gui, xMouse, yMouse, button)) return true; return false; } @Override - public boolean onKey(JecGui gui, char ch, int code) { + public boolean onKey(JecaGui gui, char ch, int code) { for (IWidget w : widgets) if (w.onKey(gui, ch, code)) return true; return false; } @Override - public boolean onScroll(JecGui gui, int xMouse, int yMouse, int diff) { + public boolean onScroll(JecaGui gui, int xMouse, int yMouse, int diff) { for (IWidget w : widgets) if (w.onScroll(gui, xMouse, yMouse, diff)) return true; return false; } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WIcon.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WIcon.java index 074d75e..bfae207 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WIcon.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WIcon.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import javax.annotation.Nullable; @@ -35,16 +35,16 @@ public class WIcon extends WTooltip { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { super.onDraw(gui, xMouse, yMouse); - gui.drawRectangle(xPos, yPos, xSize, ySize, JecGui.COLOR_GUI_GREY); + gui.drawRectangle(xPos, yPos, xSize, ySize, JecaGui.COLOR_GUI_GREY); Resource r = mouseIn(xMouse, yMouse) ? focused : normal; gui.drawResource(r, (xSize - r.getXSize()) / 2 + xPos, (ySize - r.getYSize()) / 2 + yPos); } @Override public boolean mouseIn(int xMouse, int yMouse) { - return JecGui.mouseIn(xPos + (xSize - normal.getXSize()) / 2, + return JecaGui.mouseIn(xPos + (xSize - normal.getXSize()) / 2, yPos + (ySize - normal.getYSize()) / 2, normal.getXSize(), normal.getYSize(), xMouse, yMouse); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WLabel.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WLabel.java index 91495f8..b41feb1 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WLabel.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WLabel.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.utils.IllegalPositionException; @@ -20,11 +20,11 @@ import java.util.stream.IntStream; @ParametersAreNonnullByDefault @SideOnly(Side.CLIENT) public class WLabel implements IWidget { - static JecGui.Font font; + static JecaGui.Font font; static { - font = JecGui.Font.DEFAULT_HALF.copy(); - font.align = JecGui.Font.enumAlign.RIGHT; + font = JecaGui.Font.DEFAULT_HALF.copy(); + font.align = JecaGui.Font.enumAlign.RIGHT; } public int xPos, yPos, xSize, ySize; @@ -48,11 +48,12 @@ public class WLabel implements IWidget { public void setLabel(ILabel label) { this.label = label; - notifyLsnr(); + if (mode == enumMode.EDITOR || mode == enumMode.SELECTOR) + notifyLsnr(); } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { gui.drawResourceContinuous(Resource.WGT_SLOT, xPos, yPos, xSize, ySize, 3, 3, 3, 3); label.drawLabel(gui, xPos + xSize / 2, yPos + ySize / 2, true); if (mode == enumMode.RESULT || mode == enumMode.EDITOR) @@ -75,10 +76,10 @@ public class WLabel implements IWidget { } @Override - public boolean onScroll(JecGui gui, int xMouse, int yMouse, int diff) { + public boolean onScroll(JecaGui gui, int xMouse, int yMouse, int diff) { if (mouseIn(xMouse, yMouse) && mode == enumMode.EDITOR && label != ILabel.EMPTY) { IntStream.range(0, Math.abs(diff)).forEach(i -> { - if (JecGui.isShiftDown()) label = diff > 0 ? label.increaseAmountLarge() : label.decreaseAmountLarge(); + if (JecaGui.isShiftDown()) label = diff > 0 ? label.increaseAmountLarge() : label.decreaseAmountLarge(); else label = diff > 0 ? label.increaseAmount() : label.decreaseAmount(); }); notifyLsnr(); @@ -88,7 +89,7 @@ public class WLabel implements IWidget { @Override - public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + public boolean onClicked(JecaGui gui, int xMouse, int yMouse, int button) { if (mouseIn(xMouse, yMouse)) { switch (mode) { case EDITOR: @@ -99,14 +100,14 @@ public class WLabel implements IWidget { return true; } else if (label != label.EMPTY) { if (button == 0) { - if (JecGui.isShiftDown()) + if (JecaGui.isShiftDown()) label = label.increaseAmountLarge(); else label = label.increaseAmount(); notifyLsnr(); return true; } else if (button == 1) { - if (JecGui.isShiftDown()) + if (JecaGui.isShiftDown()) label = label.decreaseAmountLarge(); else label = label.decreaseAmount(); @@ -119,7 +120,7 @@ public class WLabel implements IWidget { return false; case PICKER: if (label != label.EMPTY) { - gui.hand = label.copy(); + notifyLsnr(); return true; } else return false; @@ -165,7 +166,7 @@ public class WLabel implements IWidget { */ PICKER, /** - * Slots to select items, eg. in calculate and search gui. No amount displayed. + * Slots to put labels into. No amount displayed. */ SELECTOR } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelGroup.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelGroup.java index 5267251..001a9e0 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelGroup.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelGroup.java @@ -45,8 +45,12 @@ public class WLabelGroup extends WContainer { labels.remove(w); } - public Optional getLabelAt(int xMouse, int yMouse) { - return labels.stream().filter(w -> w.mouseIn(xMouse, yMouse)).findFirst(); + public ILabel getLabelAt(int index) { + return labels.get(index).getLabel(); + } + + public Optional getLabelAt(int xMouse, int yMouse) { + return labels.stream().filter(w -> w.mouseIn(xMouse, yMouse)).findFirst().map(WLabel::getLabel); } public List getLabels() { diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelScroll.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelScroll.java index af574ba..b28c6f2 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelScroll.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WLabelScroll.java @@ -2,13 +2,14 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.utils.Utilities; import javax.annotation.ParametersAreNonnullByDefault; import java.util.ArrayList; import java.util.List; +import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -24,17 +25,21 @@ public class WLabelScroll extends WContainer { protected WScroll scroll; protected int xPos, yPos, column, row, current; protected String filter = ""; + protected Consumer lsnrUpdate; public WLabelScroll(int xPos, int yPos, int column, int row, WLabel.enumMode mode, boolean drawConnection) { this.xPos = xPos; this.yPos = yPos; this.column = column; this.row = row; - labelGroup = new WLabelGroup(xPos, yPos, column, row, mode); + labelGroup = new WLabelGroup(xPos, yPos, column, row, mode) + .setLsnrUpdate(i -> { + if (lsnrUpdate != null) lsnrUpdate.accept(i + current * column); + }); scroll = new WScroll(xPos + column * 18 + 4, yPos, row * 18).setLsnrScroll(this::update); add(labelGroup); add(scroll); - if (drawConnection) add(new WRectangle(xPos + column * 18, yPos, 4, row * 18, JecGui.COLOR_GUI_GREY)); + if (drawConnection) add(new WRectangle(xPos + column * 18, yPos, 4, row * 18, JecaGui.COLOR_GUI_GREY)); } public void update(float f) { @@ -45,8 +50,8 @@ public class WLabelScroll extends WContainer { } @Override - public boolean onScroll(JecGui gui, int xMouse, int yMouse, int diff) { - boolean in = JecGui.mouseIn(xPos, yPos, column * 18, row * 18, xMouse, yMouse); + public boolean onScroll(JecaGui gui, int xMouse, int yMouse, int diff) { + boolean in = JecaGui.mouseIn(xPos, yPos, column * 18, row * 18, xMouse, yMouse); if (in) scroll.setCurrent(getPos(current - diff)); return in; } @@ -69,6 +74,15 @@ public class WLabelScroll extends WContainer { return filtered.size() != 0; } + public void setLsnrUpdate(Consumer lsnr) { + lsnrUpdate = lsnr; + } + + public ILabel getLabelAt(int index) { + return labelGroup.getLabelAt(index - current * column); + } + + private int getStepAmount() { int line = (labels.size() + column - 1) / column; return Math.max(line - row + 1, 1); diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WLine.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WLine.java index 9bec39a..7218e6c 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WLine.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WLine.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import javax.annotation.ParametersAreNonnullByDefault; @@ -22,7 +22,7 @@ public class WLine implements IWidget { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { gui.drawResource(Resource.WGT_LINE, 6, y - 1); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WPage.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WPage.java index be7a61c..965067f 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WPage.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WPage.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.utils.Utilities; @@ -32,19 +32,19 @@ public class WPage implements IWidget { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { Resource resource = focused ? (index == 0 ? Resource.WGT_PAGER_F0 : Resource.WGT_PAGER_FN) : Resource.WGT_PAGER_N; gui.drawResourceContinuous(resource, index * 24, -21, 24, 25, 4, 4, 4, 4); record.representation.drawLabel(gui, index * 24 + 4, -17, false); - timer.setState(JecGui.mouseIn(index * 24, -21, 24, 21, xMouse, yMouse)); + timer.setState(JecaGui.mouseIn(index * 24, -21, 24, 21, xMouse, yMouse)); if (timer.getTime() > 1000) gui.drawTooltip(xMouse, yMouse, Utilities.I18n.format("gui." + record.localizeKey)); } @Override - public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { - boolean ret = JecGui.mouseIn(index * 24, -21, 24, 21, xMouse, yMouse) && listener != null && !focused; + public boolean onClicked(JecaGui gui, int xMouse, int yMouse, int button) { + boolean ret = JecaGui.mouseIn(index * 24, -21, 24, 21, xMouse, yMouse) && listener != null && !focused; if (ret) listener.run(); return ret; } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WPanel.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WPanel.java index 72323d9..81d5e31 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WPanel.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WPanel.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import javax.annotation.ParametersAreNonnullByDefault; @@ -17,7 +17,7 @@ import javax.annotation.ParametersAreNonnullByDefault; @SideOnly(Side.CLIENT) public class WPanel implements IWidget { @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { gui.drawResourceContinuous(Resource.WGT_PANEL, 0, 0, gui.getXSize(), gui.getYSize(), 5, 5, 5, 5); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WRectangle.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WRectangle.java index bc703c1..81a1d69 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WRectangle.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WRectangle.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import javax.annotation.ParametersAreNonnullByDefault; @@ -25,7 +25,7 @@ public class WRectangle implements IWidget { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { gui.drawRectangle(xPos, yPos, xSize, ySize, color); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WScroll.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WScroll.java index 5ac296c..c3b6410 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WScroll.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WScroll.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import org.lwjgl.input.Mouse; @@ -29,7 +29,7 @@ public class WScroll implements IWidget { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { if (Mouse.isButtonDown(0) && drag) setCurrent(yMouse - yPos - 9); else drag = false; @@ -38,7 +38,7 @@ public class WScroll implements IWidget { } @Override - public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + public boolean onClicked(JecaGui gui, int xMouse, int yMouse, int button) { drag = mouseIn(xMouse, yMouse); if (drag) setCurrent(yMouse - yPos - 9); return drag; @@ -56,7 +56,7 @@ public class WScroll implements IWidget { } public boolean mouseIn(int xMouse, int yMouse) { - return JecGui.mouseIn(xPos + 1, yPos + 1, 12, ySize - 2, xMouse, yMouse); + return JecaGui.mouseIn(xPos + 1, yPos + 1, 12, ySize - 2, xMouse, yMouse); } public WScroll setLsnrScroll(Consumer lsnrScroll) { diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WSearch.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WSearch.java index c33cdef..2c64285 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WSearch.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WSearch.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.data.label.ILabel; import javax.annotation.ParametersAreNonnullByDefault; @@ -17,25 +17,18 @@ import java.util.function.Consumer; @ParametersAreNonnullByDefault @SideOnly(Side.CLIENT) public class WSearch extends WContainer { - WTextField tf; - List lss; - Consumer callback; + Consumer clbk; public WSearch(Consumer callback, WTextField tf, WLabelScroll... lss) { + clbk = callback; List lst = Arrays.asList(lss); tf.setLsnrText(s -> tf.setColor(lst.stream().anyMatch(ls -> ls.setFilter(s)) ? - JecGui.COLOR_TEXT_WHITE : JecGui.COLOR_TEXT_RED)); + JecaGui.COLOR_TEXT_WHITE : JecaGui.COLOR_TEXT_RED)); add(tf); addAll(lss); - this.tf = tf; - this.lss = lst; - this.callback = callback; - } - - @Override - public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { - boolean ret = super.onClicked(gui, xMouse, yMouse, button); - if (gui.hand != ILabel.EMPTY) callback.accept(gui.hand); - return ret; + for (WLabelScroll i : lss) + i.setLsnrUpdate(j -> { + if (clbk != null) clbk.accept(i.getLabelAt(j)); + }); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WSwitcher.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WSwitcher.java index f966b2a..7891a63 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WSwitcher.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WSwitcher.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.utils.Utilities.Circulator; @@ -55,8 +55,8 @@ public class WSwitcher extends WContainer { else setTemp(null); }); - wRect = new WRectangle(xPos + SIZE, yPos, xSize - 2 * SIZE, SIZE, JecGui.COLOR_GUI_GREY); - wText = new WText(xPos + SIZE, yPos, xSize - 2 * SIZE, SIZE, JecGui.Font.DEFAULT_SHADOW, + wRect = new WRectangle(xPos + SIZE, yPos, xSize - 2 * SIZE, SIZE, JecaGui.COLOR_GUI_GREY); + wText = new WText(xPos + SIZE, yPos, xSize - 2 * SIZE, SIZE, JecaGui.Font.DEFAULT_SHADOW, () -> temp == null ? keys.get(index.current()) : temp); index = new Circulator(keys.size()); refresh(); diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WText.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WText.java index 7e99d74..acedad4 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WText.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WText.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import javax.annotation.ParametersAreNonnullByDefault; import java.util.function.Supplier; @@ -18,31 +18,31 @@ public class WText implements IWidget { public static final int UNDEFINED = Integer.MAX_VALUE; public int xPos, yPos, xSize, ySize; - public JecGui.Font font; + public JecaGui.Font font; public Supplier key; - public WText(int xPos, int yPos, JecGui.Font font, String key) { + public WText(int xPos, int yPos, JecaGui.Font font, String key) { this(xPos, yPos, UNDEFINED, UNDEFINED, font, key); } - public WText(int xPos, int yPos, JecGui.Font font, Supplier key) { + public WText(int xPos, int yPos, JecaGui.Font font, Supplier key) { this(xPos, yPos, UNDEFINED, UNDEFINED, font, key); } - public WText(int xPos, int yPos, int xSize, JecGui.Font font, String key) { + public WText(int xPos, int yPos, int xSize, JecaGui.Font font, String key) { this(xPos, yPos, xSize, UNDEFINED, font, key); } - public WText(int xPos, int yPos, int xSize, JecGui.Font font, Supplier key) { + public WText(int xPos, int yPos, int xSize, JecaGui.Font font, Supplier key) { this(xPos, yPos, xSize, UNDEFINED, font, key); } - public WText(int xPos, int yPos, int xSize, int ySize, JecGui.Font font, String key) { + public WText(int xPos, int yPos, int xSize, int ySize, JecaGui.Font font, String key) { this(xPos, yPos, xSize, UNDEFINED, font, () -> key); } - public WText(int xPos, int yPos, int xSize, int ySize, JecGui.Font font, Supplier key) { + public WText(int xPos, int yPos, int xSize, int ySize, JecaGui.Font font, Supplier key) { this.xPos = xPos; this.yPos = yPos; this.xSize = xSize; @@ -52,7 +52,7 @@ public class WText implements IWidget { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { String[] text = key.get().split("\n"); if (xSize == UNDEFINED) gui.drawText(xPos, yPos, font, text); else if (ySize == UNDEFINED) gui.drawText(xPos, yPos, xSize, font, text); diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WTextField.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WTextField.java index 4e00886..16f7327 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WTextField.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WTextField.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.IWidget; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiTextField; @@ -29,7 +29,7 @@ public class WTextField implements IWidget { } @Override - public boolean onClicked(JecGui gui, int xMouse, int yMouse, int button) { + public boolean onClicked(JecaGui 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); @@ -37,12 +37,12 @@ public class WTextField implements IWidget { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { textField.drawTextBox(); } @Override - public boolean onKey(JecGui gui, char ch, int code) { + public boolean onKey(JecaGui gui, char ch, int code) { boolean ret = textField.textboxKeyTyped(ch, code); if (ret) notifyLsnr(); return ret; diff --git a/src/main/java/me/towdium/jecalculation/gui/drawables/WTooltip.java b/src/main/java/me/towdium/jecalculation/gui/drawables/WTooltip.java index 6269a0b..40fec9e 100644 --- a/src/main/java/me/towdium/jecalculation/gui/drawables/WTooltip.java +++ b/src/main/java/me/towdium/jecalculation/gui/drawables/WTooltip.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.drawables; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWidget; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.utils.Utilities; import javax.annotation.Nullable; @@ -27,13 +27,13 @@ public abstract class WTooltip implements IWidget { } @Override - public void onDraw(JecGui gui, int xMouse, int yMouse) { + public void onDraw(JecaGui gui, int xMouse, int yMouse) { if (name != null) { timer.setState(mouseIn(xMouse, yMouse)); if (timer.getTime() > 500) { String str = getSuffix().stream().map(s -> Utilities.I18n.search(String.join(".", "gui", name, s))) .filter(p -> p.two).findFirst().map(p -> p.one) - .orElse(JecGui.ALWAYS_TOOLTIP ? String.join(".", "gui", name, getSuffix().get(0)) : null); + .orElse(JecaGui.ALWAYS_TOOLTIP ? String.join(".", "gui", name, getSuffix().get(0)) : null); if (str != null) gui.drawTooltip(xMouse, yMouse, str); } } diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java index a2e43c2..f794510 100644 --- a/src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java +++ b/src/main/java/me/towdium/jecalculation/gui/guis/GuiCalculator.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.gui.guis; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.gui.drawables.*; import me.towdium.jecalculation.data.label.ILabel; @@ -25,13 +25,14 @@ public class GuiCalculator extends WContainer { add(new WPanel()); add(new WTextField(61, 7, 64)); add(new WButtonIcon(7, 7, 20, 20, Resource.BTN_LABEL_N, Resource.BTN_LABEL_F, "calculator.label") - .setListenerLeft(() -> JecGui.displayGui(new GuiLabel(l -> { - JecGui.displayParent(); - JecGui.getCurrent().hand = l; + .setListenerLeft(() -> JecaGui.displayGui(new GuiLabel(l -> { + JecaGui.displayParent(); + JecaGui.getCurrent().hand = l; })))); add(new WButtonIcon(130, 7, 20, 20, Resource.BTN_NEW_N, Resource.BTN_NEW_F, "calculator.recipe") - .setListenerLeft(() -> JecGui.displayGui(true, true, new GuiRecipe()))); - add(new WButtonIcon(149, 7, 20, 20, Resource.BTN_SEARCH_N, Resource.BTN_SEARCH_F, "calculator.search")); + .setListenerLeft(() -> JecaGui.displayGui(true, true, new GuiRecipe()))); + add(new WButtonIcon(149, 7, 20, 20, Resource.BTN_SEARCH_N, Resource.BTN_SEARCH_F, "calculator.search") + .setListenerLeft(() -> JecaGui.displayGui(new GuiSearch()))); add(new WLabelGroup(7, 87, 9, 4, WLabel.enumMode.RESULT)); add(wRecent); add(wLabel); @@ -40,12 +41,12 @@ public class GuiCalculator extends WContainer { add(new WSwitcher(7, 56, 162, 5)); refresh(); List recent = ControllerClient.getRecent(); - if (recent.size() > 0) - wLabel.setLabel(ControllerClient.getRecent().get(0)); + if (recent.size() > 0) wLabel.setLabel(ControllerClient.getRecent().get(0)); wLabel.setLsnrUpdate(() -> { ControllerClient.setRecent(wLabel.label); refresh(); }); + wRecent.setLsnrUpdate(l -> JecaGui.getCurrent().hand = wRecent.getLabelAt(l)); } void refresh() { diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiDisambiguation.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiDisambiguation.java index 4139747..5bb242d 100644 --- a/src/main/java/me/towdium/jecalculation/gui/guis/GuiDisambiguation.java +++ b/src/main/java/me/towdium/jecalculation/gui/guis/GuiDisambiguation.java @@ -32,7 +32,9 @@ public class GuiDisambiguation extends IWPicker.Simple { add(new WIcon(149, 24, 20, 20, Resource.ICN_HELP_N, Resource.ICN_HELP_F, "disambiguation.help")); add(new WIcon(7, 48, 18, 54, Resource.ICN_LIST_N, Resource.ICN_LIST_F, "disambiguation.list")); add(new WIcon(7, 105, 18, 54, Resource.ICN_LABEL_N, Resource.ICN_LABEL_F, "disambiguation.label")); - add(new WSearch(i -> callback.ifPresent(c -> c.accept(i)), tf, lsUp, lsDown)); + add(new WSearch(i -> { + if (callback != null) callback.accept(i); + }, tf, lsUp, lsDown)); setPage(0); } diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipe.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipe.java index a04cf33..2f953b1 100644 --- a/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipe.java +++ b/src/main/java/me/towdium/jecalculation/gui/guis/GuiRecipe.java @@ -5,7 +5,7 @@ import me.towdium.jecalculation.algorithm.CostList; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.data.structure.Recipe; import me.towdium.jecalculation.event.handlers.ControllerClient; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.gui.drawables.*; import me.towdium.jecalculation.utils.wrappers.Triple; @@ -34,15 +34,15 @@ public class GuiRecipe extends WContainer { Resource.BTN_DISAMB_D, "recipe.disamb").setDisabled(true) .setListenerLeft(() -> { if (disambiguation != null) - JecGui.displayGui( + JecaGui.displayGui( new GuiDisambiguation( new ArrayList<>( disambiguation .values())) .setCallback( l -> { - JecGui.displayParent(); - JecGui.getCurrent().hand = l; + JecaGui.displayParent(); + JecaGui.getCurrent().hand = l; })); }); WLabelGroup groupInput = new WLabelGroup(28, 111, 7, 2, 20, 20, WLabel.enumMode.EDITOR).setLsnrUpdate(i -> { @@ -56,14 +56,14 @@ public class GuiRecipe extends WContainer { WButton buttonClear = new WButtonIcon(64, 33, 20, 20, Resource.BTN_DEL_N, Resource.BTN_DEL_F, "recipe.clear") .setListenerLeft(this::clear); WButton buttonLabel = new WButtonIcon(45, 33, 20, 20, Resource.BTN_LABEL_N, Resource.BTN_LABEL_F, "recipe.label") - .setListenerLeft(() -> JecGui.displayGui(new GuiLabel((l) -> { - JecGui.displayParent(); - JecGui.getCurrent().hand = l; + .setListenerLeft(() -> JecaGui.displayGui(new GuiLabel((l) -> { + JecaGui.displayParent(); + JecaGui.getCurrent().hand = l; }))); WButton buttonSave = new WButtonIcon(26, 33, 20, 20, Resource.BTN_SAVE_N, Resource.BTN_SAVE_F, "recipe.save") .setListenerLeft(() -> { ControllerClient.addRecipe(switcherGroup.getText(), toRecipe()); - JecGui.displayParent(); + JecaGui.displayParent(); }); WTextField textField = new WTextField(49, 33, 119); WButton buttonNew = new WButtonIcon(7, 33, 20, 20, Resource.BTN_NEW_N, Resource.BTN_NEW_F, "recipe.new") diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/GuiSearch.java b/src/main/java/me/towdium/jecalculation/gui/guis/GuiSearch.java new file mode 100644 index 0000000..566151b --- /dev/null +++ b/src/main/java/me/towdium/jecalculation/gui/guis/GuiSearch.java @@ -0,0 +1,22 @@ +package me.towdium.jecalculation.gui.guis; + +import me.towdium.jecalculation.event.handlers.ControllerClient; +import me.towdium.jecalculation.gui.Resource; +import me.towdium.jecalculation.gui.drawables.*; +import me.towdium.jecalculation.utils.Utilities; + +import java.util.ArrayList; + +public class GuiSearch extends WContainer { + public GuiSearch() { + add(new WPanel()); + ArrayList groups = new ArrayList<>(); + groups.add(Utilities.I18n.format("gui.search.all")); + groups.addAll(ControllerClient.getGroups()); + add(new WSwitcher(7, 7, 162, groups)); + WTextField tf = new WTextField(25, 7, 90); + WLabelScroll ls = new WLabelScroll(7, 33, 8, 7, WLabel.enumMode.PICKER, true); + add(new WIcon(149, 7, 20, 20, Resource.ICN_HELP_N, Resource.ICN_HELP_F, "search.help")); + add(new WIcon(7, 7, 20, 20, Resource.ICN_TEXT_N, Resource.ICN_TEXT_F, "search.text")); + } +} diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerSimple.java b/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerSimple.java index 3098da9..6b6d692 100644 --- a/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerSimple.java +++ b/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerSimple.java @@ -31,11 +31,12 @@ public class PickerSimple extends IWPicker.Simple { public PickerSimple(List labels, String l18nKey) { WLabelScroll ls = new WLabelScroll(7, 33, 8, 7, WLabel.enumMode.PICKER, true).setLabels(labels); WTextField tf = new WTextField(25, 7, 90); - add(new WSearch(l -> callback.value.accept(l), tf, ls)); + add(new WSearch(l -> callback.accept(l), tf, ls)); add(new WIcon(149, 7, 20, 20, Resource.ICN_HELP_N, Resource.ICN_HELP_F, l18nKey + ".help")); add(new WIcon(7, 7, 20, 20, Resource.ICN_TEXT_N, Resource.ICN_TEXT_F, l18nKey + ".text")); } + public static class FluidStack extends PickerSimple { public FluidStack() { super(FluidRegistry.getRegisteredFluids().entrySet().stream() diff --git a/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerUniversal.java b/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerUniversal.java index aacecc6..f0c4b66 100644 --- a/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerUniversal.java +++ b/src/main/java/me/towdium/jecalculation/gui/guis/pickers/PickerUniversal.java @@ -3,7 +3,7 @@ package me.towdium.jecalculation.gui.guis.pickers; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.gui.IWPicker; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.Resource; import me.towdium.jecalculation.gui.drawables.*; import me.towdium.jecalculation.data.label.labels.LString; @@ -22,15 +22,15 @@ public class PickerUniversal extends IWPicker.Simple { WLabelScroll scroll = new WLabelScroll(7, 69, 8, 5, WLabel.enumMode.PICKER, true).setLabels(new ArrayList<>()); WTextField search = new WTextField(25, 45, 90); WTextField create = new WTextField(25, 7, 70); - create.setLsnrText(s -> create.setColor(s.equals("") ? JecGui.COLOR_TEXT_RED : JecGui.COLOR_TEXT_WHITE)); - add(new WSearch(l -> callback.value.accept(l), search, scroll)); + create.setLsnrText(s -> create.setColor(s.equals("") ? JecaGui.COLOR_TEXT_RED : JecaGui.COLOR_TEXT_WHITE)); + add(new WSearch(l -> callback.accept(l), search, scroll)); add(new WIcon(149, 45, 20, 20, Resource.ICN_HELP_N, Resource.ICN_HELP_F, "picker_universal.help_search")); add(new WIcon(149, 7, 20, 20, Resource.ICN_HELP_N, Resource.ICN_HELP_F, "picker_universal.help_create")); add(new WIcon(7, 45, 20, 20, Resource.ICN_TEXT_N, Resource.ICN_TEXT_F, "picker_universal.text_search")); add(new WIcon(7, 7, 20, 20, Resource.ICN_TEXT_N, Resource.ICN_TEXT_F, "picker_universal.text_create")); add(new WLine(36)); add(new WButtonIcon(95, 7, 20, 20, Resource.BTN_YES_N, Resource.BTN_YES_F).setListenerLeft(() -> { - if (!create.getText().equals("")) callback.value.accept(new LString(create.getText(), 1)); + if (!create.getText().equals("")) callback.accept(new LString(create.getText(), 1)); })); add(create); diff --git a/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java b/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java index b097114..3fc1c80 100644 --- a/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java +++ b/src/main/java/me/towdium/jecalculation/nei/JecaOverlayHandler.java @@ -5,7 +5,7 @@ import codechicken.nei.recipe.IRecipeHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import me.towdium.jecalculation.JustEnoughCalculation; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.guis.GuiRecipe; import net.minecraft.client.gui.inventory.GuiContainer; @@ -14,8 +14,8 @@ public class JecaOverlayHandler implements IOverlayHandler { @Override public void overlayRecipe(GuiContainer firstGui, IRecipeHandler recipe, int recipeIndex, boolean shift) { JustEnoughCalculation.logger.info("shift ? " + shift); - if (shift && firstGui instanceof JecGui) { - JecGui gui = (JecGui) firstGui; + if (shift && firstGui instanceof JecaGui) { + JecaGui gui = (JecaGui) firstGui; if (gui.root instanceof GuiRecipe) { ((GuiRecipe) gui.root).transfer(recipe, recipeIndex); } diff --git a/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java b/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java index b7deb3b..6d18178 100644 --- a/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java +++ b/src/main/java/me/towdium/jecalculation/nei/JecaTooltipHandler.java @@ -1,7 +1,7 @@ package me.towdium.jecalculation.nei; import codechicken.nei.guihook.IContainerTooltipHandler; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.item.ItemStack; @@ -24,7 +24,7 @@ public class JecaTooltipHandler implements IContainerTooltipHandler { int mousex, int mousey, List currenttip) { - if (gui instanceof JecGui) { + if (gui instanceof JecaGui) { NEIPlugin.setLabelUnderMouse(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 67e6c03..a8422d8 100644 --- a/src/main/java/me/towdium/jecalculation/nei/NEICalculatorConfig.java +++ b/src/main/java/me/towdium/jecalculation/nei/NEICalculatorConfig.java @@ -3,7 +3,7 @@ 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.JecGui; +import me.towdium.jecalculation.gui.JecaGui; public class NEICalculatorConfig implements IConfigureNEI { @@ -12,8 +12,8 @@ public class NEICalculatorConfig implements IConfigureNEI { System.out.println("loaded nei config"); String [] recipeType = new String[]{ "crafting", "crafting2x2", "smelting", "fuel", "brewing"}; for (String ident : recipeType) { - API.registerGuiOverlay(JecGui.class, ident); - API.registerGuiOverlayHandler(JecGui.class, new JecaOverlayHandler(), ident); + API.registerGuiOverlay(JecaGui.class, ident); + API.registerGuiOverlayHandler(JecaGui.class, new JecaOverlayHandler(), ident); } } diff --git a/src/main/java/me/towdium/jecalculation/network/ProxyClient.java b/src/main/java/me/towdium/jecalculation/network/ProxyClient.java index dc72f15..99ba367 100644 --- a/src/main/java/me/towdium/jecalculation/network/ProxyClient.java +++ b/src/main/java/me/towdium/jecalculation/network/ProxyClient.java @@ -1,7 +1,7 @@ package me.towdium.jecalculation.network; import cpw.mods.fml.client.registry.ClientRegistry; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.gui.guis.GuiCalculator; import me.towdium.jecalculation.command.JecaCommand; import me.towdium.jecalculation.data.label.ILabel; @@ -35,6 +35,6 @@ public class ProxyClient extends ProxyServer { @Override public void displayCalculator() { super.displayCalculator(); - JecGui.displayGui(new GuiCalculator()); + JecaGui.displayGui(new GuiCalculator()); } } diff --git a/src/main/java/me/towdium/jecalculation/network/ProxyServer.java b/src/main/java/me/towdium/jecalculation/network/ProxyServer.java index 88bea2d..37e6945 100644 --- a/src/main/java/me/towdium/jecalculation/network/ProxyServer.java +++ b/src/main/java/me/towdium/jecalculation/network/ProxyServer.java @@ -2,7 +2,7 @@ package me.towdium.jecalculation.network; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.registry.GameRegistry; -import me.towdium.jecalculation.gui.JecGui; +import me.towdium.jecalculation.gui.JecaGui; import me.towdium.jecalculation.data.label.ILabel; import me.towdium.jecalculation.event.Handlers; import me.towdium.jecalculation.item.ItemCalculator; @@ -13,7 +13,7 @@ public class ProxyServer implements IProxy { public void initPre() { GameRegistry.registerItem(ItemCalculator.INSTANCE, ItemCalculator.INSTANCE.getUnlocalizedName()); Handlers.handlers.forEach(FMLCommonHandler.instance().bus()::register); - MinecraftForge.EVENT_BUS.register(JecGui.class); + MinecraftForge.EVENT_BUS.register(JecaGui.class); } @Override diff --git a/src/main/java/me/towdium/jecalculation/utils/Utilities.java b/src/main/java/me/towdium/jecalculation/utils/Utilities.java index 557479c..a24256e 100644 --- a/src/main/java/me/towdium/jecalculation/utils/Utilities.java +++ b/src/main/java/me/towdium/jecalculation/utils/Utilities.java @@ -23,6 +23,8 @@ import java.util.*; import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.BiPredicate; +import java.util.stream.Collector; +import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -35,6 +37,7 @@ import java.util.stream.StreamSupport; public class Utilities { final static int[] scaleTable = {9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE}; static Map dictionary = new HashMap<>(); + public static Collector toArrayList = Collectors.toCollection(ArrayList::new); static { Map modMap = Loader.instance().getIndexedModList(); @@ -106,6 +109,7 @@ public class Utilities { return s1.contains(s2); } + // get calculator item in player inventory public static Optional getStack() { InventoryPlayer inv = Minecraft.getMinecraft().thePlayer.inventory; ItemStack is = inv.getCurrentItem(); diff --git a/src/main/resources/assets/jecalculation/lang/en_US.lang b/src/main/resources/assets/jecalculation/lang/en_US.lang index 27ed57a..cf1784d 100644 --- a/src/main/resources/assets/jecalculation/lang/en_US.lang +++ b/src/main/resources/assets/jecalculation/lang/en_US.lang @@ -18,6 +18,7 @@ gui.recipe.disamb.disabled=Disambiguate settings not available\nbecause of no am gui.recipe.new.active=New group gui.recipe.cancel.active=Cancel gui.recipe.confirm.active=Confirm +gui.search.all=All gui.common.label.ore_dict=OreDict gui.common.label.fluid_stack=Fluid gui.common.label.string=String