Skip to content

Commit 3235d73

Browse files
Refactor item validation in ReactorInputInventory to use CNTags for better maintainability
1 parent e84862c commit 3235d73

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

src/main/java/net/nuclearteam/createnuclear/content/multiblock/controller/ReactorControllerBlockEntity.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@
2121
import net.minecraft.world.level.block.entity.BlockEntity;
2222
import net.minecraft.world.level.block.entity.BlockEntityType;
2323
import net.minecraft.world.level.block.state.BlockState;
24-
import net.nuclearteam.createnuclear.CNBlocks;
25-
import net.nuclearteam.createnuclear.CNItems;
26-
import net.nuclearteam.createnuclear.CNPackets;
27-
import net.nuclearteam.createnuclear.CreateNuclear;
24+
import net.nuclearteam.createnuclear.*;
2825
import net.nuclearteam.createnuclear.content.multiblock.IHeat;
2926
import net.nuclearteam.createnuclear.content.multiblock.input.ReactorInputEntity;
3027
import net.nuclearteam.createnuclear.content.multiblock.output.ReactorOutput;
@@ -319,10 +316,10 @@ private double calculateHeat(CompoundTag tag) {
319316
String currentRod = "";
320317
ListTag list = inventory.getStackInSlot(0).getOrCreateTag().getCompound("pattern").getList("Items", Tag.TAG_COMPOUND);
321318
for (int i = 0; i < list.size(); i++) {
322-
if (list.getCompound(i).getString("id").equals("createnuclear:uranium_rod")) {
319+
if (ItemStack.of(list.getCompound(i)).is(CNTags.CNItemTags.FUEL.tag)) {
323320
heat += baseUraniumHeat;
324321
currentRod = "u";
325-
} else if (list.getCompound(i).getString("id").equals("createnuclear:graphite_rod")) {
322+
} else if (ItemStack.of(list.getCompound(i)).is(CNTags.CNItemTags.COOLER.tag)) {
326323
heat += baseGraphiteHeat;
327324
currentRod = "g";
328325
}
@@ -350,10 +347,10 @@ private double calculateHeat(CompoundTag tag) {
350347
if (list.getCompound(l).getInt("Slot") == neighborSlot) {
351348
// If the currentRod equals "u", apply the corresponding heat
352349
if (currentRod.equals("u")) {
353-
String id = list.getCompound(l).getString("id");
354-
if (id.equals("createnuclear:uranium_rod")) {
350+
ItemStack stack = ItemStack.of(list.getCompound(i));
351+
if (stack.is(CNTags.CNItemTags.FUEL.tag)) {
355352
heat += proximityUraniumHeat;
356-
} else if (id.equals("createnuclear:graphite_rod")) {
353+
} else if (stack.is(CNTags.CNItemTags.COOLER.tag)) {
357354
heat += proximityGraphiteHeat;
358355
}
359356
}

src/main/java/net/nuclearteam/createnuclear/content/multiblock/input/ReactorInputInventory.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.minecraft.world.item.ItemStack;
55
import net.minecraftforge.items.ItemStackHandler;
66
import net.nuclearteam.createnuclear.CNItems;
7+
import net.nuclearteam.createnuclear.CNTags;
78
import org.jetbrains.annotations.NotNull;
89

910
public class ReactorInputInventory extends ItemStackHandler {
@@ -23,8 +24,8 @@ protected void onContentsChanged(int slot) {
2324
@Override
2425
public boolean isItemValid(int slot, @NotNull ItemStack stack) {
2526
return switch (slot) {
26-
case 0 -> CNItems.URANIUM_ROD.get() == stack.getItem();
27-
case 1 -> CNItems.GRAPHITE_ROD.get() == stack.getItem();
27+
case 0 -> CNTags.CNItemTags.FUEL.matches(stack);
28+
case 1 -> CNTags.CNItemTags.COOLER.matches(stack);
2829
default -> !super.isItemValid(slot, stack);
2930
};
3031
}

0 commit comments

Comments
 (0)