diff --git a/src/main/java/com/gregtechceu/gtceu/common/item/ItemMagnetBehavior.java b/src/main/java/com/gregtechceu/gtceu/common/item/ItemMagnetBehavior.java index f984c64324..3726717f5e 100644 --- a/src/main/java/com/gregtechceu/gtceu/common/item/ItemMagnetBehavior.java +++ b/src/main/java/com/gregtechceu/gtceu/common/item/ItemMagnetBehavior.java @@ -44,15 +44,13 @@ import net.minecraftforge.event.entity.player.PlayerXpEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; -import com.google.common.collect.HashBasedTable; -import com.google.common.collect.Table; import com.tterrag.registrate.util.entry.ItemEntry; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import oshi.util.tuples.Triplet; import top.theillusivec4.curios.api.CuriosApi; -import java.util.HashMap; -import java.util.List; +import java.util.*; public class ItemMagnetBehavior implements IInteractionItem, IItemLifeCycle, IAddInformation, IItemUIFactory { @@ -73,7 +71,7 @@ public ModularUI createUI(HeldItemUIFactory.HeldItemHolder holder, Player entity var held = holder.getHeld(); var tag = held.getOrCreateTag(); var selected = Filter.get(tag.getInt(FILTER_ORDINAL_TAG)); - Table widgets = HashBasedTable.create(Filter.values().length, 1); + var widgets = new HashSet>(); var stacks = new HashMap(); var ui = new ModularUI(176, 157, holder, entityPlayer) .background(GuiTextures.BACKGROUND) @@ -91,7 +89,7 @@ public ModularUI createUI(HeldItemUIFactory.HeldItemHolder holder, Player entity var visible = f == selected; description.setVisible(visible); config.setVisible(visible); - widgets.put(f, description, config); + widgets.add(new Triplet<>(f, description, config)); ui.widget(description); ui.widget(config); } @@ -102,12 +100,12 @@ public ModularUI createUI(HeldItemUIFactory.HeldItemHolder holder, Player entity return ui; } - private void updateSelection(CompoundTag tag, Filter filter, Table widgets) { + private void updateSelection(CompoundTag tag, Filter filter, Collection> widgets) { tag.putInt(FILTER_ORDINAL_TAG, filter.ordinal()); - widgets.cellSet().forEach(cell -> { - var visible = cell.getRowKey() == filter; - cell.getColumnKey().setVisible(visible); - cell.getValue().setVisible(visible); + widgets.forEach(tri -> { + var visible = tri.getA() == filter; + tri.getB().setVisible(visible); + tri.getC().setVisible(visible); }); }