Skip to content

Commit 81ec378

Browse files
authored
Fix #1070: Use a tag to configure which fluids are blacklisted in the replicator (#1078)
1 parent ef68689 commit 81ec378

File tree

5 files changed

+21
-8
lines changed

5 files changed

+21
-8
lines changed

src/generated/resources/.cache/ab1440d8191c4e24b911c748033c3eee3ed26373

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// 1.21.1 2024-12-19T01:30:23.9116352 Tags for minecraft:fluid mod id modern_industrialization
1+
// 1.21.1 2025-04-18T14:28:59.8250922 Tags for minecraft:fluid mod id modern_industrialization
22
2e54f5684b3cedb03e10e44437abee3e54590e96 data/c/tags/fluid/acetylene.json
33
c28c9db0ff6eb51c1abebea40752b47e4eef41ec data/c/tags/fluid/acrylic_acid.json
44
6e39bbfa65dad27d80c546299b5de3f96215a19d data/c/tags/fluid/acrylic_glue.json
@@ -72,3 +72,4 @@ dd47371f0ce7c13df9608ed1c6ba60f2b40d1db9 data/c/tags/fluid/toluene.json
7272
f18c60fea511cdf78bf733eb86baab43ad1ffbe4 data/c/tags/fluid/tritium.json
7373
e2f235ae147f53e3f5b0f0f43d4d9e24e9eb2e6c data/c/tags/fluid/uu_matter.json
7474
3c442976a65abe3c4dc72a84e30f785a3b76bf7e data/c/tags/fluid/vinyl_chloride.json
75+
e2f235ae147f53e3f5b0f0f43d4d9e24e9eb2e6c data/modern_industrialization/tags/fluid/replicator_blacklist.json
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"values": [
3+
"modern_industrialization:uu_matter"
4+
]
5+
}

src/main/java/aztech/modern_industrialization/MIFluids.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public static void init(IEventBus modBus) {
120120
public static final FluidDefinition SYNTHETIC_RUBBER = fluid("Synthetic Rubber", "synthetic_rubber", 0xff1a1a1a, FULL_OPACITY);
121121
public static final FluidDefinition TOLUENE = fluid("Toluene", "toluene", 0xff9ce6ed, NEAR_OPACITY);
122122
public static final FluidDefinition TRITIUM = fluid("Tritium", "tritium", 0xffcc1b50, true);
123-
public static final FluidDefinition UU_MATER = fluid("UU Matter", "uu_matter", 0xffff00bf, FULL_OPACITY, false);
123+
public static final FluidDefinition UU_MATTER = fluid("UU Matter", "uu_matter", 0xffff00bf, FULL_OPACITY, false);
124124
public static final FluidDefinition VINYL_CHLORIDE = fluid("Vinyl Chloride", "vinyl_chloride", 0xffeda7d9, MEDIUM_OPACITY);
125125

126126
static {

src/main/java/aztech/modern_industrialization/datagen/tag/MIFluidTagProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import aztech.modern_industrialization.MI;
2727
import aztech.modern_industrialization.MIFluids;
28+
import aztech.modern_industrialization.machines.blockentities.ReplicatorMachineBlockEntity;
2829
import java.util.concurrent.CompletableFuture;
2930
import net.minecraft.core.HolderLookup;
3031
import net.minecraft.data.PackOutput;
@@ -52,5 +53,8 @@ protected void addTags(HolderLookup.Provider pProvider) {
5253
tag(FluidTags.create(ResourceLocation.fromNamespaceAndPath("c", def.path())))
5354
.add(def.asFluid());
5455
}
56+
57+
tag(ReplicatorMachineBlockEntity.BLACKLISTED_FLUIDS)
58+
.add(MIFluids.UU_MATTER.asFluid());
5559
}
5660
}

src/main/java/aztech/modern_industrialization/machines/blockentities/ReplicatorMachineBlockEntity.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,13 @@
4444
import java.util.Collections;
4545
import java.util.List;
4646
import net.minecraft.core.HolderLookup;
47-
import net.minecraft.core.registries.BuiltInRegistries;
4847
import net.minecraft.nbt.CompoundTag;
48+
import net.minecraft.tags.FluidTags;
49+
import net.minecraft.tags.ItemTags;
4950
import net.minecraft.tags.TagKey;
5051
import net.minecraft.world.item.Item;
5152
import net.minecraft.world.item.ItemStack;
53+
import net.minecraft.world.level.material.Fluid;
5254
import net.neoforged.neoforge.capabilities.Capabilities;
5355
import net.neoforged.neoforge.fluids.FluidType;
5456

@@ -60,7 +62,8 @@ public class ReplicatorMachineBlockEntity extends MachineBlockEntity implements
6062

6163
private int progressTick = 0;
6264

63-
public static final TagKey<Item> BLACKLISTED = TagKey.create(BuiltInRegistries.ITEM.key(), MI.id("replicator_blacklist"));
65+
public static final TagKey<Item> BLACKLISTED = ItemTags.create(MI.id("replicator_blacklist"));
66+
public static final TagKey<Fluid> BLACKLISTED_FLUIDS = FluidTags.create(MI.id("replicator_blacklist"));
6467

6568
public ReplicatorMachineBlockEntity(BEP bep) {
6669

@@ -73,7 +76,7 @@ public ReplicatorMachineBlockEntity(BEP bep) {
7376
long capacity = FluidType.BUCKET_VOLUME * 256;
7477

7578
List<ConfigurableFluidStack> fluidInput = Collections
76-
.singletonList(ConfigurableFluidStack.lockedInputSlot(capacity, MIFluids.UU_MATER.asFluid()));
79+
.singletonList(ConfigurableFluidStack.lockedInputSlot(capacity, MIFluids.UU_MATTER.asFluid()));
7780
List<ConfigurableItemStack> itemInputs = Collections.singletonList(ConfigurableItemStack.standardInputSlot());
7881
List<ConfigurableItemStack> itemOutputs = Collections.singletonList(ConfigurableItemStack.standardOutputSlot());
7982

@@ -130,11 +133,11 @@ private static boolean canReplicate(ItemStack stack) {
130133
}
131134
}
132135

133-
// Disallow anything that contains UU Matter
136+
// Disallow anything that contains disallowed fluids
134137
var fluidItem = stack.getCapability(Capabilities.FluidHandler.ITEM);
135138
if (fluidItem != null) {
136139
for (int tank = 0; tank < fluidItem.getTanks(); ++tank) {
137-
if (fluidItem.getFluidInTank(tank).getFluid() == MIFluids.UU_MATER.asFluid()) {
140+
if (fluidItem.getFluidInTank(tank).is(BLACKLISTED_FLUIDS)) {
138141
return false;
139142
}
140143
}
@@ -156,7 +159,7 @@ public boolean replicationStep(boolean simulate) {
156159
MIFluidStorage fluidStorage = new MIFluidStorage(inventoryComponent.getFluidInputs());
157160

158161
long inserted = itemStorage.insertAllSlot(itemVariant, 1, tx);
159-
long uuMatterExtraced = fluidStorage.extractAllSlot(MIFluids.UU_MATER.variant(), FluidType.BUCKET_VOLUME / 10, tx);
162+
long uuMatterExtraced = fluidStorage.extractAllSlot(MIFluids.UU_MATTER.variant(), FluidType.BUCKET_VOLUME / 10, tx);
160163

161164
if (inserted == 1 && uuMatterExtraced == FluidType.BUCKET_VOLUME / 10) {
162165
if (!simulate) {

0 commit comments

Comments
 (0)