diff --git a/src/main/java/com/klikli_dev/occultism/common/block/storage/StableWormholeBlock.java b/src/main/java/com/klikli_dev/occultism/common/block/storage/StableWormholeBlock.java index bfc7520ea..f9a6fbb08 100644 --- a/src/main/java/com/klikli_dev/occultism/common/block/storage/StableWormholeBlock.java +++ b/src/main/java/com/klikli_dev/occultism/common/block/storage/StableWormholeBlock.java @@ -24,6 +24,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; +import com.klikli_dev.occultism.Occultism; import com.klikli_dev.occultism.common.blockentity.StableWormholeBlockEntity; import com.klikli_dev.occultism.common.container.storage.StorageControllerContainerBase; import com.klikli_dev.occultism.registry.OccultismTiles; @@ -210,6 +211,14 @@ public VoxelShape getCollisionShape(BlockState state, BlockGetter worldIn, Block @Override @SuppressWarnings("deprecation") public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + if(Occultism.SERVER_CONFIG.storage.unlinkWormholeOnBreak.get()){ + BlockEntity blockEntity = worldIn.getBlockEntity(pos); + if (blockEntity instanceof StableWormholeBlockEntity wormhole) { + if (wormhole.getLinkedStorageController() != null) { + wormhole.setLinkedStorageControllerPosition(null); + } + } + } BlockEntityUtil.onBlockChangeDropWithNbt(this, state, worldIn, pos, newState); super.onRemove(state, worldIn, pos, newState, isMoving); } diff --git a/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java b/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java index 5366169ac..abd98d537 100644 --- a/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java +++ b/src/main/java/com/klikli_dev/occultism/config/OccultismServerConfig.java @@ -255,6 +255,7 @@ public static class StorageSettings { public final ConfigValue controllerBaseSlots; public final ConfigValue controllerStackSize; public final BooleanValue overrideItemStackSizes; + public final BooleanValue unlinkWormholeOnBreak; public StorageSettings(ForgeConfigSpec.Builder builder) { builder.comment("Storage Settings").push("storage"); @@ -282,6 +283,12 @@ public StorageSettings(ForgeConfigSpec.Builder builder) { "item type (such as 16 for ender pearls, 64 for iron ingot). WARNING: Setting this to " + "false may have a negative impact on performance.") .define("overrideItemStackSizes", true); + this.unlinkWormholeOnBreak = + builder.comment( + "True to use the configured controllerStackSize for all items, instead of the stack sizes provided by " + + "item type (such as 16 for ender pearls, 64 for iron ingot). WARNING: Setting this to " + + "false may have a negative impact on performance.") + .define("unlinkWormholeOnBreak", false); builder.pop(); } }