diff --git a/gradle.properties b/gradle.properties index fc255472..5f7637ea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.daemon=false mod_id=sophisticatedstorage mod_group_id=sophisticatedstorage -mod_version=0.10.29 +mod_version=0.10.30 sonar_project_key=sophisticatedstorage:SophisticatedStorage github_package_url=https://maven.pkg.github.com/P3pp3rF1y/SophisticatedStorage diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/ChestBlock.java b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/ChestBlock.java index 3809dd68..83ddc235 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/ChestBlock.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/ChestBlock.java @@ -133,7 +133,7 @@ public BlockState updateShape(BlockState state, Direction facing, BlockState fac } } else if (getConnectedDirection(state) == facing) { level.getBlockEntity(currentPos, ModBlocks.CHEST_BLOCK_ENTITY_TYPE.get()).ifPresent(be -> { - if (!level.isClientSide() && !be.isBeingUpgraded()) { + if (!level.isClientSide() && !be.isBeingUpgraded() && !be.isPacked()) { if (be.isMainChest() && state.getBlock() instanceof ChestBlock chestBlock) { be.dropSecondPartContents(chestBlock, facingPos); } else if (!be.isMainChest()) { diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/StorageBlockEntity.java b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/StorageBlockEntity.java index 21b0df2a..5b3a33f9 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/StorageBlockEntity.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/StorageBlockEntity.java @@ -97,7 +97,7 @@ public ItemStack getWrappedStorageStack() { @Override protected void onUpgradeRefresh() { - if (!isDroppingContents && level != null && !level.isClientSide && getBlockState().getBlock() instanceof IStorageBlock storageBlock) { + if (canRefreshUpgrades() && getBlockState().getBlock() instanceof IStorageBlock storageBlock) { storageBlock.setTicking(level, getBlockPos(), getBlockState(), !storageWrapper.getUpgradeHandler().getWrappersThatImplement(ITickableUpgrade.class).isEmpty()); } } @@ -158,6 +158,10 @@ public ITrackedContentsItemHandler getInventoryForInputOutput() { storageWrapper.setUpgradeCachesInvalidatedHandler(this::onUpgradeCachesInvalidated); } + protected boolean canRefreshUpgrades() { + return !isDroppingContents && level != null && !level.isClientSide; + } + @SuppressWarnings("java:S1172") //parameter used in override protected ItemStack addWrappedStorageStackData(ItemStack cloneItemStack, BlockState state) { return cloneItemStack; diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockBase.java b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockBase.java index 2d27d07f..08c6ff84 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockBase.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockBase.java @@ -214,13 +214,14 @@ protected void packStorage(Player player, InteractionHand hand, WoodStorageBlock player.setItemInHand(hand, ItemStack.EMPTY); } } - b.setPacked(true); BlockState blockState = b.getBlockState(); if (blockState.getBlock() instanceof StorageBlockBase storageBlock && blockState.getValue(StorageBlockBase.TICKING)) { storageBlock.setTicking(player.level(), b.getBlockPos(), blockState, false); } + b.setPacked(true); + b.removeFromController(); WorldHelper.notifyBlockUpdate(b); diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockEntity.java b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockEntity.java index e8548912..b12de059 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockEntity.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedstorage/block/WoodStorageBlockEntity.java @@ -113,4 +113,9 @@ public boolean canBeConnected() { public boolean canBeLinked() { return !packed; } + + @Override + protected boolean canRefreshUpgrades() { + return super.canRefreshUpgrades() && !packed; + } }