diff options
author | Jason Mitchell <mitchej@gmail.com> | 2023-01-30 10:56:42 -0800 |
---|---|---|
committer | Jason Mitchell <mitchej@gmail.com> | 2023-01-30 10:56:42 -0800 |
commit | 0d9aab72aa570f13dc3e32e0d32b3f3a95f95e0a (patch) | |
tree | 1e2c649f3a6ce3f6b2babd0098a5f4819e9cd0b6 /src/main/java/gregtech/common/gui | |
parent | f8cc82edeb9810c45cba762d733a2c909a302faa (diff) | |
download | GT5-Unofficial-0d9aab72aa570f13dc3e32e0d32b3f3a95f95e0a.tar.gz GT5-Unofficial-0d9aab72aa570f13dc3e32e0d32b3f3a95f95e0a.tar.bz2 GT5-Unofficial-0d9aab72aa570f13dc3e32e0d32b3f3a95f95e0a.zip |
[ci skip] spotlessApply with the new settings
Diffstat (limited to 'src/main/java/gregtech/common/gui')
12 files changed, 232 insertions, 250 deletions
diff --git a/src/main/java/gregtech/common/gui/modularui/UIHelper.java b/src/main/java/gregtech/common/gui/modularui/UIHelper.java index 42d704bbf4..8973992c28 100644 --- a/src/main/java/gregtech/common/gui/modularui/UIHelper.java +++ b/src/main/java/gregtech/common/gui/modularui/UIHelper.java @@ -1,38 +1,30 @@ package gregtech.common.gui.modularui; -import com.gtnewhorizons.modularui.api.drawable.IDrawable; -import com.gtnewhorizons.modularui.api.math.Pos2d; -import gregtech.api.enums.SteamVariant; -import gregtech.api.gui.modularui.SteamTexture; -import gregtech.api.util.GT_Recipe; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; + import javax.annotation.Nullable; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.math.Pos2d; + +import gregtech.api.enums.SteamVariant; +import gregtech.api.gui.modularui.SteamTexture; +import gregtech.api.util.GT_Recipe; + public class UIHelper { /** * Iterates over candidates for slot placement. */ - public static void forEachSlots( - ForEachSlot forEachItemInputSlot, - ForEachSlot forEachItemOutputSlot, - ForEachSlot forEachSpecialSlot, - ForEachSlot forEachFluidInputSlot, - ForEachSlot forEachFluidOutputSlot, - IDrawable itemSlotBackground, - IDrawable fluidSlotBackground, - @Nullable GT_Recipe.GT_Recipe_Map recipeMap, - int itemInputCount, - int itemOutputCount, - int fluidInputCount, - int fluidOutputCount, - SteamVariant steamVariant, - Pos2d offset) { - List<Pos2d> itemInputPositions = recipeMap != null - ? recipeMap.getItemInputPositions(itemInputCount) + public static void forEachSlots(ForEachSlot forEachItemInputSlot, ForEachSlot forEachItemOutputSlot, + ForEachSlot forEachSpecialSlot, ForEachSlot forEachFluidInputSlot, ForEachSlot forEachFluidOutputSlot, + IDrawable itemSlotBackground, IDrawable fluidSlotBackground, @Nullable GT_Recipe.GT_Recipe_Map recipeMap, + int itemInputCount, int itemOutputCount, int fluidInputCount, int fluidOutputCount, + SteamVariant steamVariant, Pos2d offset) { + List<Pos2d> itemInputPositions = recipeMap != null ? recipeMap.getItemInputPositions(itemInputCount) : UIHelper.getItemInputPositions(itemInputCount); itemInputPositions = itemInputPositions.stream().map(p -> p.add(offset)).collect(Collectors.toList()); for (int i = 0; i < itemInputPositions.size(); i++) { @@ -42,11 +34,9 @@ public class UIHelper { itemInputPositions.get(i)); } - List<Pos2d> itemOutputPositions = recipeMap != null - ? recipeMap.getItemOutputPositions(itemOutputCount) + List<Pos2d> itemOutputPositions = recipeMap != null ? recipeMap.getItemOutputPositions(itemOutputCount) : UIHelper.getItemOutputPositions(itemOutputCount); - itemOutputPositions = - itemOutputPositions.stream().map(p -> p.add(offset)).collect(Collectors.toList()); + itemOutputPositions = itemOutputPositions.stream().map(p -> p.add(offset)).collect(Collectors.toList()); for (int i = 0; i < itemOutputPositions.size(); i++) { forEachItemOutputSlot.accept( i, @@ -60,11 +50,9 @@ public class UIHelper { (recipeMap != null ? recipeMap.getSpecialItemPosition() : UIHelper.getSpecialItemPosition()) .add(offset)); - List<Pos2d> fluidInputPositions = recipeMap != null - ? recipeMap.getFluidInputPositions(fluidInputCount) + List<Pos2d> fluidInputPositions = recipeMap != null ? recipeMap.getFluidInputPositions(fluidInputCount) : UIHelper.getFluidInputPositions(fluidInputCount); - fluidInputPositions = - fluidInputPositions.stream().map(p -> p.add(offset)).collect(Collectors.toList()); + fluidInputPositions = fluidInputPositions.stream().map(p -> p.add(offset)).collect(Collectors.toList()); for (int i = 0; i < fluidInputPositions.size(); i++) { forEachFluidInputSlot.accept( i, @@ -72,11 +60,9 @@ public class UIHelper { fluidInputPositions.get(i)); } - List<Pos2d> fluidOutputPositions = recipeMap != null - ? recipeMap.getFluidOutputPositions(fluidOutputCount) + List<Pos2d> fluidOutputPositions = recipeMap != null ? recipeMap.getFluidOutputPositions(fluidOutputCount) : UIHelper.getFluidOutputPositions(fluidOutputCount); - fluidOutputPositions = - fluidOutputPositions.stream().map(p -> p.add(offset)).collect(Collectors.toList()); + fluidOutputPositions = fluidOutputPositions.stream().map(p -> p.add(offset)).collect(Collectors.toList()); for (int i = 0; i < fluidOutputPositions.size(); i++) { forEachFluidOutputSlot.accept( i, @@ -164,16 +150,15 @@ public class UIHelper { return results; } - public static List<Pos2d> getGridPositions( - int totalCount, int xOrigin, int yOrigin, int xDirMaxCount, int yDirMaxCount) { + public static List<Pos2d> getGridPositions(int totalCount, int xOrigin, int yOrigin, int xDirMaxCount, + int yDirMaxCount) { // 18 pixels to get to a new grid for placing an item tile since they are 16x16 and have 1 pixel buffers // around them. int distance = 18; List<Pos2d> results = new ArrayList<>(); int count = 0; - loop: - for (int j = 0; j < yDirMaxCount; j++) { + loop: for (int j = 0; j < yDirMaxCount; j++) { for (int i = 0; i < xDirMaxCount; i++) { if (count >= totalCount) break loop; results.add(new Pos2d(xOrigin + i * distance, yOrigin + j * distance)); @@ -191,19 +176,13 @@ public class UIHelper { * @deprecated Renamed to {@link #getGridPositions} */ @Deprecated - public static List<Pos2d> getItemGridPositions( - int itemCount, int xOrigin, int yOrigin, int xDirMaxCount, int yDirMaxCount) { + public static List<Pos2d> getItemGridPositions(int itemCount, int xOrigin, int yOrigin, int xDirMaxCount, + int yDirMaxCount) { return getGridPositions(itemCount, xOrigin, yOrigin, xDirMaxCount, yDirMaxCount); } - private static IDrawable[] getBackgroundsForSlot( - IDrawable base, - GT_Recipe.GT_Recipe_Map recipeMap, - boolean isFluid, - boolean isOutput, - int index, - boolean isSpecial, - SteamVariant steamVariant) { + private static IDrawable[] getBackgroundsForSlot(IDrawable base, GT_Recipe.GT_Recipe_Map recipeMap, boolean isFluid, + boolean isOutput, int index, boolean isSpecial, SteamVariant steamVariant) { if (recipeMap != null) { IDrawable overlay; if (steamVariant != SteamVariant.NONE) { @@ -217,14 +196,15 @@ public class UIHelper { overlay = recipeMap.getOverlayForSlot(isFluid, isOutput, index, isSpecial); } if (overlay != null) { - return new IDrawable[] {base, overlay}; + return new IDrawable[] { base, overlay }; } } - return new IDrawable[] {base}; + return new IDrawable[] { base }; } @FunctionalInterface public interface ForEachSlot { + void accept(int index, IDrawable[] backgrounds, Pos2d pos); } } diff --git a/src/main/java/gregtech/common/gui/modularui/uifactory/SelectItemUIFactory.java b/src/main/java/gregtech/common/gui/modularui/uifactory/SelectItemUIFactory.java index c3161b3f5e..00cfcf9d6d 100644 --- a/src/main/java/gregtech/common/gui/modularui/uifactory/SelectItemUIFactory.java +++ b/src/main/java/gregtech/common/gui/modularui/uifactory/SelectItemUIFactory.java @@ -1,5 +1,15 @@ package gregtech.common.gui.modularui.uifactory; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Consumer; +import java.util.function.Supplier; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; + import com.gtnewhorizons.modularui.api.ModularUITextures; import com.gtnewhorizons.modularui.api.drawable.IDrawable; import com.gtnewhorizons.modularui.api.drawable.ItemDrawable; @@ -11,23 +21,15 @@ import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; import com.gtnewhorizons.modularui.common.widget.ButtonWidget; import com.gtnewhorizons.modularui.common.widget.SlotWidget; import com.gtnewhorizons.modularui.common.widget.TextWidget; + import gregtech.api.enums.Dyes; import gregtech.api.gui.GT_GUIColorOverride; import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.util.GT_Util; import gregtech.api.util.GT_Utility; -import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.function.Consumer; -import java.util.function.Supplier; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.item.ItemStack; -import net.minecraft.util.StatCollector; /** - * Creates UI for selecting item from given list. - * This is client-only UI to allow using client-preferred settings. + * Creates UI for selecting item from given list. This is client-only UI to allow using client-preferred settings. */ public class SelectItemUIFactory { @@ -55,36 +57,31 @@ public class SelectItemUIFactory { private final Supplier<Integer> COLOR_TITLE = () -> getTextColorOrDefault("title", 0x222222); private final Supplier<Integer> COLOR_TEXT_GRAY = () -> getTextColorOrDefault("text_gray", 0x555555); - public SelectItemUIFactory( - String header, ItemStack headerItem, Consumer<ItemStack> selectedCallback, List<ItemStack> stacks) { + public SelectItemUIFactory(String header, ItemStack headerItem, Consumer<ItemStack> selectedCallback, + List<ItemStack> stacks) { this(header, headerItem, selectedCallback, stacks, UNSELECTED); } - public SelectItemUIFactory( - String header, - ItemStack headerItem, - Consumer<ItemStack> selectedCallback, - List<ItemStack> stacks, - int selected) { + public SelectItemUIFactory(String header, ItemStack headerItem, Consumer<ItemStack> selectedCallback, + List<ItemStack> stacks, int selected) { this(header, headerItem, selectedCallback, stacks, selected, false); } /** - * Constructor for a dialog to select an item from given list. Given callback may be called zero or more times depending on user action. + * Constructor for a dialog to select an item from given list. Given callback may be called zero or more times + * depending on user action. + * * @param header Header text * @param headerItem ItemStack to use as Dialog icon * @param selectedCallback callback upon selected * @param stacks list to choose from - * @param selected preselected item. Use {@link #UNSELECTED} for unselected. Invalid selected will be clamped to 0 or highest index - * @param noDeselect true if player cannot deselect, false otherwise. If this is set to true, selectedCallback is guaranteed to be called with a nonnull stack + * @param selected preselected item. Use {@link #UNSELECTED} for unselected. Invalid selected will be + * clamped to 0 or highest index + * @param noDeselect true if player cannot deselect, false otherwise. If this is set to true, selectedCallback + * is guaranteed to be called with a nonnull stack */ - public SelectItemUIFactory( - String header, - ItemStack headerItem, - Consumer<ItemStack> selectedCallback, - List<ItemStack> stacks, - int selected, - boolean noDeselect) { + public SelectItemUIFactory(String header, ItemStack headerItem, Consumer<ItemStack> selectedCallback, + List<ItemStack> stacks, int selected, boolean noDeselect) { this.header = header; this.headerItem = headerItem; this.selectedCallback = selectedCallback; @@ -96,7 +93,8 @@ public class SelectItemUIFactory { /** * @param anotherWindow If UI is shown on top of another window - * @param dialogOpened Flag to store whether this UI is opened and hence it should block duplicated creation of this UI + * @param dialogOpened Flag to store whether this UI is opened and hence it should block duplicated creation of + * this UI */ public SelectItemUIFactory setAnotherWindow(boolean anotherWindow, AtomicBoolean dialogOpened) { this.anotherWindow = anotherWindow; @@ -118,8 +116,8 @@ public class SelectItemUIFactory { } public ModularWindow createWindow(UIBuildContext buildContext) { - ModularWindow.Builder builder = - ModularWindow.builder(getGUIWidth(), 53 + 18 * ((stacks.size() - 1) / cols + 1)); + ModularWindow.Builder builder = ModularWindow + .builder(getGUIWidth(), 53 + 18 * ((stacks.size() - 1) / cols + 1)); builder.setBackground(ModularUITextures.VANILLA_BACKGROUND); builder.setGuiTint(guiTint); @@ -128,33 +126,29 @@ public class SelectItemUIFactory { } builder.widget(new TextWidget(header).setDefaultColor(COLOR_TITLE.get()).setPos(25, 9)); - builder.widget( - new SlotWidget(BaseSlot.phantom(currentDisplayItemHandler, 0)) { - @Override - public void draw(float partialTicks) { - if (currentGetter != null) { - ItemStack current = currentGetter.get(); - currentDisplayItemHandler.setStackInSlot(0, current); - selected = GT_Utility.findMatchingStackInList(stacks, current); - } - super.draw(partialTicks); - } - }.disableInteraction() - .setBackground(GT_UITextures.SLOT_DARK_GRAY) - .setPos( - 9 - + getFontRenderer() - .getStringWidth(StatCollector.translateToLocal( - "GT5U.gui.select.current")), - 24)) - .widget(new TextWidget(StatCollector.translateToLocal("GT5U.gui.select.current")) - .setDefaultColor(COLOR_TEXT_GRAY.get()) - .setPos(8, 25 + (18 - getFontRenderer().FONT_HEIGHT) / 2)); + builder.widget(new SlotWidget(BaseSlot.phantom(currentDisplayItemHandler, 0)) { + + @Override + public void draw(float partialTicks) { + if (currentGetter != null) { + ItemStack current = currentGetter.get(); + currentDisplayItemHandler.setStackInSlot(0, current); + selected = GT_Utility.findMatchingStackInList(stacks, current); + } + super.draw(partialTicks); + } + }.disableInteraction().setBackground(GT_UITextures.SLOT_DARK_GRAY).setPos( + 9 + getFontRenderer().getStringWidth(StatCollector.translateToLocal("GT5U.gui.select.current")), + 24)).widget( + new TextWidget(StatCollector.translateToLocal("GT5U.gui.select.current")) + .setDefaultColor(COLOR_TEXT_GRAY.get()) + .setPos(8, 25 + (18 - getFontRenderer().FONT_HEIGHT) / 2)); for (int i = 0; i < stacks.size(); i++) { final int index = i; builder.widget( - new SlotWidget(new BaseSlot(new ItemStackHandler(new ItemStack[] {stacks.get(index)}), 0, true)) { + new SlotWidget(new BaseSlot(new ItemStackHandler(new ItemStack[] { stacks.get(index) }), 0, true)) { + @Override public ClickResult onClick(int buttonId, boolean doubleClick) { if (buttonId == 0) { @@ -171,24 +165,22 @@ public class SelectItemUIFactory { @Override public IDrawable[] getBackground() { return new IDrawable[] { - index == selected ? GT_UITextures.SLOT_DARK_GRAY : ModularUITextures.ITEM_SLOT - }; + index == selected ? GT_UITextures.SLOT_DARK_GRAY : ModularUITextures.ITEM_SLOT }; } }.disableInteraction().setPos(7 + 18 * (index % cols), 43 + 18 * (index / cols))); } if (anotherWindow) { dialogOpened.set(true); - builder.widget( - new ButtonWidget() { - @Override - public void onDestroy() { - dialogOpened.set(false); - } - }.setOnClick((clickData, widget) -> widget.getWindow().tryClose()) - .setBackground(ModularUITextures.VANILLA_BACKGROUND, new Text("x")) - .setPos(getGUIWidth() - 15, 3) - .setSize(12, 12)); + builder.widget(new ButtonWidget() { + + @Override + public void onDestroy() { + dialogOpened.set(false); + } + }.setOnClick((clickData, widget) -> widget.getWindow().tryClose()) + .setBackground(ModularUITextures.VANILLA_BACKGROUND, new Text("x")).setPos(getGUIWidth() - 15, 3) + .setSize(12, 12)); } return builder.build(); diff --git a/src/main/java/gregtech/common/gui/modularui/widget/AESlotWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/AESlotWidget.java index f3620d3234..386bb7112c 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/AESlotWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/AESlotWidget.java @@ -1,15 +1,18 @@ package gregtech.common.gui.modularui.widget; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.inventory.Slot; + import appeng.client.render.AppEngRenderItem; import appeng.core.AELog; import appeng.util.Platform; + import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; import com.gtnewhorizons.modularui.common.internal.wrapper.ModularGui; import com.gtnewhorizons.modularui.common.widget.SlotWidget; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.inventory.Slot; public class AESlotWidget extends SlotWidget { 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 599ed28a5f..70978351c2 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverCycleButtonWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverCycleButtonWidget.java @@ -1,26 +1,28 @@ package gregtech.common.gui.modularui.widget; +import org.lwjgl.opengl.GL11; + import com.gtnewhorizons.modularui.api.drawable.IDrawable; import com.gtnewhorizons.modularui.api.drawable.UITexture; 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 org.lwjgl.opengl.GL11; /** - * Fires click action on mouse release, not on press. - * Draws different backgrounds depending on whether the mouse is being pressed or the widget is hovered. + * Fires click action on mouse release, not on press. Draws different backgrounds depending on whether the mouse is + * being pressed or the widget is hovered. */ public class CoverCycleButtonWidget extends CycleButtonWidget { - private static final UITexture BUTTON_NORMAL_NOT_PRESSED = - GT_UITextures.BUTTON_COVER_NORMAL.getSubArea(0, 0, 1, 0.5f); + private static final UITexture BUTTON_NORMAL_NOT_PRESSED = GT_UITextures.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.getSubArea(0, 0, 1, 0.5f); - private static final UITexture BUTTON_HOVERED_PRESSED = - GT_UITextures.BUTTON_COVER_NORMAL_HOVERED.getSubArea(0, 0.5f, 1, 1); + private static final UITexture BUTTON_HOVERED_NOT_PRESSED = GT_UITextures.BUTTON_COVER_NORMAL_HOVERED + .getSubArea(0, 0, 1, 0.5f); + private static final UITexture BUTTON_HOVERED_PRESSED = GT_UITextures.BUTTON_COVER_NORMAL_HOVERED + .getSubArea(0, 0.5f, 1, 1); private boolean clickPressed; @@ -74,15 +76,15 @@ public class CoverCycleButtonWidget extends CycleButtonWidget { public IDrawable[] getBackground() { if (isHovering()) { if (clickPressed) { - return new IDrawable[] {BUTTON_HOVERED_PRESSED}; + return new IDrawable[] { BUTTON_HOVERED_PRESSED }; } else { - return new IDrawable[] {BUTTON_HOVERED_NOT_PRESSED}; + return new IDrawable[] { BUTTON_HOVERED_NOT_PRESSED }; } } else { if (clickPressed) { - return new IDrawable[] {BUTTON_NORMAL_PRESSED}; + return new IDrawable[] { BUTTON_NORMAL_PRESSED }; } else { - return new IDrawable[] {BUTTON_NORMAL_NOT_PRESSED}; + return new IDrawable[] { BUTTON_NORMAL_NOT_PRESSED }; } } } 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 d28117054a..3fa25abdbf 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataControllerWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataControllerWidget.java @@ -1,35 +1,38 @@ package gregtech.common.gui.modularui.widget; -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.ISerializableObject; import java.io.IOException; import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; + import net.minecraft.network.PacketBuffer; +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.ISerializableObject; + public class CoverDataControllerWidget<T extends ISerializableObject> extends DataControllerWidget<T> { protected final GT_CoverBehaviorBase<T> coverBehavior; /** - * @param dataGetter () -> cover data this widget handles - * @param dataSetter data to set -> if setting cover data is successful + * @param dataGetter () -> cover data this widget handles + * @param dataSetter data to set -> if setting cover data is successful * @param coverBehavior cover this widget handles data update */ - public CoverDataControllerWidget( - Supplier<T> dataGetter, Function<T, Boolean> dataSetter, GT_CoverBehaviorBase<T> coverBehavior) { + public CoverDataControllerWidget(Supplier<T> dataGetter, Function<T, Boolean> dataSetter, + GT_CoverBehaviorBase<T> coverBehavior) { super(dataGetter, dataSetter); this.coverBehavior = coverBehavior; } @Override - public <U, W extends Widget & IDataFollowerWidget<T, U>> CoverDataControllerWidget<T> addFollower( - W widget, Function<T, U> dataToStateGetter, BiFunction<T, U, T> dataUpdater, Consumer<W> applyForWidget) { + public <U, W extends Widget & IDataFollowerWidget<T, U>> CoverDataControllerWidget<T> addFollower(W widget, + Function<T, U> dataToStateGetter, BiFunction<T, U, T> dataUpdater, Consumer<W> applyForWidget) { super.addFollower(widget, dataToStateGetter, dataUpdater, applyForWidget); return this; } @@ -58,31 +61,27 @@ public class CoverDataControllerWidget<T extends ISerializableObject> extends Da private final BiFunction<Integer, T, T> dataUpdater; /** - * @param coverDataGetter () -> cover data this widget handles - * @param coverDataSetter data to set -> if setting cover data is successful - * @param coverBehavior cover this widget handles data update + * @param coverDataGetter () -> cover data this widget handles + * @param coverDataSetter data to set -> if setting cover data is successful + * @param coverBehavior cover this widget handles data update * @param dataToStateGetter (index of button, given cover data) -> button state - * @param dataUpdater (index of button, current cover data) -> new cover data + * @param dataUpdater (index of button, current cover data) -> new cover data */ - public CoverDataIndexedControllerWidget_ToggleButtons( - Supplier<T> coverDataGetter, - Function<T, Boolean> coverDataSetter, - GT_CoverBehaviorBase<T> coverBehavior, - BiFunction<Integer, T, Boolean> dataToStateGetter, - BiFunction<Integer, T, T> dataUpdater) { + public CoverDataIndexedControllerWidget_ToggleButtons(Supplier<T> coverDataGetter, + Function<T, Boolean> coverDataSetter, GT_CoverBehaviorBase<T> coverBehavior, + BiFunction<Integer, T, Boolean> dataToStateGetter, BiFunction<Integer, T, T> dataUpdater) { super(coverDataGetter, coverDataSetter, coverBehavior); this.dataToStateGetter = dataToStateGetter; this.dataUpdater = dataUpdater; } /** - * @param index index of widget to add - * @param widget widget to add + * @param index index of widget to add + * @param widget widget to add * @param applyForWidget methods to call for widget to add */ - public <W extends CoverDataFollower_ToggleButtonWidget<T>> - CoverDataIndexedControllerWidget_ToggleButtons<T> addToggleButton( - int index, W widget, Consumer<CoverDataFollower_ToggleButtonWidget<T>> applyForWidget) { + public <W extends CoverDataFollower_ToggleButtonWidget<T>> CoverDataIndexedControllerWidget_ToggleButtons<T> addToggleButton( + int index, W widget, Consumer<CoverDataFollower_ToggleButtonWidget<T>> applyForWidget) { addFollower( widget, data -> dataToStateGetter.apply(index, data), @@ -102,31 +101,27 @@ public class CoverDataControllerWidget<T extends ISerializableObject> extends Da private final BiFunction<Integer, T, T> dataUpdater; /** - * @param coverDataGetter () -> cover data this widget handles - * @param coverDataSetter data to set -> if setting cover data is successful - * @param coverBehavior cover this widget handles data update + * @param coverDataGetter () -> cover data this widget handles + * @param coverDataSetter data to set -> if setting cover data is successful + * @param coverBehavior cover this widget handles data update * @param dataToStateGetter (index of button, given cover data) -> button state - * @param dataUpdater (index of button, current cover data) -> new cover data + * @param dataUpdater (index of button, current cover data) -> new cover data */ - public CoverDataIndexedControllerWidget_CycleButtons( - Supplier<T> coverDataGetter, - Function<T, Boolean> coverDataSetter, - GT_CoverBehaviorBase<T> coverBehavior, - BiFunction<Integer, T, Integer> dataToStateGetter, - BiFunction<Integer, T, T> dataUpdater) { + public CoverDataIndexedControllerWidget_CycleButtons(Supplier<T> coverDataGetter, + Function<T, Boolean> coverDataSetter, GT_CoverBehaviorBase<T> coverBehavior, + BiFunction<Integer, T, Integer> dataToStateGetter, BiFunction<Integer, T, T> dataUpdater) { super(coverDataGetter, coverDataSetter, coverBehavior); this.dataToStateGetter = dataToStateGetter; this.dataUpdater = dataUpdater; } /** - * @param index index of widget to add - * @param widget widget to add + * @param index index of widget to add + * @param widget widget to add * @param applyForWidget methods to call for the widget to add */ - public <W extends CoverDataFollower_CycleButtonWidget<T>> - CoverDataIndexedControllerWidget_CycleButtons<T> addCycleButton( - int index, W widget, Consumer<CoverDataFollower_CycleButtonWidget<T>> applyForWidget) { + public <W extends CoverDataFollower_CycleButtonWidget<T>> CoverDataIndexedControllerWidget_CycleButtons<T> addCycleButton( + int index, W widget, Consumer<CoverDataFollower_CycleButtonWidget<T>> applyForWidget) { addFollower( widget, data -> dataToStateGetter.apply(index, data), 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 index d07165cc6e..6e69b1ff79 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_CycleButtonWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_CycleButtonWidget.java @@ -1,10 +1,11 @@ package gregtech.common.gui.modularui.widget; -import gregtech.api.gui.modularui.IDataFollowerWidget; -import gregtech.api.util.ISerializableObject; 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. */ 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 index c09c5b5279..c7795efbdc 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_SlotWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_SlotWidget.java @@ -1,15 +1,18 @@ package gregtech.common.gui.modularui.widget; +import java.io.IOException; +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.wrapper.BaseSlot; import com.gtnewhorizons.modularui.common.widget.SlotWidget; + import gregtech.api.gui.modularui.IDataFollowerWidget; import gregtech.api.util.ISerializableObject; -import java.io.IOException; -import java.util.function.Consumer; -import java.util.function.Function; -import net.minecraft.item.ItemStack; public class CoverDataFollower_SlotWidget<T extends ISerializableObject> extends SlotWidget implements IDataFollowerWidget<T, ItemStack> { 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 index 9130f8e3d0..7d11656231 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_TextFieldWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_TextFieldWidget.java @@ -1,15 +1,18 @@ package gregtech.common.gui.modularui.widget; +import java.util.function.Consumer; +import java.util.function.Function; + +import net.minecraft.client.gui.GuiScreen; + import com.gtnewhorizons.modularui.api.math.Alignment; import com.gtnewhorizons.modularui.api.math.Color; import com.gtnewhorizons.modularui.api.math.MathExpression; 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; -import java.util.function.Consumer; -import java.util.function.Function; -import net.minecraft.client.gui.GuiScreen; public class CoverDataFollower_TextFieldWidget<T extends ISerializableObject> extends TextFieldWidget implements IDataFollowerWidget<T, String> { 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 index 8e091d7bc6..cb5fbf7994 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_ToggleButtonWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_ToggleButtonWidget.java @@ -1,11 +1,13 @@ 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; -import java.util.function.Consumer; -import java.util.function.Function; public class CoverDataFollower_ToggleButtonWidget<T extends ISerializableObject> extends CoverCycleButtonWidget implements IDataFollowerWidget<T, Boolean> { @@ -77,7 +79,7 @@ public class CoverDataFollower_ToggleButtonWidget<T extends ISerializableObject> @Override public IDrawable[] getBackground() { - if (!canClick()) return new IDrawable[] {GT_UITextures.BUTTON_COVER_NORMAL_DISABLED}; + 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/DataControllerWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/DataControllerWidget.java index f29b8eeaf9..4e9ac4a245 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/DataControllerWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/DataControllerWidget.java @@ -1,26 +1,31 @@ package gregtech.common.gui.modularui.widget; +import java.io.IOException; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.function.Supplier; + +import net.minecraft.network.PacketBuffer; + import com.gtnewhorizons.modularui.api.widget.ISyncedWidget; import com.gtnewhorizons.modularui.api.widget.Widget; import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils; import com.gtnewhorizons.modularui.common.widget.MultiChildWidget; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.gui.modularui.IDataFollowerWidget; import gregtech.api.util.ISerializableObject; -import java.io.IOException; -import java.util.function.BiFunction; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Supplier; -import net.minecraft.network.PacketBuffer; /** - * Controls state of child widgets with specific data, and allows centralized control of multiple widgets. - * e.g. clicking button B will set machine mode to B, so button A, whose state is bound to the mode, - * will be automatically deactivated by this widget. - * <br> This widget wraps data and handles validation, e.g. tell client to close GUI when tile is broken or cover is removed. - * <br> Data can be anything, e.g. {@link ISerializableObject} or machine recipe mode. + * Controls state of child widgets with specific data, and allows centralized control of multiple widgets. e.g. clicking + * button B will set machine mode to B, so button A, whose state is bound to the mode, will be automatically deactivated + * by this widget. <br> + * This widget wraps data and handles validation, e.g. tell client to close GUI when tile is broken or cover is removed. + * <br> + * Data can be anything, e.g. {@link ISerializableObject} or machine recipe mode. + * * @param <T> Data type stored in this widget * @see IDataFollowerWidget */ @@ -139,15 +144,15 @@ public abstract class DataControllerWidget<T> extends MultiChildWidget implement } /** - * @param widget widget to add that implements {@link IDataFollowerWidget} + * @param widget widget to add that implements {@link IDataFollowerWidget} * @param dataToStateGetter given data -> state of the widget to add - * @param dataUpdater (current data, state of the widget to add) -> new data to set - * @param applyForWidget methods to call for the widget to add - * @param <U> state type stored in the widget to add - * @param <W> widget type to add + * @param dataUpdater (current data, state of the widget to add) -> new data to set + * @param applyForWidget methods to call for the widget to add + * @param <U> state type stored in the widget to add + * @param <W> widget type to add */ - public <U, W extends Widget & IDataFollowerWidget<T, U>> DataControllerWidget<T> addFollower( - W widget, Function<T, U> dataToStateGetter, BiFunction<T, U, T> dataUpdater, Consumer<W> applyForWidget) { + public <U, W extends Widget & IDataFollowerWidget<T, U>> DataControllerWidget<T> addFollower(W widget, + Function<T, U> dataToStateGetter, BiFunction<T, U, T> dataUpdater, Consumer<W> applyForWidget) { widget.setDataToStateGetter(dataToStateGetter); widget.setStateSetter(state -> { T newData = dataUpdater.apply(getLastData(), state); diff --git a/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java b/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java index 688800e4ef..182f007b33 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java @@ -1,19 +1,12 @@ package gregtech.common.gui.modularui.widget; -import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; -import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; -import com.gtnewhorizons.modularui.common.widget.SlotWidget; -import gregtech.GT_Mod; -import gregtech.api.interfaces.IFluidAccess; -import gregtech.api.interfaces.IHasFluidDisplayItem; -import gregtech.api.interfaces.metatileentity.IFluidLockable; -import gregtech.api.util.GT_Utility; import java.io.IOException; import java.util.Collections; import java.util.List; import java.util.function.BiFunction; import java.util.function.Predicate; import java.util.function.Supplier; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; @@ -22,6 +15,16 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; +import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; + +import gregtech.GT_Mod; +import gregtech.api.interfaces.IFluidAccess; +import gregtech.api.interfaces.IHasFluidDisplayItem; +import gregtech.api.interfaces.metatileentity.IFluidLockable; +import gregtech.api.util.GT_Utility; + public class FluidDisplaySlotWidget extends SlotWidget { private IHasFluidDisplayItem iHasFluidDisplay; @@ -57,11 +60,10 @@ public class FluidDisplaySlotWidget extends SlotWidget { if (interactionDisabled) return ClickResult.REJECT; /* - * While a logical client don't really need to process fluid cells upon click (it could have just wait - * for server side to send the result), doing so would result in every fluid interaction having a - * noticeable delay between clicking and changes happening even on single player. - * I'd imagine this lag to become only more severe when playing MP over ethernet, which would have much more latency - * than a memory connection + * While a logical client don't really need to process fluid cells upon click (it could have just wait for + * server side to send the result), doing so would result in every fluid interaction having a noticeable delay + * between clicking and changes happening even on single player. I'd imagine this lag to become only more severe + * when playing MP over ethernet, which would have much more latency than a memory connection */ ClickData clickData = ClickData.create(buttonId, doubleClick); ItemStack verifyToken = executeRealClick(clickData); @@ -126,8 +128,7 @@ public class FluidDisplaySlotWidget extends SlotWidget { ItemStack serverVerifyToken = executeRealClick(clickData); // similar to what NetHandlerPlayServer#processClickWindow does if (!ItemStack.areItemStacksEqual(clientVerifyToken, serverVerifyToken)) { - ((EntityPlayerMP) getContext().getPlayer()) - .sendContainerToPlayer(getContext().getContainer()); + ((EntityPlayerMP) getContext().getPlayer()).sendContainerToPlayer(getContext().getContainer()); } } @@ -140,8 +141,8 @@ public class FluidDisplaySlotWidget extends SlotWidget { ItemStack ret = null; if (actionRealClick == Action.TRANSFER) { if (fluidAccessConstructor == null) { - GT_Mod.GT_FML_LOGGER.warn( - "FluidDisplaySlotWidget is asked to transfer fluid, but fluidAccessConstructor is null!"); + GT_Mod.GT_FML_LOGGER + .warn("FluidDisplaySlotWidget is asked to transfer fluid, but fluidAccessConstructor is null!"); return null; } ret = transferFluid( @@ -158,12 +159,8 @@ public class FluidDisplaySlotWidget extends SlotWidget { return ret; } - protected ItemStack transferFluid( - IFluidAccess aFluidAccess, - EntityPlayer aPlayer, - boolean aProcessFullStack, - boolean aCanDrain, - boolean aCanFill) { + protected ItemStack transferFluid(IFluidAccess aFluidAccess, EntityPlayer aPlayer, boolean aProcessFullStack, + boolean aCanDrain, boolean aCanFill) { ItemStack tStackHeld = aPlayer.inventory.getItemStack(); ItemStack tStackSizedOne = GT_Utility.copyAmount(1, tStackHeld); if (tStackSizedOne == null || tStackHeld.stackSize == 0) return null; @@ -224,12 +221,10 @@ public class FluidDisplaySlotWidget extends SlotWidget { if (aProcessFullStack) { int tFilledAmount = tOriginalFluidAmount - tTankStack.amount; /* - work out how many more items we can fill - one cell is already used, so account for that - the round down behavior will left over a fraction of a cell worth of fluid - the user then get to decide what to do with it - it will not be too fancy if it spills out partially filled cells - */ + * work out how many more items we can fill one cell is already used, so account for that the round down + * behavior will left over a fraction of a cell worth of fluid the user then get to decide what to do + * with it it will not be too fancy if it spills out partially filled cells + */ int tAdditionalParallel = Math.min(tStackHeld.stackSize - 1, tTankStack.amount / tFilledAmount); tTankStack.amount -= tFilledAmount * tAdditionalParallel; tFilledContainer.stackSize += tAdditionalParallel; @@ -240,8 +235,8 @@ public class FluidDisplaySlotWidget extends SlotWidget { return tFilledContainer; } - protected static ItemStack fillFluid( - IFluidAccess aFluidAccess, EntityPlayer aPlayer, FluidStack aFluidHeld, boolean aProcessFullStack) { + protected static ItemStack fillFluid(IFluidAccess aFluidAccess, EntityPlayer aPlayer, FluidStack aFluidHeld, + boolean aProcessFullStack) { // we are not using aMachine.fill() here any more, so we need to check for fluid type here ourselves if (aFluidAccess.get() != null && !aFluidAccess.get().isFluidEqual(aFluidHeld)) return null; ItemStack tStackHeld = aPlayer.inventory.getItemStack(); @@ -402,8 +397,8 @@ public class FluidDisplaySlotWidget extends SlotWidget { } /** - * Add a predicate on whether a client stack will be accepted. Note this will only be called when this slot is already - * empty. It is assumed whatever is already in the slot will pass the filter. + * Add a predicate on whether a client stack will be accepted. Note this will only be called when this slot is + * already empty. It is assumed whatever is already in the slot will pass the filter. */ public FluidDisplaySlotWidget setEmptyCanFillFilter(Predicate<Fluid> canFillFilter) { this.canFillFilter = canFillFilter; @@ -411,8 +406,7 @@ public class FluidDisplaySlotWidget extends SlotWidget { } /** - * Sets action called on drag-and-drop from NEI. - * You can't use {@link Action#TRANSFER} here. + * Sets action called on drag-and-drop from NEI. You can't use {@link Action#TRANSFER} here. */ public FluidDisplaySlotWidget setActionDragAndDrop(Action actionDragAndDrop) { this.actionDragAndDrop = actionDragAndDrop; @@ -421,6 +415,7 @@ public class FluidDisplaySlotWidget extends SlotWidget { /** * Sets function called before {@link #executeRealClick}. + * * @param beforeRealClick (click data, this widget) -> if allow click */ public FluidDisplaySlotWidget setBeforeRealClick( @@ -431,6 +426,7 @@ public class FluidDisplaySlotWidget extends SlotWidget { /** * Sets function called before {@link #executeDragAndDrop}. + * * @param beforeDragAndDrop (click data, this widget) -> if allow click */ public FluidDisplaySlotWidget setBeforeDragAndDrop( @@ -441,7 +437,8 @@ public class FluidDisplaySlotWidget extends SlotWidget { /** * Sets function called before both of {@link #executeRealClick} and {@link #executeDragAndDrop}. - * @param beforeClick (click data, this widget) -> if allow click + * + * @param beforeClick (click data, this widget) -> if allow click */ public FluidDisplaySlotWidget setBeforeClick(BiFunction<ClickData, FluidDisplaySlotWidget, Boolean> beforeClick) { setBeforeRealClick(beforeClick); @@ -450,8 +447,8 @@ public class FluidDisplaySlotWidget extends SlotWidget { } /** - * By default, this widget runs {@link IHasFluidDisplayItem#updateFluidDisplayItem} after click. - * You can specify custom update action with this method. + * By default, this widget runs {@link IHasFluidDisplayItem#updateFluidDisplayItem} after click. You can specify + * custom update action with this method. */ public FluidDisplaySlotWidget setUpdateFluidDisplayItem(Runnable updateFluidDisplayItem) { this.updateFluidDisplayItem = updateFluidDisplayItem; @@ -464,20 +461,17 @@ public class FluidDisplaySlotWidget extends SlotWidget { public enum Action { /** - * Fill/drain fluid into/from the tank. - * Uses fluid amount, so drag-and-drop cannot use this mode. + * Fill/drain fluid into/from the tank. Uses fluid amount, so drag-and-drop cannot use this mode. */ TRANSFER, /** - * Lock fluid for {@link IFluidLockable}. - * Does not use fluid amount. + * Lock fluid for {@link IFluidLockable}. Does not use fluid amount. */ LOCK, /** - * Set filter for the tank. (not implemented yet) - * Does not use fluid amount. + * Set filter for the tank. (not implemented yet) Does not use fluid amount. */ FILTER, 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 7385208874..265450d384 100644 --- a/src/main/java/gregtech/common/gui/modularui/widget/ItemWatcherSlotWidget.java +++ b/src/main/java/gregtech/common/gui/modularui/widget/ItemWatcherSlotWidget.java @@ -1,16 +1,18 @@ package gregtech.common.gui.modularui.widget; +import java.util.function.Supplier; + +import net.minecraft.item.ItemStack; + import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; 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 java.util.function.Supplier; -import net.minecraft.item.ItemStack; /** - * Watches specific ItemStack and pulls changes from it. - * Player cannot interact with slot, other than viewing NEI recipe or adding bookmark. + * Watches specific ItemStack and pulls changes from it. Player cannot interact with slot, other than viewing NEI recipe + * or adding bookmark. */ public class ItemWatcherSlotWidget extends SlotWidget { |