diff --git a/src/main/java/com/gtnewhorizons/modularui/common/widget/SlotGroup.java b/src/main/java/com/gtnewhorizons/modularui/common/widget/SlotGroup.java index 8d2af75..aed1d7b 100644 --- a/src/main/java/com/gtnewhorizons/modularui/common/widget/SlotGroup.java +++ b/src/main/java/com/gtnewhorizons/modularui/common/widget/SlotGroup.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; @@ -233,7 +234,7 @@ public static class FluidGroupBuilder { private Boolean controlsAmount; private IDrawable[] background; private Function tankHandlerCreator; - private Function widgetCreator; + private BiFunction widgetCreator; private FluidGroupBuilder(List fluidTanks, int slotsPerRow) { this.fluidTanks = fluidTanks; @@ -257,7 +258,7 @@ public SlotGroup build() { tankHandlerCreator = tank -> new FluidTanksHandler(new FluidTankLongDelegate(tank)); } if (widgetCreator == null) { - widgetCreator = h -> new FluidSlotWidget(h, 0); + widgetCreator = (i, h) -> new FluidSlotWidget(h); } SlotGroup slotGroup = new SlotGroup(); @@ -266,7 +267,7 @@ public SlotGroup build() { } int x = 0, y = 0; for (int i = startFromSlot; i < endAtSlot + 1; i++) { - FluidSlotWidget toAdd = widgetCreator.apply(tankHandlerCreator.apply(fluidTanks.get(i))); + FluidSlotWidget toAdd = widgetCreator.apply(i, tankHandlerCreator.apply(fluidTanks.get(i))); toAdd.setPhantom(phantom); toAdd.setControlsAmount(controlsAmount, false); toAdd.setBackground(background).setPos(new Pos2d(x * 18, y * 18)); @@ -309,7 +310,7 @@ public FluidGroupBuilder tankHandlerCreator(Function widgetCreator) { + public FluidGroupBuilder widgetCreator(BiFunction widgetCreator) { this.widgetCreator = widgetCreator; return this; } diff --git a/src/main/java/com/gtnewhorizons/modularui/test/TestTile.java b/src/main/java/com/gtnewhorizons/modularui/test/TestTile.java index 08d9afb..acd6b28 100644 --- a/src/main/java/com/gtnewhorizons/modularui/test/TestTile.java +++ b/src/main/java/com/gtnewhorizons/modularui/test/TestTile.java @@ -276,9 +276,10 @@ private Widget createPage3() { .setSynced(false, false).setPos(99, 85)) .addChild( SlotGroup.ofFluidTanks(Collections.singletonList(fluidTank2), 1).controlsAmount(true) - .phantom(true).widgetCreator(h -> { + .phantom(true).widgetCreator((slotIndex, h) -> { FluidSlotWidget widget = new FluidSlotWidget(h); - widget.dynamicTooltip(() -> Collections.singletonList("Dynamic tooltip")); + widget.dynamicTooltip( + () -> Collections.singletonList("Dynamic tooltip " + slotIndex)); return widget; }).build().setPos(38, 47)) .addChild(new FluidSlotWidget(fluidTank1).setPos(20, 47))