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 --- .../api/gui/widgets/CoverTickRateButton.java | 82 +++++++++++++++++++ .../api/gui/widgets/GT_CoverTickRateButton.java | 82 ------------------- .../gui/widgets/GT_LockedWhileActiveButton.java | 90 --------------------- .../api/gui/widgets/GT_PhantomItemButton.java | 92 ---------------------- .../api/gui/widgets/LockedWhileActiveButton.java | 90 +++++++++++++++++++++ .../api/gui/widgets/PhantomItemButton.java | 92 ++++++++++++++++++++++ 6 files changed, 264 insertions(+), 264 deletions(-) create mode 100644 src/main/java/gregtech/api/gui/widgets/CoverTickRateButton.java delete mode 100644 src/main/java/gregtech/api/gui/widgets/GT_CoverTickRateButton.java delete mode 100644 src/main/java/gregtech/api/gui/widgets/GT_LockedWhileActiveButton.java delete mode 100644 src/main/java/gregtech/api/gui/widgets/GT_PhantomItemButton.java create mode 100644 src/main/java/gregtech/api/gui/widgets/LockedWhileActiveButton.java create mode 100644 src/main/java/gregtech/api/gui/widgets/PhantomItemButton.java (limited to 'src/main/java/gregtech/api/gui/widgets') diff --git a/src/main/java/gregtech/api/gui/widgets/CoverTickRateButton.java b/src/main/java/gregtech/api/gui/widgets/CoverTickRateButton.java new file mode 100644 index 0000000000..ab05a98925 --- /dev/null +++ b/src/main/java/gregtech/api/gui/widgets/CoverTickRateButton.java @@ -0,0 +1,82 @@ +package gregtech.api.gui.widgets; + +import static gregtech.api.gui.modularui.GTUITextures.OVERLAY_BUTTON_HOURGLASS; +import static gregtech.common.covers.CoverInfo.MAX_TICK_RATE_ADDITION; + +import java.util.List; + +import net.minecraft.util.StatCollector; + +import org.jetbrains.annotations.NotNull; + +import com.google.common.collect.ImmutableList; +import com.gtnewhorizons.modularui.api.drawable.UITexture; +import com.gtnewhorizons.modularui.api.widget.IWidgetBuilder; +import com.gtnewhorizons.modularui.api.widget.Widget; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; + +import gregtech.api.gui.modularui.GTUITextures; +import gregtech.common.covers.CoverInfo; + +public class CoverTickRateButton extends ButtonWidget { + + private static final UITexture BACKGROUND = GTUITextures.BUTTON_COVER_NORMAL.getSubArea(0, 0, 1, 0.5f); + + private final CoverInfo coverInfo; + private int clientTickRate; + private int tickRateAddition; + + public CoverTickRateButton(@NotNull CoverInfo coverInfo, @NotNull IWidgetBuilder builder) { + this.coverInfo = coverInfo; + this.clientTickRate = coverInfo.getTickRate(); + this.tickRateAddition = coverInfo.getTickRateAddition(); + + super.setBackground(BACKGROUND, OVERLAY_BUTTON_HOURGLASS); + super.setOnClick(this::onClick); + super.dynamicTooltip(this::dynamicTooltip); + super.attachSyncer( + new FakeSyncWidget.IntegerSyncer(this.coverInfo::getTickRate, integer -> clientTickRate = integer), + builder, + (widget, aInt) -> notifyTooltipChange()) + .attachSyncer( + new FakeSyncWidget.IntegerSyncer( + this.coverInfo::getTickRateAddition, + integer -> tickRateAddition = integer), + builder); + + } + + private void onClick(@NotNull ClickData clickData, @NotNull Widget widget) { + final int iterations = clickData.ctrl ? 5 : 1; + final boolean isDecreasing = clickData.mouseButton == 1; + + // Do five operations at once if Ctrl is held down. Since the actual increase granted by each invocation can be + // different on each call, just call the method several times rather than trying to do a bunch of weird math. + for (int i = 0; i < iterations; i++) { + coverInfo.adjustTickRateMultiplier(isDecreasing); + } + } + + private List dynamicTooltip() { + final String boundsNotification; + + if (tickRateAddition == 0) { + boundsNotification = StatCollector.translateToLocal("gt.cover.info.button.bounds_notification.minimum"); + } else if (tickRateAddition >= MAX_TICK_RATE_ADDITION - 1) { + // Clamping can make tickRateAddition approach but never actually equal MAX_ADDITION, so we need this + // adjustment. + boundsNotification = StatCollector.translateToLocal("gt.cover.info.button.bounds_notification.maximum"); + } else { + boundsNotification = ""; + } + + return ImmutableList.of( + StatCollector.translateToLocalFormatted( + "gt.cover.info.button.tick_rate.1", + new CoverInfo.ClientTickRateFormatter(clientTickRate), + boundsNotification), + StatCollector.translateToLocal("gt.cover.info.button.tick_rate.2"), + StatCollector.translateToLocal("gt.cover.info.button.tick_rate.3")); + } +} diff --git a/src/main/java/gregtech/api/gui/widgets/GT_CoverTickRateButton.java b/src/main/java/gregtech/api/gui/widgets/GT_CoverTickRateButton.java deleted file mode 100644 index 883ffb4079..0000000000 --- a/src/main/java/gregtech/api/gui/widgets/GT_CoverTickRateButton.java +++ /dev/null @@ -1,82 +0,0 @@ -package gregtech.api.gui.widgets; - -import static gregtech.api.gui.modularui.GT_UITextures.OVERLAY_BUTTON_HOURGLASS; -import static gregtech.common.covers.CoverInfo.MAX_TICK_RATE_ADDITION; - -import java.util.List; - -import net.minecraft.util.StatCollector; - -import org.jetbrains.annotations.NotNull; - -import com.google.common.collect.ImmutableList; -import com.gtnewhorizons.modularui.api.drawable.UITexture; -import com.gtnewhorizons.modularui.api.widget.IWidgetBuilder; -import com.gtnewhorizons.modularui.api.widget.Widget; -import com.gtnewhorizons.modularui.common.widget.ButtonWidget; -import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.common.covers.CoverInfo; - -public class GT_CoverTickRateButton extends ButtonWidget { - - private static final UITexture BACKGROUND = GT_UITextures.BUTTON_COVER_NORMAL.getSubArea(0, 0, 1, 0.5f); - - private final CoverInfo coverInfo; - private int clientTickRate; - private int tickRateAddition; - - public GT_CoverTickRateButton(@NotNull CoverInfo coverInfo, @NotNull IWidgetBuilder builder) { - this.coverInfo = coverInfo; - this.clientTickRate = coverInfo.getTickRate(); - this.tickRateAddition = coverInfo.getTickRateAddition(); - - super.setBackground(BACKGROUND, OVERLAY_BUTTON_HOURGLASS); - super.setOnClick(this::onClick); - super.dynamicTooltip(this::dynamicTooltip); - super.attachSyncer( - new FakeSyncWidget.IntegerSyncer(this.coverInfo::getTickRate, integer -> clientTickRate = integer), - builder, - (widget, aInt) -> notifyTooltipChange()) - .attachSyncer( - new FakeSyncWidget.IntegerSyncer( - this.coverInfo::getTickRateAddition, - integer -> tickRateAddition = integer), - builder); - - } - - private void onClick(@NotNull ClickData clickData, @NotNull Widget widget) { - final int iterations = clickData.ctrl ? 5 : 1; - final boolean isDecreasing = clickData.mouseButton == 1; - - // Do five operations at once if Ctrl is held down. Since the actual increase granted by each invocation can be - // different on each call, just call the method several times rather than trying to do a bunch of weird math. - for (int i = 0; i < iterations; i++) { - coverInfo.adjustTickRateMultiplier(isDecreasing); - } - } - - private List dynamicTooltip() { - final String boundsNotification; - - if (tickRateAddition == 0) { - boundsNotification = StatCollector.translateToLocal("gt.cover.info.button.bounds_notification.minimum"); - } else if (tickRateAddition >= MAX_TICK_RATE_ADDITION - 1) { - // Clamping can make tickRateAddition approach but never actually equal MAX_ADDITION, so we need this - // adjustment. - boundsNotification = StatCollector.translateToLocal("gt.cover.info.button.bounds_notification.maximum"); - } else { - boundsNotification = ""; - } - - return ImmutableList.of( - StatCollector.translateToLocalFormatted( - "gt.cover.info.button.tick_rate.1", - new CoverInfo.ClientTickRateFormatter(clientTickRate), - boundsNotification), - StatCollector.translateToLocal("gt.cover.info.button.tick_rate.2"), - StatCollector.translateToLocal("gt.cover.info.button.tick_rate.3")); - } -} diff --git a/src/main/java/gregtech/api/gui/widgets/GT_LockedWhileActiveButton.java b/src/main/java/gregtech/api/gui/widgets/GT_LockedWhileActiveButton.java deleted file mode 100644 index 9a93a8fadf..0000000000 --- a/src/main/java/gregtech/api/gui/widgets/GT_LockedWhileActiveButton.java +++ /dev/null @@ -1,90 +0,0 @@ -package gregtech.api.gui.widgets; - -import java.util.Arrays; -import java.util.List; -import java.util.function.BiConsumer; -import java.util.function.Supplier; - -import net.minecraft.util.StatCollector; - -import org.jetbrains.annotations.NotNull; - -import com.google.common.collect.ImmutableList; -import com.gtnewhorizons.modularui.api.drawable.IDrawable; -import com.gtnewhorizons.modularui.api.screen.ModularWindow; -import com.gtnewhorizons.modularui.api.widget.Widget; -import com.gtnewhorizons.modularui.common.widget.ButtonWidget; -import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.interfaces.tileentity.IMachineProgress; - -public class GT_LockedWhileActiveButton extends ButtonWidget { - - @NotNull - private final IMachineProgress machine; - - public GT_LockedWhileActiveButton(@NotNull IMachineProgress machine, @NotNull ModularWindow.Builder builder) { - super(); - this.machine = machine; - - super.attachSyncer( - new FakeSyncWidget.BooleanSyncer(machine::isActive, a -> {}), - builder, - (widget, aBoolean) -> widget.notifyTooltipChange()); - - super.dynamicTooltip(this::generateTooltip); - } - - @NotNull - @Override - public ButtonWidget setOnClick(@NotNull BiConsumer clickAction) { - return super.setOnClick((clickData, widget) -> { - if (!machine.isActive()) { - clickAction.accept(clickData, widget); - } - }); - } - - @NotNull - @Override - public Widget setBackground(@NotNull IDrawable... drawables) { - return super.setBackground(() -> appendLockedOverlay(drawables)); - } - - @NotNull - @Override - public Widget setBackground(@NotNull Supplier drawablesSupplier) { - return super.setBackground(() -> appendLockedOverlay(drawablesSupplier.get())); - } - - @NotNull - @Override - public Widget dynamicTooltip(@NotNull Supplier> dynamicTooltip) { - return super.dynamicTooltip(() -> { - ImmutableList.Builder tooltips = ImmutableList.builder() - .addAll(dynamicTooltip.get()); - tooltips.addAll(generateTooltip()); - - return tooltips.build(); - }); - } - - @NotNull - private IDrawable[] appendLockedOverlay(@NotNull IDrawable[] drawables) { - if (machine.isActive()) { - final IDrawable[] copy = Arrays.copyOf(drawables, drawables.length + 1); - copy[drawables.length] = GT_UITextures.OVERLAY_BUTTON_LOCKED; - return copy; - } - return drawables; - } - - @NotNull - private List generateTooltip() { - if (machine.isActive()) { - return ImmutableList.of(StatCollector.translateToLocal("GT5U.gui.button.forbidden_while_running")); - } - return ImmutableList.of(); - } -} diff --git a/src/main/java/gregtech/api/gui/widgets/GT_PhantomItemButton.java b/src/main/java/gregtech/api/gui/widgets/GT_PhantomItemButton.java deleted file mode 100644 index 4e2d144aa7..0000000000 --- a/src/main/java/gregtech/api/gui/widgets/GT_PhantomItemButton.java +++ /dev/null @@ -1,92 +0,0 @@ -package gregtech.api.gui.widgets; - -import java.util.List; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; - -import org.apache.commons.lang3.NotImplementedException; -import org.jetbrains.annotations.Nullable; - -import com.google.common.collect.ImmutableList; -import com.gtnewhorizons.modularui.api.ModularUITextures; -import com.gtnewhorizons.modularui.api.drawable.IDrawable; -import com.gtnewhorizons.modularui.api.drawable.Text; -import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; -import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; -import com.gtnewhorizons.modularui.common.widget.SlotWidget; - -import gregtech.api.gui.modularui.GT_UITextures; -import gregtech.api.interfaces.metatileentity.IItemLockable; - -/** - * Creates a phantom item in a GUI. Useful for filtering. - */ -public class GT_PhantomItemButton extends SlotWidget { - - public static final IDrawable[] FILTER_BACKGROUND = { ModularUITextures.ITEM_SLOT, - GT_UITextures.OVERLAY_SLOT_FILTER }; - - public GT_PhantomItemButton(final IItemLockable delegate) { - super(BaseSlot.phantom(new PhantomItemDelegate(delegate), 0)); - controlsAmount = false; - } - - @Override - public List getTooltip() { - return ImmutableList.of(new Text(StatCollector.translateToLocal("GT5U.bus.filterTooltip.empty"))); - } - - @Override - public List getExtraTooltip() { - return ImmutableList.of(StatCollector.translateToLocal("GT5U.bus.filterTooltip.full")); - } - - @Override - public boolean onMouseScroll(int direction) { - return false; - } - - @SuppressWarnings("ClassCanBeRecord") - private static class PhantomItemDelegate implements IItemHandlerModifiable { - - private final IItemLockable delegate; - - public PhantomItemDelegate(final IItemLockable delegate) { - this.delegate = delegate; - } - - @Override - public void setStackInSlot(int slot, ItemStack itemStack) { - delegate.setLockedItem(itemStack); - } - - @Override - public int getSlots() { - return 1; - } - - @Override - public ItemStack getStackInSlot(int slot) { - return delegate.getLockedItem(); - } - - @Nullable - @Override - public ItemStack insertItem(int slot, ItemStack itemStack, boolean simulate) { - delegate.setLockedItem(itemStack); - return null; - } - - @Nullable - @Override - public ItemStack extractItem(int var1, int var2, boolean var3) { - throw new NotImplementedException("Extract item is disabled for GhostItemButtons."); - } - - @Override - public int getSlotLimit(int slot) { - return 1; - } - } -} diff --git a/src/main/java/gregtech/api/gui/widgets/LockedWhileActiveButton.java b/src/main/java/gregtech/api/gui/widgets/LockedWhileActiveButton.java new file mode 100644 index 0000000000..0e793372c5 --- /dev/null +++ b/src/main/java/gregtech/api/gui/widgets/LockedWhileActiveButton.java @@ -0,0 +1,90 @@ +package gregtech.api.gui.widgets; + +import java.util.Arrays; +import java.util.List; +import java.util.function.BiConsumer; +import java.util.function.Supplier; + +import net.minecraft.util.StatCollector; + +import org.jetbrains.annotations.NotNull; + +import com.google.common.collect.ImmutableList; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.widget.Widget; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; + +import gregtech.api.gui.modularui.GTUITextures; +import gregtech.api.interfaces.tileentity.IMachineProgress; + +public class LockedWhileActiveButton extends ButtonWidget { + + @NotNull + private final IMachineProgress machine; + + public LockedWhileActiveButton(@NotNull IMachineProgress machine, @NotNull ModularWindow.Builder builder) { + super(); + this.machine = machine; + + super.attachSyncer( + new FakeSyncWidget.BooleanSyncer(machine::isActive, a -> {}), + builder, + (widget, aBoolean) -> widget.notifyTooltipChange()); + + super.dynamicTooltip(this::generateTooltip); + } + + @NotNull + @Override + public ButtonWidget setOnClick(@NotNull BiConsumer clickAction) { + return super.setOnClick((clickData, widget) -> { + if (!machine.isActive()) { + clickAction.accept(clickData, widget); + } + }); + } + + @NotNull + @Override + public Widget setBackground(@NotNull IDrawable... drawables) { + return super.setBackground(() -> appendLockedOverlay(drawables)); + } + + @NotNull + @Override + public Widget setBackground(@NotNull Supplier drawablesSupplier) { + return super.setBackground(() -> appendLockedOverlay(drawablesSupplier.get())); + } + + @NotNull + @Override + public Widget dynamicTooltip(@NotNull Supplier> dynamicTooltip) { + return super.dynamicTooltip(() -> { + ImmutableList.Builder tooltips = ImmutableList.builder() + .addAll(dynamicTooltip.get()); + tooltips.addAll(generateTooltip()); + + return tooltips.build(); + }); + } + + @NotNull + private IDrawable[] appendLockedOverlay(@NotNull IDrawable[] drawables) { + if (machine.isActive()) { + final IDrawable[] copy = Arrays.copyOf(drawables, drawables.length + 1); + copy[drawables.length] = GTUITextures.OVERLAY_BUTTON_LOCKED; + return copy; + } + return drawables; + } + + @NotNull + private List generateTooltip() { + if (machine.isActive()) { + return ImmutableList.of(StatCollector.translateToLocal("GT5U.gui.button.forbidden_while_running")); + } + return ImmutableList.of(); + } +} diff --git a/src/main/java/gregtech/api/gui/widgets/PhantomItemButton.java b/src/main/java/gregtech/api/gui/widgets/PhantomItemButton.java new file mode 100644 index 0000000000..e13266b33f --- /dev/null +++ b/src/main/java/gregtech/api/gui/widgets/PhantomItemButton.java @@ -0,0 +1,92 @@ +package gregtech.api.gui.widgets; + +import java.util.List; + +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + +import org.apache.commons.lang3.NotImplementedException; +import org.jetbrains.annotations.Nullable; + +import com.google.common.collect.ImmutableList; +import com.gtnewhorizons.modularui.api.ModularUITextures; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.drawable.Text; +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; +import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; + +import gregtech.api.gui.modularui.GTUITextures; +import gregtech.api.interfaces.metatileentity.IItemLockable; + +/** + * Creates a phantom item in a GUI. Useful for filtering. + */ +public class PhantomItemButton extends SlotWidget { + + public static final IDrawable[] FILTER_BACKGROUND = { ModularUITextures.ITEM_SLOT, + GTUITextures.OVERLAY_SLOT_FILTER }; + + public PhantomItemButton(final IItemLockable delegate) { + super(BaseSlot.phantom(new PhantomItemDelegate(delegate), 0)); + controlsAmount = false; + } + + @Override + public List getTooltip() { + return ImmutableList.of(new Text(StatCollector.translateToLocal("GT5U.bus.filterTooltip.empty"))); + } + + @Override + public List getExtraTooltip() { + return ImmutableList.of(StatCollector.translateToLocal("GT5U.bus.filterTooltip.full")); + } + + @Override + public boolean onMouseScroll(int direction) { + return false; + } + + @SuppressWarnings("ClassCanBeRecord") + private static class PhantomItemDelegate implements IItemHandlerModifiable { + + private final IItemLockable delegate; + + public PhantomItemDelegate(final IItemLockable delegate) { + this.delegate = delegate; + } + + @Override + public void setStackInSlot(int slot, ItemStack itemStack) { + delegate.setLockedItem(itemStack); + } + + @Override + public int getSlots() { + return 1; + } + + @Override + public ItemStack getStackInSlot(int slot) { + return delegate.getLockedItem(); + } + + @Nullable + @Override + public ItemStack insertItem(int slot, ItemStack itemStack, boolean simulate) { + delegate.setLockedItem(itemStack); + return null; + } + + @Nullable + @Override + public ItemStack extractItem(int var1, int var2, boolean var3) { + throw new NotImplementedException("Extract item is disabled for GhostItemButtons."); + } + + @Override + public int getSlotLimit(int slot) { + return 1; + } + } +} -- cgit