Repeatedly switching between recipes can leave some output slots in an invisible locked state
James103 opened this issue ยท 6 comments
Version info
Modern Industrialization 2.2.25
Minecraft 1.21.1
NeoForge 21.1.77
Modpack: Craftoria 1.8.0
Expected result
When a machine repeatedly switches between recipes with different outputs, such as a single block of macerators which all ores go through (instead of separate macerators for each ore), output slots should never be left in an invisibly-locked state as described below.
Actual result
When a machine repeatedly switches between recipes with different outputs, there is a chance some output slots of that machine can get into a state where, according to the block's NBT, the slot is filled with a specific item type, but the amount is 0. This causes that slot not to accept anything else other than that item type.
The following is the /data get block
output for such a block (specifically an Advanced Output Hatch connected to one of Extended Industrialization's Large Electric Macerators) -- the placer UUID is redacted but all MI machines in that world were placed by the same player.
{
silenced: 0b,
facingDirection: 2,
placer: "",
extractFluids: 0b,
outputDirection: 2,
x: -1075, y: 71, z: 203,
id: "modern_industrialization:advanced_item_output_hatch",
extractItems: 0b,
items: [
{
amount: 0L, machineLocked: 0b, playerLocked: 0b, adjCap: 64,
playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b,
key: {id: "modern_industrialization:raw_tin"}, playerLockable: 1b
}, {
amount: 64L, machineLocked: 0b, playerLocked: 0b, adjCap: 64,
playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b,
key: {id: "minecraft:raw_copper"}, playerLockable: 1b
},
{
amount: 0L, machineLocked: 0b, playerLocked: 0b, adjCap: 64,
playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b,
key: {id: "modern_industrialization:raw_nickel"}, playerLockable: 1b
},
{
amount: 64L, machineLocked: 0b, playerLocked: 0b, adjCap: 64,
playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b,
key: {id: "minecraft:raw_copper"}, playerLockable: 1b
}
],
fluids: []
}
Steps to reproduce
- Install the modpack "Craftoria" version 1.8.0, or at least the mods mentioned in "Version info."
- Build a machine and have it repeatedly switch between recipes with different outputs.
- Wait. Run
/tick sprint
if needed.
(Depending on the setup, invisible locking may happen immediately, take several minutes, or never occur.)
Can you reproduce this with an MI multiblock? If not, this is likely an issue with Extended Industrialization.
I was able to reproduce with a singleblock MI macerator.
/data get block
output (placer UUID redacted):
{silenced: 0b, facingDirection: 2, recipeMaxEu: 8L, outputDirection: 3, storedEu: 3200L, efficiencyTicks: 0, extractItems: 0b, casing: {}, upgradesItemStack: {}, placer: "", usedEnergy: 0L, recipeEnergy: 100L, overdriveModuleStack: {}, extractFluids: 0b, x: -1077, redstoneModuleStack: {}, y: 72, maxEfficiencyTicks: 64, z: 220, id: "modern_industrialization:electric_macerator", items: [{amount: 63L, machineLocked: 0b, playerLocked: 0b, adjCap: 64, playerExtract: 1b, pipesExtract: 0b, playerInsert: 1b, pipesInsert: 1b, key: {id: "minecraft:raw_copper"}, playerLockable: 1b}, {amount: 0L, machineLocked: 0b, playerLocked: 0b, adjCap: 64, playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b, key: {id: "modern_industrialization:tin_dust"}, playerLockable: 1b}, {amount: 64L, machineLocked: 0b, playerLocked: 0b, adjCap: 40, playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b, key: {id: "modern_industrialization:copper_dust"}, playerLockable: 1b}, {amount: 20L, machineLocked: 0b, playerLocked: 0b, adjCap: 20, playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b, key: {id: "modern_industrialization:copper_dust"}, playerLockable: 1b}, {amount: 8L, machineLocked: 0b, playerLocked: 0b, adjCap: 8, playerExtract: 1b, pipesExtract: 1b, playerInsert: 0b, pipesInsert: 0b, key: {id: "modern_industrialization:copper_dust"}, playerLockable: 1b}], fluids: []}
Interesting. Just to be sure, are you playing with MI Tweaks installed and what is the configuration of that? It's possible one of the features in that could cause this too.
MI Tweaks is part of the modpack and the instance; here is its config file:
mi_tweaks-startup.zip