From 173eb2ab8a95dd852081b06a5524e586722dc097 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 12 Aug 2016 18:54:44 +0200 Subject: [PATCH] Fixed a massive dupe bug with the XP Solidifier. Whoops. --- .../mod/blocks/BlockXPSolidifier.java | 26 ------------------- .../mod/tile/TileEntityXPSolidifier.java | 2 +- 2 files changed, 1 insertion(+), 27 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java index e79c719a7..8f0b17a83 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockXPSolidifier.java @@ -96,32 +96,6 @@ public class BlockXPSolidifier extends BlockContainerBase{ @Override public void breakBlock(World world, BlockPos pos, IBlockState state){ this.dropInventory(world, pos); - TileEntity tile = world.getTileEntity(pos); - if(tile instanceof TileEntityXPSolidifier){ - TileEntityXPSolidifier solidifier = (TileEntityXPSolidifier)tile; - if(solidifier.amount > 0){ - int stacks = solidifier.amount/64; - int rest = solidifier.amount%64; - for(int i = 0; i < stacks; i++){ - this.spawnItem(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(InitItems.itemSolidifiedExperience, 64)); - } - this.spawnItem(world, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(InitItems.itemSolidifiedExperience, rest)); - solidifier.amount = 0; - } - } - super.breakBlock(world, pos, state); } - - private void spawnItem(World world, int x, int y, int z, ItemStack stack){ - float dX = Util.RANDOM.nextFloat()*0.8F+0.1F; - float dY = Util.RANDOM.nextFloat()*0.8F+0.1F; - float dZ = Util.RANDOM.nextFloat()*0.8F+0.1F; - EntityItem entityItem = new EntityItem(world, x+dX, y+dY, z+dZ, stack); - float factor = 0.05F; - entityItem.motionX = Util.RANDOM.nextGaussian()*factor; - entityItem.motionY = Util.RANDOM.nextGaussian()*factor+0.2F; - entityItem.motionZ = Util.RANDOM.nextGaussian()*factor; - world.spawnEntityInWorld(entityItem); - } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityXPSolidifier.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityXPSolidifier.java index 26119c278..5d64915d5 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityXPSolidifier.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityXPSolidifier.java @@ -158,7 +158,7 @@ public class TileEntityXPSolidifier extends TileEntityInventoryBase implements I if(buttonID < this.buttonAmounts.length){ if(getPlayerXP(player) > 0){ int xp = this.buttonAmounts[buttonID] == -999 ? getPlayerXP(player)/ItemSolidifiedExperience.SOLID_XP_AMOUNT : this.buttonAmounts[buttonID]; - if(this.amount < Short.MAX_VALUE-xp && getPlayerXP(player) >= ItemSolidifiedExperience.SOLID_XP_AMOUNT*xp){ + if(this.amount < Integer.MAX_VALUE-xp && getPlayerXP(player) >= ItemSolidifiedExperience.SOLID_XP_AMOUNT*xp){ addPlayerXP(player, -(ItemSolidifiedExperience.SOLID_XP_AMOUNT*xp)); if(!this.worldObj.isRemote){ this.amount += xp;