From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../modularui/widget/CoverCycleButtonWidget.java | 10 +- .../widget/CoverDataControllerWidget.java | 18 +-- .../widget/CoverDataFollowerCycleButtonWidget.java | 39 ++++++ .../widget/CoverDataFollowerNumericWidget.java | 60 +++++++++ .../widget/CoverDataFollowerSlotWidget.java | 101 ++++++++++++++++ .../widget/CoverDataFollowerTextFieldWidget.java | 134 +++++++++++++++++++++ .../CoverDataFollowerToggleButtonWidget.java | 86 +++++++++++++ .../CoverDataFollower_CycleButtonWidget.java | 39 ------ .../widget/CoverDataFollower_NumericWidget.java | 60 --------- .../widget/CoverDataFollower_SlotWidget.java | 101 ---------------- .../widget/CoverDataFollower_TextFieldWidget.java | 134 --------------------- .../CoverDataFollower_ToggleButtonWidget.java | 86 ------------- .../modularui/widget/ItemWatcherSlotWidget.java | 4 +- 13 files changed, 436 insertions(+), 436 deletions(-) create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerCycleButtonWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerNumericWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerSlotWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerTextFieldWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerToggleButtonWidget.java delete mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_CycleButtonWidget.java delete mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_NumericWidget.java delete mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_SlotWidget.java delete mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_TextFieldWidget.java delete mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_ToggleButtonWidget.java (limited to 'src/main/java/gregtech/common/gui/modularui/widget') diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverCycleButtonWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverCycleButtonWidget.java index 4d1c6649ae..e244fcf5e5 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverCycleButtonWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverCycleButtonWidget.java @@ -8,7 +8,7 @@ import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.gui.modularui.GTUITextures; /** * Fires click action on mouse release, not on press. Draws different backgrounds depending on whether the mouse is @@ -16,12 +16,12 @@ import gregtech.api.gui.modularui.GT_UITextures; */ public class CoverCycleButtonWidget extends CycleButtonWidget { - private static final UITexture BUTTON_NORMAL_NOT_PRESSED = GT_UITextures.BUTTON_COVER_NORMAL + private static final UITexture BUTTON_NORMAL_NOT_PRESSED = GTUITextures.BUTTON_COVER_NORMAL .getSubArea(0, 0, 1, 0.5f); - private static final UITexture BUTTON_NORMAL_PRESSED = GT_UITextures.BUTTON_COVER_NORMAL.getSubArea(0, 0.5f, 1, 1); - private static final UITexture BUTTON_HOVERED_NOT_PRESSED = GT_UITextures.BUTTON_COVER_NORMAL_HOVERED + private static final UITexture BUTTON_NORMAL_PRESSED = GTUITextures.BUTTON_COVER_NORMAL.getSubArea(0, 0.5f, 1, 1); + private static final UITexture BUTTON_HOVERED_NOT_PRESSED = GTUITextures.BUTTON_COVER_NORMAL_HOVERED .getSubArea(0, 0, 1, 0.5f); - private static final UITexture BUTTON_HOVERED_PRESSED = GT_UITextures.BUTTON_COVER_NORMAL_HOVERED + private static final UITexture BUTTON_HOVERED_PRESSED = GTUITextures.BUTTON_COVER_NORMAL_HOVERED .getSubArea(0, 0.5f, 1, 1); private boolean clickPressed; diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataControllerWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataControllerWidget.java index 4543980ce1..c89c541273 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataControllerWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataControllerWidget.java @@ -12,12 +12,12 @@ import com.gtnewhorizons.modularui.api.widget.Widget; import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils; import gregtech.api.gui.modularui.IDataFollowerWidget; -import gregtech.api.util.GT_CoverBehaviorBase; +import gregtech.api.util.CoverBehaviorBase; import gregtech.api.util.ISerializableObject; public class CoverDataControllerWidget extends DataControllerWidget { - protected final GT_CoverBehaviorBase coverBehavior; + protected final CoverBehaviorBase coverBehavior; /** * @param dataGetter () -> cover data this widget handles @@ -25,7 +25,7 @@ public class CoverDataControllerWidget extends Da * @param coverBehavior cover this widget handles data update */ public CoverDataControllerWidget(Supplier dataGetter, Function dataSetter, - GT_CoverBehaviorBase coverBehavior) { + CoverBehaviorBase coverBehavior) { super(dataGetter, dataSetter); this.coverBehavior = coverBehavior; } @@ -68,7 +68,7 @@ public class CoverDataControllerWidget extends Da * @param dataUpdater (index of button, current cover data) -> new cover data */ public CoverDataIndexedControllerWidget_ToggleButtons(Supplier coverDataGetter, - Function coverDataSetter, GT_CoverBehaviorBase coverBehavior, + Function coverDataSetter, CoverBehaviorBase coverBehavior, BiFunction dataToStateGetter, BiFunction dataUpdater) { super(coverDataGetter, coverDataSetter, coverBehavior); this.dataToStateGetter = dataToStateGetter; @@ -80,8 +80,8 @@ public class CoverDataControllerWidget extends Da * @param widget widget to add * @param applyForWidget methods to call for widget to add */ - public > CoverDataIndexedControllerWidget_ToggleButtons addToggleButton( - int index, W widget, Consumer> applyForWidget) { + public > CoverDataIndexedControllerWidget_ToggleButtons addToggleButton( + int index, W widget, Consumer> applyForWidget) { addFollower( widget, data -> dataToStateGetter.apply(index, data), @@ -108,7 +108,7 @@ public class CoverDataControllerWidget extends Da * @param dataUpdater (index of button, current cover data) -> new cover data */ public CoverDataIndexedControllerWidget_CycleButtons(Supplier coverDataGetter, - Function coverDataSetter, GT_CoverBehaviorBase coverBehavior, + Function coverDataSetter, CoverBehaviorBase coverBehavior, BiFunction dataToStateGetter, BiFunction dataUpdater) { super(coverDataGetter, coverDataSetter, coverBehavior); this.dataToStateGetter = dataToStateGetter; @@ -120,8 +120,8 @@ public class CoverDataControllerWidget extends Da * @param widget widget to add * @param applyForWidget methods to call for the widget to add */ - public > CoverDataIndexedControllerWidget_CycleButtons addCycleButton( - int index, W widget, Consumer> applyForWidget) { + public > CoverDataIndexedControllerWidget_CycleButtons addCycleButton( + int index, W widget, Consumer> applyForWidget) { addFollower( widget, data -> dataToStateGetter.apply(index, data), diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerCycleButtonWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerCycleButtonWidget.java new file mode 100644 index 0000000000..4408dbd54e --- /dev/null +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerCycleButtonWidget.java @@ -0,0 +1,39 @@ +package gregtech.common.gui.modularui.widget; + +import java.util.function.Consumer; +import java.util.function.Function; + +import gregtech.api.gui.modularui.IDataFollowerWidget; +import gregtech.api.util.ISerializableObject; + +/** + * Determines button state with cover data. + */ +public class CoverDataFollowerCycleButtonWidget extends CoverCycleButtonWidget + implements IDataFollowerWidget { + + private Function dataToStateGetter; + + public CoverDataFollowerCycleButtonWidget() { + super(); + setGetter(() -> 0); // fake getter; used only for init + setSynced(false, false); + } + + @Override + public CoverDataFollowerCycleButtonWidget setDataToStateGetter(Function dataToStateGetter) { + this.dataToStateGetter = dataToStateGetter; + return this; + } + + @Override + public CoverDataFollowerCycleButtonWidget setStateSetter(Consumer setter) { + super.setSetter(setter); + return this; + } + + @Override + public void updateState(T data) { + setState(dataToStateGetter.apply(data), false, false); + } +} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerNumericWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerNumericWidget.java new file mode 100644 index 0000000000..316109ed64 --- /dev/null +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerNumericWidget.java @@ -0,0 +1,60 @@ +package gregtech.common.gui.modularui.widget; + +import java.util.function.Consumer; +import java.util.function.Function; + +import com.gtnewhorizons.modularui.api.math.Alignment; +import com.gtnewhorizons.modularui.api.math.Color; +import com.gtnewhorizons.modularui.common.widget.textfield.NumericWidget; + +import gregtech.api.gui.modularui.GTUITextures; +import gregtech.api.gui.modularui.IDataFollowerWidget; +import gregtech.api.util.ISerializableObject; + +public class CoverDataFollowerNumericWidget extends NumericWidget + implements IDataFollowerWidget { + + private Function dataToStateGetter; + + public CoverDataFollowerNumericWidget() { + super(); + setGetter(() -> 0); // fake getter; used only for init + setSynced(false, false); + setTextColor(Color.WHITE.dark(1)); + setTextAlignment(Alignment.CenterLeft); + setBackground(GTUITextures.BACKGROUND_TEXT_FIELD.withOffset(-1, -1, 2, 2)); + } + + @Override + public void onPostInit() { + // Widget#onPostInit is called earlier than IDataFollowerWidget#onPostInit, + // so we make sure cursor is set after text is set + super.onPostInit(); + + // On first call #handler does not contain text. + // On second call, it contains correct text to update #lastText, + // but #shouldGetFocus call is skipped by Cursor#updateFocused, + // so we need to manually call this. + if (focusOnGuiOpen) { + shouldGetFocus(); + } + } + + @Override + public CoverDataFollowerNumericWidget setDataToStateGetter(Function dataToStateGetter) { + this.dataToStateGetter = dataToStateGetter; + return this; + } + + @Override + public CoverDataFollowerNumericWidget setStateSetter(Consumer setter) { + super.setSetter(setter::accept); + return this; + } + + @Override + public void updateState(T data) { + setValue(dataToStateGetter.apply(data)); + } + +} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerSlotWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerSlotWidget.java new file mode 100644 index 0000000000..a3995deda0 --- /dev/null +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerSlotWidget.java @@ -0,0 +1,101 @@ +package gregtech.common.gui.modularui.widget; + +import java.util.function.Consumer; +import java.util.function.Function; + +import net.minecraft.item.ItemStack; + +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; +import com.gtnewhorizons.modularui.api.widget.Interactable; +import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils; +import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; + +import gregtech.api.gui.modularui.IDataFollowerWidget; +import gregtech.api.util.ISerializableObject; + +public class CoverDataFollowerSlotWidget extends SlotWidget + implements IDataFollowerWidget { + + private Function dataToStateGetter; + private Consumer dataSetter; + + public CoverDataFollowerSlotWidget(BaseSlot slot) { + super(slot); + } + + public CoverDataFollowerSlotWidget(IItemHandlerModifiable handler, int index, boolean phantom) { + this(new BaseSlot(handler, index, phantom)); + } + + public CoverDataFollowerSlotWidget(IItemHandlerModifiable handler, int index) { + this(handler, index, false); + } + + @Override + public CoverDataFollowerSlotWidget setDataToStateGetter(Function dataToStateGetter) { + this.dataToStateGetter = dataToStateGetter; + return this; + } + + @Override + public CoverDataFollowerSlotWidget setStateSetter(Consumer setter) { + this.dataSetter = setter; + return this; + } + + @Override + public void updateState(T data) { + getMcSlot().putStack(dataToStateGetter.apply(data)); + } + + @Override + public void detectAndSendChanges(boolean init) {} + + // Slot sync is handled differently from other DataFollowers, + // so we need to also sync slot content directly to server. + + @Override + public ClickResult onClick(int buttonId, boolean doubleClick) { + if (interactionDisabled) return ClickResult.REJECT; + if (isPhantom()) { + ClickData clickData = ClickData.create(buttonId, doubleClick); + syncToServer(2, clickData::writeToPacket); + phantomClick(clickData); + dataSetter.accept(getMcSlot().getStack()); + return ClickResult.ACCEPT; + } + return ClickResult.REJECT; + } + + @Override + public boolean onMouseScroll(int direction) { + if (interactionDisabled) return false; + if (isPhantom()) { + if (Interactable.hasShiftDown()) { + direction *= 8; + } + final int finalDirection = direction; + syncToServer(3, buffer -> buffer.writeVarIntToBuffer(finalDirection)); + phantomScroll(finalDirection); + dataSetter.accept(getMcSlot().getStack()); + return true; + } + return false; + } + + @Override + public boolean handleDragAndDrop(ItemStack draggedStack, int button) { + if (interactionDisabled) return false; + if (!isPhantom()) return false; + ClickData clickData = ClickData.create(button, false); + syncToServer(5, buffer -> { + clickData.writeToPacket(buffer); + NetworkUtils.writeItemStack(buffer, draggedStack); + }); + phantomClick(clickData, draggedStack); + dataSetter.accept(getMcSlot().getStack()); + draggedStack.stackSize = 0; + return true; + } +} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerTextFieldWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerTextFieldWidget.java new file mode 100644 index 0000000000..95ceafaadd --- /dev/null +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerTextFieldWidget.java @@ -0,0 +1,134 @@ +package gregtech.common.gui.modularui.widget; + +import java.util.function.Consumer; +import java.util.function.Function; + +import net.minecraft.client.gui.GuiScreen; + +import com.gtnewhorizon.gtnhlib.util.parsing.MathExpressionParser; +import com.gtnewhorizons.modularui.api.math.Alignment; +import com.gtnewhorizons.modularui.api.math.Color; +import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget; + +import gregtech.api.gui.modularui.GTUITextures; +import gregtech.api.gui.modularui.IDataFollowerWidget; +import gregtech.api.util.ISerializableObject; + +public class CoverDataFollowerTextFieldWidget extends TextFieldWidget + implements IDataFollowerWidget { + + private Function dataToStateGetter; + + public CoverDataFollowerTextFieldWidget() { + super(); + setGetter(() -> ""); // fake getter; used only for init + setSynced(false, false); + setTextColor(Color.WHITE.dark(1)); + setTextAlignment(Alignment.CenterLeft); + setBackground(GTUITextures.BACKGROUND_TEXT_FIELD.withOffset(-1, -1, 2, 2)); + } + + @Override + public void onPostInit() { + // Widget#onPostInit is called earlier than IDataFollowerWidget#onPostInit, + // so we make sure cursor is set after text is set + super.onPostInit(); + + // On first call #handler does not contain text. + // On second call, it contains correct text to update #lastText, + // but #shouldGetFocus call is skipped by Cursor#updateFocused, + // so we need to manually call this. + if (focusOnGuiOpen) { + shouldGetFocus(); + } + } + + @Override + public CoverDataFollowerTextFieldWidget setDataToStateGetter(Function dataToStateGetter) { + this.dataToStateGetter = dataToStateGetter; + return this; + } + + @Override + public CoverDataFollowerTextFieldWidget setStateSetter(Consumer setter) { + super.setSetter(setter); + return this; + } + + @Override + public void updateState(T data) { + setText(dataToStateGetter.apply(data)); + } + + /** + * @deprecated Use {@link CoverDataFollowerNumericWidget} + */ + @Deprecated + public CoverDataFollowerTextFieldWidget setOnScrollNumbers(int baseStep, int ctrlStep, int shiftStep) { + setOnScrollNumbers((val, direction) -> { + int step = (GuiScreen.isShiftKeyDown() ? shiftStep : GuiScreen.isCtrlKeyDown() ? ctrlStep : baseStep) + * direction; + try { + val = Math.addExact(val, step); + } catch (ArithmeticException ignored) { + val = Integer.MAX_VALUE; + } + return val; + }); + return this; + } + + /** + * @deprecated Use {@link CoverDataFollowerNumericWidget} + */ + @Deprecated + public CoverDataFollowerTextFieldWidget setOnScrollNumbers() { + return setOnScrollNumbers(1, 50, 1000); + } + + /** + * @deprecated Use {@link CoverDataFollowerNumericWidget} + */ + @Deprecated + public CoverDataFollowerTextFieldWidget setOnScrollText(int baseStep, int ctrlStep, int shiftStep) { + setOnScroll((text, direction) -> { + int val = (int) MathExpressionParser.parse(text); + int step = (GuiScreen.isShiftKeyDown() ? shiftStep : GuiScreen.isCtrlKeyDown() ? ctrlStep : baseStep) + * direction; + try { + val = Math.addExact(val, step); + } catch (ArithmeticException ignored) { + val = Integer.MAX_VALUE; + } + return this.getDecimalFormatter() + .format(val); + }); + return this; + } + + /** + * @deprecated Use {@link CoverDataFollowerNumericWidget} + */ + @Deprecated + public CoverDataFollowerTextFieldWidget setOnScrollText() { + return setOnScrollText(1, 5, 50); + } + + /** + * @deprecated Use {@link CoverDataFollowerNumericWidget} + */ + @Deprecated + public CoverDataFollowerTextFieldWidget setOnScrollNumbersLong(long baseStep, long ctrlStep, long shiftStep) { + setOnScrollNumbersLong((val, direction) -> { + long step = (GuiScreen.isShiftKeyDown() ? shiftStep : GuiScreen.isCtrlKeyDown() ? ctrlStep : baseStep) + * direction; + try { + val = Math.addExact(val, step); + } catch (ArithmeticException ignored) { + val = Long.MAX_VALUE; + } + return val; + }); + return this; + } +} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerToggleButtonWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerToggleButtonWidget.java new file mode 100644 index 0000000000..0fcac5009c --- /dev/null +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollowerToggleButtonWidget.java @@ -0,0 +1,86 @@ +package gregtech.common.gui.modularui.widget; + +import java.util.function.Consumer; +import java.util.function.Function; + +import com.gtnewhorizons.modularui.api.drawable.IDrawable; + +import gregtech.api.gui.modularui.GTUITextures; +import gregtech.api.gui.modularui.IDataFollowerWidget; +import gregtech.api.util.ISerializableObject; + +public class CoverDataFollowerToggleButtonWidget extends CoverCycleButtonWidget + implements IDataFollowerWidget { + + private Function dataToStateGetter; + + public CoverDataFollowerToggleButtonWidget() { + super(); + setGetter(() -> 0); // fake getter; used only for init + setSynced(false, false); + setLength(2); + } + + @Override + public CoverDataFollowerToggleButtonWidget setDataToStateGetter(Function dataToStateGetter) { + this.dataToStateGetter = dataToStateGetter; + return this; + } + + @Override + public CoverDataFollowerToggleButtonWidget setStateSetter(Consumer setter) { + super.setSetter(val -> setter.accept(val == 1)); + return this; + } + + @Override + public void updateState(T data) { + setState(dataToStateGetter.apply(data) ? 1 : 0, false, false); + } + + public CoverDataFollowerToggleButtonWidget setToggleTexture(IDrawable active, IDrawable inactive) { + setTextureGetter(state -> state == 1 ? active : inactive); + return this; + } + + public static CoverDataFollowerToggleButtonWidget ofCheckAndCross() { + return new CoverDataFollowerToggleButtonWidget() + .setToggleTexture(GTUITextures.OVERLAY_BUTTON_CHECKMARK, GTUITextures.OVERLAY_BUTTON_CROSS); + } + + public static CoverDataFollowerToggleButtonWidget ofCheck() { + return new CoverDataFollowerToggleButtonWidget() + .setToggleTexture(GTUITextures.OVERLAY_BUTTON_CHECKMARK, GTUITextures.TRANSPARENT); + } + + public static CoverDataFollowerToggleButtonWidget ofRedstone() { + return new CoverDataFollowerToggleButtonWidget() + .setToggleTexture(GTUITextures.OVERLAY_BUTTON_REDSTONE_ON, GTUITextures.OVERLAY_BUTTON_REDSTONE_OFF); + } + + public static CoverDataFollowerToggleButtonWidget ofDisableable() { + return new CoverDataFollower_DisableableToggleButtonWidget<>(); + } + + /** + * Disables clicking if button is already pressed. + */ + public static class CoverDataFollower_DisableableToggleButtonWidget + extends CoverDataFollowerToggleButtonWidget { + + public CoverDataFollower_DisableableToggleButtonWidget() { + super(); + } + + @Override + protected boolean canClick() { + return getState() == 0; + } + + @Override + public IDrawable[] getBackground() { + if (!canClick()) return new IDrawable[] { GTUITextures.BUTTON_COVER_NORMAL_DISABLED }; + return super.getBackground(); + } + } +} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_CycleButtonWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_CycleButtonWidget.java deleted file mode 100644 index ec7d31ca7e..0000000000 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_CycleButtonWidget.java +++ /dev/null @@ -1,39 +0,0 @@ -package gregtech.common.gui.modularui.widget; - -import java.util.function.Consumer; -import java.util.function.Function; - -import gregtech.api.gui.modularui.IDataFollowerWidget; -import gregtech.api.util.ISerializableObject; - -/** - * Determines button state with cover data. - */ -public class CoverDataFollower_CycleButtonWidget extends CoverCycleButtonWidget - implements IDataFollowerWidget { - - private Function dataToStateGetter; - - public CoverDataFollower_CycleButtonWidget() { - super(); - setGetter(() -> 0); // fake getter; used only for init - setSynced(false, false); - } - - @Override - public CoverDataFollower_CycleButtonWidget setDataToStateGetter(Function dataToStateGetter) { - this.dataToStateGetter = dataToStateGetter; - return this; - } - - @Override - public CoverDataFollower_CycleButtonWidget setStateSetter(Consumer setter) { - super.setSetter(setter); - return this; - } - - @Override - public void updateState(T data) { - setState(dataToStateGetter.apply(data), false, false); - } -} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_NumericWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_NumericWidget.java deleted file mode 100644 index f641ed090b..0000000000 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_NumericWidget.java +++ /dev/null @@ -1,60 +0,0 @@ -package gregtech.common.gui.modularui.widget; - -import java.util.function.Consumer; -import java.util.function.Function; - -import com.gtnewhorizons.modularui.api.math.Alignment; -import com.gtnewhorizons.modularui.api.math.Color; -import com.gtnewhorizons.modularui.common.widget.textfield.NumericWidget; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.gui.modularui.IDataFollowerWidget; -import gregtech.api.util.ISerializableObject; - -public class CoverDataFollower_NumericWidget extends NumericWidget - implements IDataFollowerWidget { - - private Function dataToStateGetter; - - public CoverDataFollower_NumericWidget() { - super(); - setGetter(() -> 0); // fake getter; used only for init - setSynced(false, false); - setTextColor(Color.WHITE.dark(1)); - setTextAlignment(Alignment.CenterLeft); - setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD.withOffset(-1, -1, 2, 2)); - } - - @Override - public void onPostInit() { - // Widget#onPostInit is called earlier than IDataFollowerWidget#onPostInit, - // so we make sure cursor is set after text is set - super.onPostInit(); - - // On first call #handler does not contain text. - // On second call, it contains correct text to update #lastText, - // but #shouldGetFocus call is skipped by Cursor#updateFocused, - // so we need to manually call this. - if (focusOnGuiOpen) { - shouldGetFocus(); - } - } - - @Override - public CoverDataFollower_NumericWidget setDataToStateGetter(Function dataToStateGetter) { - this.dataToStateGetter = dataToStateGetter; - return this; - } - - @Override - public CoverDataFollower_NumericWidget setStateSetter(Consumer setter) { - super.setSetter(setter::accept); - return this; - } - - @Override - public void updateState(T data) { - setValue(dataToStateGetter.apply(data)); - } - -} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_SlotWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_SlotWidget.java deleted file mode 100644 index 0b827bfbc6..0000000000 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_SlotWidget.java +++ /dev/null @@ -1,101 +0,0 @@ -package gregtech.common.gui.modularui.widget; - -import java.util.function.Consumer; -import java.util.function.Function; - -import net.minecraft.item.ItemStack; - -import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; -import com.gtnewhorizons.modularui.api.widget.Interactable; -import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils; -import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; -import com.gtnewhorizons.modularui.common.widget.SlotWidget; - -import gregtech.api.gui.modularui.IDataFollowerWidget; -import gregtech.api.util.ISerializableObject; - -public class CoverDataFollower_SlotWidget extends SlotWidget - implements IDataFollowerWidget { - - private Function dataToStateGetter; - private Consumer dataSetter; - - public CoverDataFollower_SlotWidget(BaseSlot slot) { - super(slot); - } - - public CoverDataFollower_SlotWidget(IItemHandlerModifiable handler, int index, boolean phantom) { - this(new BaseSlot(handler, index, phantom)); - } - - public CoverDataFollower_SlotWidget(IItemHandlerModifiable handler, int index) { - this(handler, index, false); - } - - @Override - public CoverDataFollower_SlotWidget setDataToStateGetter(Function dataToStateGetter) { - this.dataToStateGetter = dataToStateGetter; - return this; - } - - @Override - public CoverDataFollower_SlotWidget setStateSetter(Consumer setter) { - this.dataSetter = setter; - return this; - } - - @Override - public void updateState(T data) { - getMcSlot().putStack(dataToStateGetter.apply(data)); - } - - @Override - public void detectAndSendChanges(boolean init) {} - - // Slot sync is handled differently from other DataFollowers, - // so we need to also sync slot content directly to server. - - @Override - public ClickResult onClick(int buttonId, boolean doubleClick) { - if (interactionDisabled) return ClickResult.REJECT; - if (isPhantom()) { - ClickData clickData = ClickData.create(buttonId, doubleClick); - syncToServer(2, clickData::writeToPacket); - phantomClick(clickData); - dataSetter.accept(getMcSlot().getStack()); - return ClickResult.ACCEPT; - } - return ClickResult.REJECT; - } - - @Override - public boolean onMouseScroll(int direction) { - if (interactionDisabled) return false; - if (isPhantom()) { - if (Interactable.hasShiftDown()) { - direction *= 8; - } - final int finalDirection = direction; - syncToServer(3, buffer -> buffer.writeVarIntToBuffer(finalDirection)); - phantomScroll(finalDirection); - dataSetter.accept(getMcSlot().getStack()); - return true; - } - return false; - } - - @Override - public boolean handleDragAndDrop(ItemStack draggedStack, int button) { - if (interactionDisabled) return false; - if (!isPhantom()) return false; - ClickData clickData = ClickData.create(button, false); - syncToServer(5, buffer -> { - clickData.writeToPacket(buffer); - NetworkUtils.writeItemStack(buffer, draggedStack); - }); - phantomClick(clickData, draggedStack); - dataSetter.accept(getMcSlot().getStack()); - draggedStack.stackSize = 0; - return true; - } -} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_TextFieldWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_TextFieldWidget.java deleted file mode 100644 index 1907aaf22f..0000000000 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_TextFieldWidget.java +++ /dev/null @@ -1,134 +0,0 @@ -package gregtech.common.gui.modularui.widget; - -import java.util.function.Consumer; -import java.util.function.Function; - -import net.minecraft.client.gui.GuiScreen; - -import com.gtnewhorizon.gtnhlib.util.parsing.MathExpressionParser; -import com.gtnewhorizons.modularui.api.math.Alignment; -import com.gtnewhorizons.modularui.api.math.Color; -import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.gui.modularui.IDataFollowerWidget; -import gregtech.api.util.ISerializableObject; - -public class CoverDataFollower_TextFieldWidget extends TextFieldWidget - implements IDataFollowerWidget { - - private Function dataToStateGetter; - - public CoverDataFollower_TextFieldWidget() { - super(); - setGetter(() -> ""); // fake getter; used only for init - setSynced(false, false); - setTextColor(Color.WHITE.dark(1)); - setTextAlignment(Alignment.CenterLeft); - setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD.withOffset(-1, -1, 2, 2)); - } - - @Override - public void onPostInit() { - // Widget#onPostInit is called earlier than IDataFollowerWidget#onPostInit, - // so we make sure cursor is set after text is set - super.onPostInit(); - - // On first call #handler does not contain text. - // On second call, it contains correct text to update #lastText, - // but #shouldGetFocus call is skipped by Cursor#updateFocused, - // so we need to manually call this. - if (focusOnGuiOpen) { - shouldGetFocus(); - } - } - - @Override - public CoverDataFollower_TextFieldWidget setDataToStateGetter(Function dataToStateGetter) { - this.dataToStateGetter = dataToStateGetter; - return this; - } - - @Override - public CoverDataFollower_TextFieldWidget setStateSetter(Consumer setter) { - super.setSetter(setter); - return this; - } - - @Override - public void updateState(T data) { - setText(dataToStateGetter.apply(data)); - } - - /** - * @deprecated Use {@link CoverDataFollower_NumericWidget} - */ - @Deprecated - public CoverDataFollower_TextFieldWidget setOnScrollNumbers(int baseStep, int ctrlStep, int shiftStep) { - setOnScrollNumbers((val, direction) -> { - int step = (GuiScreen.isShiftKeyDown() ? shiftStep : GuiScreen.isCtrlKeyDown() ? ctrlStep : baseStep) - * direction; - try { - val = Math.addExact(val, step); - } catch (ArithmeticException ignored) { - val = Integer.MAX_VALUE; - } - return val; - }); - return this; - } - - /** - * @deprecated Use {@link CoverDataFollower_NumericWidget} - */ - @Deprecated - public CoverDataFollower_TextFieldWidget setOnScrollNumbers() { - return setOnScrollNumbers(1, 50, 1000); - } - - /** - * @deprecated Use {@link CoverDataFollower_NumericWidget} - */ - @Deprecated - public CoverDataFollower_TextFieldWidget setOnScrollText(int baseStep, int ctrlStep, int shiftStep) { - setOnScroll((text, direction) -> { - int val = (int) MathExpressionParser.parse(text); - int step = (GuiScreen.isShiftKeyDown() ? shiftStep : GuiScreen.isCtrlKeyDown() ? ctrlStep : baseStep) - * direction; - try { - val = Math.addExact(val, step); - } catch (ArithmeticException ignored) { - val = Integer.MAX_VALUE; - } - return this.getDecimalFormatter() - .format(val); - }); - return this; - } - - /** - * @deprecated Use {@link CoverDataFollower_NumericWidget} - */ - @Deprecated - public CoverDataFollower_TextFieldWidget setOnScrollText() { - return setOnScrollText(1, 5, 50); - } - - /** - * @deprecated Use {@link CoverDataFollower_NumericWidget} - */ - @Deprecated - public CoverDataFollower_TextFieldWidget setOnScrollNumbersLong(long baseStep, long ctrlStep, long shiftStep) { - setOnScrollNumbersLong((val, direction) -> { - long step = (GuiScreen.isShiftKeyDown() ? shiftStep : GuiScreen.isCtrlKeyDown() ? ctrlStep : baseStep) - * direction; - try { - val = Math.addExact(val, step); - } catch (ArithmeticException ignored) { - val = Long.MAX_VALUE; - } - return val; - }); - return this; - } -} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_ToggleButtonWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_ToggleButtonWidget.java deleted file mode 100644 index 6f798a93d5..0000000000 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_ToggleButtonWidget.java +++ /dev/null @@ -1,86 +0,0 @@ -package gregtech.common.gui.modularui.widget; - -import java.util.function.Consumer; -import java.util.function.Function; - -import com.gtnewhorizons.modularui.api.drawable.IDrawable; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.gui.modularui.IDataFollowerWidget; -import gregtech.api.util.ISerializableObject; - -public class CoverDataFollower_ToggleButtonWidget extends CoverCycleButtonWidget - implements IDataFollowerWidget { - - private Function dataToStateGetter; - - public CoverDataFollower_ToggleButtonWidget() { - super(); - setGetter(() -> 0); // fake getter; used only for init - setSynced(false, false); - setLength(2); - } - - @Override - public CoverDataFollower_ToggleButtonWidget setDataToStateGetter(Function dataToStateGetter) { - this.dataToStateGetter = dataToStateGetter; - return this; - } - - @Override - public CoverDataFollower_ToggleButtonWidget setStateSetter(Consumer setter) { - super.setSetter(val -> setter.accept(val == 1)); - return this; - } - - @Override - public void updateState(T data) { - setState(dataToStateGetter.apply(data) ? 1 : 0, false, false); - } - - public CoverDataFollower_ToggleButtonWidget setToggleTexture(IDrawable active, IDrawable inactive) { - setTextureGetter(state -> state == 1 ? active : inactive); - return this; - } - - public static CoverDataFollower_ToggleButtonWidget ofCheckAndCross() { - return new CoverDataFollower_ToggleButtonWidget() - .setToggleTexture(GT_UITextures.OVERLAY_BUTTON_CHECKMARK, GT_UITextures.OVERLAY_BUTTON_CROSS); - } - - public static CoverDataFollower_ToggleButtonWidget ofCheck() { - return new CoverDataFollower_ToggleButtonWidget() - .setToggleTexture(GT_UITextures.OVERLAY_BUTTON_CHECKMARK, GT_UITextures.TRANSPARENT); - } - - public static CoverDataFollower_ToggleButtonWidget ofRedstone() { - return new CoverDataFollower_ToggleButtonWidget() - .setToggleTexture(GT_UITextures.OVERLAY_BUTTON_REDSTONE_ON, GT_UITextures.OVERLAY_BUTTON_REDSTONE_OFF); - } - - public static CoverDataFollower_ToggleButtonWidget ofDisableable() { - return new CoverDataFollower_DisableableToggleButtonWidget<>(); - } - - /** - * Disables clicking if button is already pressed. - */ - public static class CoverDataFollower_DisableableToggleButtonWidget - extends CoverDataFollower_ToggleButtonWidget { - - public CoverDataFollower_DisableableToggleButtonWidget() { - super(); - } - - @Override - protected boolean canClick() { - return getState() == 0; - } - - @Override - public IDrawable[] getBackground() { - if (!canClick()) return new IDrawable[] { GT_UITextures.BUTTON_COVER_NORMAL_DISABLED }; - return super.getBackground(); - } - } -} diff --git a/src/main/java/gregtech/common/gui/modularui/widget/ItemWatcherSlotWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/ItemWatcherSlotWidget.java index 5200c1a416..9e458af6a5 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/ItemWatcherSlotWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/ItemWatcherSlotWidget.java @@ -9,7 +9,7 @@ import com.gtnewhorizons.modularui.api.forge.ItemStackHandler; import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; import com.gtnewhorizons.modularui.common.widget.SlotWidget; -import gregtech.api.util.GT_Utility; +import gregtech.api.util.GTUtility; /** * Watches specific ItemStack and pulls changes from it. Player cannot interact with slot, other than viewing NEI recipe @@ -33,7 +33,7 @@ public class ItemWatcherSlotWidget extends SlotWidget { @Override public void detectAndSendChanges(boolean init) { ItemStack target = getter.get(); - if (init || !GT_Utility.areStacksEqual(lastItem, target)) { + if (init || !GTUtility.areStacksEqual(lastItem, target)) { ItemStack toPut; if (target != null) { toPut = target.copy(); -- cgit