diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java index 8e2cceac5..b697378ee 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityBreaker.java @@ -10,12 +10,12 @@ package de.ellpeck.actuallyadditions.mod.tile; - import de.ellpeck.actuallyadditions.mod.util.StackUtil; import de.ellpeck.actuallyadditions.mod.util.WorldUtil; import net.minecraft.block.Block; import net.minecraft.block.BlockLiquid; import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; @@ -23,102 +23,99 @@ import net.minecraft.util.NonNullList; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fluids.IFluidBlock; -public class TileEntityBreaker extends TileEntityInventoryBase{ +public class TileEntityBreaker extends TileEntityInventoryBase { - public boolean isPlacer; - private int currentTime; + public boolean isPlacer; + private int currentTime; - public TileEntityBreaker(int slots, String name){ - super(slots, name); - } + public TileEntityBreaker(int slots, String name) { + super(slots, name); + } - public TileEntityBreaker(){ - super(9, "breaker"); - this.isPlacer = false; - } + public TileEntityBreaker() { + super(9, "breaker"); + this.isPlacer = false; + } - @Override - public void writeSyncableNBT(NBTTagCompound compound, NBTType type){ - super.writeSyncableNBT(compound, type); - if(type != NBTType.SAVE_BLOCK){ - compound.setInteger("CurrentTime", this.currentTime); - } - } + @Override + public void writeSyncableNBT(NBTTagCompound compound, NBTType type) { + super.writeSyncableNBT(compound, type); + if (type != NBTType.SAVE_BLOCK) { + compound.setInteger("CurrentTime", this.currentTime); + } + } - @Override - public void readSyncableNBT(NBTTagCompound compound, NBTType type){ - super.readSyncableNBT(compound, type); - if(type != NBTType.SAVE_BLOCK){ - this.currentTime = compound.getInteger("CurrentTime"); - } - } + @Override + public void readSyncableNBT(NBTTagCompound compound, NBTType type) { + super.readSyncableNBT(compound, type); + if (type != NBTType.SAVE_BLOCK) { + this.currentTime = compound.getInteger("CurrentTime"); + } + } - @Override - public void updateEntity(){ - super.updateEntity(); - if(!this.world.isRemote){ - if(!this.isRedstonePowered && !this.isPulseMode){ - if(this.currentTime > 0){ - this.currentTime--; - if(this.currentTime <= 0){ - this.doWork(); - } - } - else{ - this.currentTime = 15; - } - } - } - } + @Override + public void updateEntity() { + super.updateEntity(); + if (!this.world.isRemote) { + if (!this.isRedstonePowered && !this.isPulseMode) { + if (this.currentTime > 0) { + this.currentTime--; + if (this.currentTime <= 0) { + this.doWork(); + } + } else { + this.currentTime = 15; + } + } + } + } - @Override - public boolean isItemValidForSlot(int i, ItemStack stack){ - return this.isPlacer; - } + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return this.isPlacer; + } - private void doWork(){ - IBlockState state = this.world.getBlockState(this.pos); - EnumFacing sideToManipulate = WorldUtil.getDirectionByPistonRotation(state); + private void doWork() { + EnumFacing side = WorldUtil.getDirectionByPistonRotation(world.getBlockState(pos)); + BlockPos breakCoords = pos.offset(side); + IBlockState stateToBreak = world.getBlockState(breakCoords); + Block blockToBreak = stateToBreak.getBlock(); - BlockPos coordsBlock = this.pos.offset(sideToManipulate); - IBlockState stateToBreak = this.world.getBlockState(coordsBlock); - Block blockToBreak = stateToBreak.getBlock(); - if(!this.isPlacer && blockToBreak != null && !this.world.isAirBlock(coordsBlock) && !(blockToBreak instanceof BlockLiquid) && !(blockToBreak instanceof IFluidBlock) && stateToBreak.getBlockHardness(this.world, coordsBlock) >= 0.0F){ - NonNullList drops = NonNullList.create(); - blockToBreak.getDrops(drops, world, coordsBlock, stateToBreak, 0); - float chance = WorldUtil.fireFakeHarvestEventsForDropChance(drops, this.world, coordsBlock); + if (!this.isPlacer && blockToBreak != Blocks.AIR && !(blockToBreak instanceof BlockLiquid) && !(blockToBreak instanceof IFluidBlock) && stateToBreak.getBlockHardness(this.world, breakCoords) >= 0.0F) { + NonNullList drops = NonNullList.create(); + blockToBreak.getDrops(drops, world, breakCoords, stateToBreak, 0); + float chance = WorldUtil.fireFakeHarvestEventsForDropChance(drops, world, breakCoords); - if(chance > 0 && this.world.rand.nextFloat() <= chance){ - if(WorldUtil.addToInventory(this.slots, drops, false)){ - this.world.playEvent(2001, coordsBlock, Block.getStateId(stateToBreak)); - this.world.setBlockToAir(coordsBlock); - WorldUtil.addToInventory(this.slots, drops, true); - this.markDirty(); - } - } - } - else if(this.isPlacer){ - int theSlot = WorldUtil.findFirstFilledSlot(this.slots); - this.slots.setStackInSlot(theSlot, WorldUtil.useItemAtSide(sideToManipulate, this.world, this.pos, this.slots.getStackInSlot(theSlot))); - if(!StackUtil.isValid(this.slots.getStackInSlot(theSlot))){ - this.slots.setStackInSlot(theSlot, StackUtil.getEmpty()); - } - } - } + if (chance > 0 && world.rand.nextFloat() <= chance) { + if (WorldUtil.addToInventory(slots, drops, false)) { + this.world.playEvent(2001, breakCoords, Block.getStateId(stateToBreak)); + this.world.setBlockToAir(breakCoords); + WorldUtil.addToInventory(slots, drops, true); + this.markDirty(); + } + } + } else if (this.isPlacer) { + int theSlot = WorldUtil.findFirstFilledSlot(slots); + this.slots.setStackInSlot(theSlot, WorldUtil.useItemAtSide(side, world, pos, slots.getStackInSlot(theSlot))); + if (!StackUtil.isValid(slots.getStackInSlot(theSlot))) { + this.slots.setStackInSlot(theSlot, StackUtil.getEmpty()); + } + } + } - @Override - public boolean canExtractItem(int slot, ItemStack stack){ - return true; - } + @Override + public boolean canExtractItem(int slot, ItemStack stack) { + return true; + } - @Override - public boolean isRedstoneToggle(){ - return true; - } + @Override + public boolean isRedstoneToggle() { + return true; + } - @Override - public void activateOnPulse(){ - this.doWork(); - } + @Override + public void activateOnPulse() { + this.doWork(); + } }