Fixes some issues with the storage chests, closes #1481

This commit is contained in:
modmuss50 2018-05-04 12:06:40 +01:00
parent 9a6d9765bd
commit 1c10c199ae
3 changed files with 55 additions and 5 deletions

View file

@ -27,6 +27,7 @@ package techreborn.blocks.tier2;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; 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")); ShootingStar.registerModel(new ModelCompound(ModInfo.MOD_ID, this, "machines/tier2_machines"));
} }
@Override protected void dropChest(final World world, final BlockPos pos) {
protected void dropInventory(final World world, final BlockPos pos) {
final TileEntity tileEntity = world.getTileEntity(pos); final TileEntity tileEntity = world.getTileEntity(pos);
if (!(tileEntity instanceof TileTechStorageBase)) { if (!(tileEntity instanceof TileTechStorageBase)) {
return; return;
@ -66,6 +66,30 @@ public class BlockDigitalChest extends BlockMachineBase {
WorldUtils.dropItems(items, world, pos); WorldUtils.dropItems(items, world, pos);
} }
@Override
protected void dropInventory(World world, BlockPos pos) {
}
@Override
public void getDrops(NonNullList<ItemStack> 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 @Override
public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
return Collections.emptyList(); return Collections.emptyList();

View file

@ -27,6 +27,7 @@ package techreborn.blocks.tier3;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -59,8 +60,7 @@ public class BlockQuantumChest extends BlockMachineBase {
return true; return true;
} }
@Override protected void dropChest(final World world, final BlockPos pos) {
protected void dropInventory(final World world, final BlockPos pos) {
final TileEntity tileEntity = world.getTileEntity(pos); final TileEntity tileEntity = world.getTileEntity(pos);
if (!(tileEntity instanceof TileTechStorageBase)) { if (!(tileEntity instanceof TileTechStorageBase)) {
return; return;
@ -71,6 +71,30 @@ public class BlockQuantumChest extends BlockMachineBase {
WorldUtils.dropItems(items, world, pos); WorldUtils.dropItems(items, world, pos);
} }
@Override
protected void dropInventory(World world, BlockPos pos) {
}
@Override
public void getDrops(NonNullList<ItemStack> 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 @Override
public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) { public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
return Collections.emptyList(); return Collections.emptyList();

View file

@ -143,6 +143,8 @@ public class TileTechStorageBase extends TileLegacyMachineBase
if (!this.storedItem.isEmpty()) { if (!this.storedItem.isEmpty()) {
this.storedItem.setCount(Math.min(tagCompound.getInteger("storedQuantity"), this.maxCapacity)); this.storedItem.setCount(Math.min(tagCompound.getInteger("storedQuantity"), this.maxCapacity));
} }
inventory.readFromNBT(tagCompound);
} }
@Override @Override
@ -163,7 +165,7 @@ public class TileTechStorageBase extends TileLegacyMachineBase
} else { } else {
tagCompound.setInteger("storedQuantity", 0); tagCompound.setInteger("storedQuantity", 0);
} }
inventory.writeToNBT(tagCompound);
return tagCompound; return tagCompound;
} }