diff --git a/src/main/java/techreborn/blocks/tier2/BlockDigitalChest.java b/src/main/java/techreborn/blocks/tier2/BlockDigitalChest.java index b3b8dbee0..b82687b23 100644 --- a/src/main/java/techreborn/blocks/tier2/BlockDigitalChest.java +++ b/src/main/java/techreborn/blocks/tier2/BlockDigitalChest.java @@ -27,6 +27,7 @@ package techreborn.blocks.tier2; import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -54,8 +55,7 @@ public class BlockDigitalChest extends BlockMachineBase { ShootingStar.registerModel(new ModelCompound(ModInfo.MOD_ID, this, "machines/tier2_machines")); } - @Override - protected void dropInventory(final World world, final BlockPos pos) { + protected void dropChest(final World world, final BlockPos pos) { final TileEntity tileEntity = world.getTileEntity(pos); if (!(tileEntity instanceof TileTechStorageBase)) { return; @@ -66,6 +66,30 @@ public class BlockDigitalChest extends BlockMachineBase { WorldUtils.dropItems(items, world, pos); } + @Override + protected void dropInventory(World world, BlockPos pos) { + + } + + @Override + public void getDrops(NonNullList drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { + final TileEntity tileEntity = world.getTileEntity(pos); + if (!(tileEntity instanceof TileTechStorageBase)) { + super.getDrops(drops, world, pos, state, fortune); + } else { + final TileTechStorageBase tileEntity1 = (TileTechStorageBase) tileEntity; + drops.add(tileEntity1.getDropWithNBT()); + } + } + + @Override + public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { + if(worldIn.getTileEntity(pos) != null){ + dropChest(worldIn, pos); + } + worldIn.removeTileEntity(pos); + } + @Override public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { return Collections.emptyList(); diff --git a/src/main/java/techreborn/blocks/tier3/BlockQuantumChest.java b/src/main/java/techreborn/blocks/tier3/BlockQuantumChest.java index 89bdb2bf7..9baa0bbbf 100644 --- a/src/main/java/techreborn/blocks/tier3/BlockQuantumChest.java +++ b/src/main/java/techreborn/blocks/tier3/BlockQuantumChest.java @@ -27,6 +27,7 @@ package techreborn.blocks.tier3; import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -59,8 +60,7 @@ public class BlockQuantumChest extends BlockMachineBase { return true; } - @Override - protected void dropInventory(final World world, final BlockPos pos) { + protected void dropChest(final World world, final BlockPos pos) { final TileEntity tileEntity = world.getTileEntity(pos); if (!(tileEntity instanceof TileTechStorageBase)) { return; @@ -71,6 +71,30 @@ public class BlockQuantumChest extends BlockMachineBase { WorldUtils.dropItems(items, world, pos); } + @Override + protected void dropInventory(World world, BlockPos pos) { + + } + + @Override + public void getDrops(NonNullList drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { + final TileEntity tileEntity = world.getTileEntity(pos); + if (!(tileEntity instanceof TileTechStorageBase)) { + super.getDrops(drops, world, pos, state, fortune); + } else { + final TileTechStorageBase tileEntity1 = (TileTechStorageBase) tileEntity; + drops.add(tileEntity1.getDropWithNBT()); + } + } + + @Override + public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { + if(worldIn.getTileEntity(pos) != null){ + dropChest(worldIn, pos); + } + worldIn.removeTileEntity(pos); + } + @Override public List getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { return Collections.emptyList(); diff --git a/src/main/java/techreborn/tiles/TileTechStorageBase.java b/src/main/java/techreborn/tiles/TileTechStorageBase.java index 370da84de..baca95c64 100644 --- a/src/main/java/techreborn/tiles/TileTechStorageBase.java +++ b/src/main/java/techreborn/tiles/TileTechStorageBase.java @@ -143,6 +143,8 @@ public class TileTechStorageBase extends TileLegacyMachineBase if (!this.storedItem.isEmpty()) { this.storedItem.setCount(Math.min(tagCompound.getInteger("storedQuantity"), this.maxCapacity)); } + + inventory.readFromNBT(tagCompound); } @Override @@ -163,7 +165,7 @@ public class TileTechStorageBase extends TileLegacyMachineBase } else { tagCompound.setInteger("storedQuantity", 0); } - + inventory.writeToNBT(tagCompound); return tagCompound; }