diff --git a/src/main/java/igentuman/nc/block/MultiblockControllerBlock.java b/src/main/java/igentuman/nc/block/MultiblockControllerBlock.java index f7c40a38d..69cbc7177 100644 --- a/src/main/java/igentuman/nc/block/MultiblockControllerBlock.java +++ b/src/main/java/igentuman/nc/block/MultiblockControllerBlock.java @@ -50,7 +50,8 @@ public void setPlacedBy(Level world, BlockPos pos, BlockState state, LivingEntit if (stack.hasTag()) { MultiblockControllerBE tileEntity = (MultiblockControllerBE) world.getExistingBlockEntity(pos); CompoundTag nbtData = stack.getOrCreateTag(); - tileEntity.updateEnergyTier(nbtData.getInt("upgrade_tier")); + tileEntity.upgrade_tier = nbtData.getInt("upgrade_tier"); + tileEntity.updateEnergyTier(tileEntity.upgrade_tier); } } diff --git a/src/main/java/igentuman/nc/block/entity/MultiblockControllerBE.java b/src/main/java/igentuman/nc/block/entity/MultiblockControllerBE.java index fe2a861c0..c796492d6 100644 --- a/src/main/java/igentuman/nc/block/entity/MultiblockControllerBE.java +++ b/src/main/java/igentuman/nc/block/entity/MultiblockControllerBE.java @@ -162,6 +162,12 @@ public void load(CompoundTag tag) { errorBlockPos = BlockPos.ZERO; } validationResult = ValidationResult.byId(infoTag.getInt("validationId")); + if (infoTag.contains("upgrade_tier")) { + upgrade_tier = infoTag.getInt("upgrade_tier"); + // Re-apply the upgrade tier to the energy storage after a chunk reload, + // because the storage constructor only knows the base config tier. + updateEnergyTier(upgrade_tier); + } } } @@ -205,6 +211,7 @@ public void saveAdditional(CompoundTag tag) { errorBlockPos = BlockPos.ZERO; } infoTag.putLong("erroredBlock", errorBlockPos.asLong()); + infoTag.putInt("upgrade_tier", upgrade_tier); tag.remove("Info"); tag.put("Info", infoTag); } diff --git a/src/main/java/igentuman/nc/block/fusion/FusionCoreBlock.java b/src/main/java/igentuman/nc/block/fusion/FusionCoreBlock.java index 63deca817..770573478 100644 --- a/src/main/java/igentuman/nc/block/fusion/FusionCoreBlock.java +++ b/src/main/java/igentuman/nc/block/fusion/FusionCoreBlock.java @@ -205,6 +205,8 @@ public void setPlacedBy(Level world, BlockPos pos, BlockState state, LivingEntit CompoundTag tag = new CompoundTag(); tag.put("Info", nbtData); tileEntity.load(tag); + tileEntity.upgrade_tier = nbtData.getInt("upgrade_tier"); + tileEntity.updateEnergyTier(tileEntity.upgrade_tier); } } }