From 3235d737d46c33fc4d5e42d723de1c2b01c4f306 Mon Sep 17 00:00:00 2001 From: Giovanni Date: Sun, 6 Jul 2025 17:11:16 +0200 Subject: [PATCH] Refactor item validation in ReactorInputInventory to use CNTags for better maintainability --- .../controller/ReactorControllerBlockEntity.java | 15 ++++++--------- .../multiblock/input/ReactorInputInventory.java | 5 +++-- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java index 52233727..e595c8f2 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java @@ -21,10 +21,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.nuclearteam.createnuclear.CNBlocks; -import net.nuclearteam.createnuclear.CNItems; -import net.nuclearteam.createnuclear.CNPackets; -import net.nuclearteam.createnuclear.CreateNuclear; +import net.nuclearteam.createnuclear.*; import net.nuclearteam.createnuclear.content.multiblock.IHeat; import net.nuclearteam.createnuclear.content.multiblock.input.ReactorInputEntity; import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutput; @@ -319,10 +316,10 @@ private double calculateHeat(CompoundTag tag) { String currentRod = ""; ListTag list = inventory.getStackInSlot(0).getOrCreateTag().getCompound("pattern").getList("Items", Tag.TAG_COMPOUND); for (int i = 0; i < list.size(); i++) { - if (list.getCompound(i).getString("id").equals("createnuclear:uranium_rod")) { + if (ItemStack.of(list.getCompound(i)).is(CNTags.CNItemTags.FUEL.tag)) { heat += baseUraniumHeat; currentRod = "u"; - } else if (list.getCompound(i).getString("id").equals("createnuclear:graphite_rod")) { + } else if (ItemStack.of(list.getCompound(i)).is(CNTags.CNItemTags.COOLER.tag)) { heat += baseGraphiteHeat; currentRod = "g"; } @@ -350,10 +347,10 @@ private double calculateHeat(CompoundTag tag) { if (list.getCompound(l).getInt("Slot") == neighborSlot) { // If the currentRod equals "u", apply the corresponding heat if (currentRod.equals("u")) { - String id = list.getCompound(l).getString("id"); - if (id.equals("createnuclear:uranium_rod")) { + ItemStack stack = ItemStack.of(list.getCompound(i)); + if (stack.is(CNTags.CNItemTags.FUEL.tag)) { heat += proximityUraniumHeat; - } else if (id.equals("createnuclear:graphite_rod")) { + } else if (stack.is(CNTags.CNItemTags.COOLER.tag)) { heat += proximityGraphiteHeat; } } diff --git a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputInventory.java b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputInventory.java index 18fa8d74..338e65ed 100644 --- a/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputInventory.java +++ b/src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputInventory.java @@ -4,6 +4,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraftforge.items.ItemStackHandler; import net.nuclearteam.createnuclear.CNItems; +import net.nuclearteam.createnuclear.CNTags; import org.jetbrains.annotations.NotNull; public class ReactorInputInventory extends ItemStackHandler { @@ -23,8 +24,8 @@ protected void onContentsChanged(int slot) { @Override public boolean isItemValid(int slot, @NotNull ItemStack stack) { return switch (slot) { - case 0 -> CNItems.URANIUM_ROD.get() == stack.getItem(); - case 1 -> CNItems.GRAPHITE_ROD.get() == stack.getItem(); + case 0 -> CNTags.CNItemTags.FUEL.matches(stack); + case 1 -> CNTags.CNItemTags.COOLER.matches(stack); default -> !super.isItemValid(slot, stack); }; }