diff --git a/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java b/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java index aeec5c3e7..f45e151e6 100644 --- a/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java +++ b/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java @@ -68,23 +68,24 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT this.coolDown = new HashMap<>(); this.coolDown.put( new InWorldToolOperationIngredient( Blocks.STONE.getDefaultState() ), - new InWorldToolOperationResult( new ItemStack( Blocks.COBBLESTONE ) ) ); + new InWorldToolOperationResult( Blocks.COBBLESTONE.getDefaultState() ) ); this.coolDown.put( new InWorldToolOperationIngredient( Blocks.STONEBRICK.getDefaultState() ), - new InWorldToolOperationResult( new ItemStack( Blocks.STONEBRICK, 1, 2 ) ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.LAVA, true ), new InWorldToolOperationResult( new ItemStack( Blocks.OBSIDIAN ) ) ); + new InWorldToolOperationResult( Blocks.STONEBRICK.getStateFromMeta( 2 ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.LAVA, true ), new InWorldToolOperationResult( Blocks.OBSIDIAN.getDefaultState() ) ); this.coolDown.put( new InWorldToolOperationIngredient( Blocks.FLOWING_LAVA, true ), - new InWorldToolOperationResult( new ItemStack( Blocks.OBSIDIAN ) ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.GRASS, true ), new InWorldToolOperationResult( new ItemStack( Blocks.DIRT ) ) ); + new InWorldToolOperationResult( Blocks.OBSIDIAN.getDefaultState() ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.GRASS, true ), new InWorldToolOperationResult( Blocks.DIRT.getDefaultState() ) ); final List snowBalls = new ArrayList<>(); snowBalls.add( new ItemStack( Items.SNOWBALL ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.FLOWING_WATER, true ), new InWorldToolOperationResult( ItemStack.EMPTY, snowBalls ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.WATER, true ), new InWorldToolOperationResult( new ItemStack( Blocks.ICE ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.FLOWING_WATER, true ), new InWorldToolOperationResult( null, snowBalls ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.WATER, true ), new InWorldToolOperationResult( Blocks.ICE.getDefaultState() ) ); - this.heatUp.put( new InWorldToolOperationIngredient( Blocks.ICE.getDefaultState() ), new InWorldToolOperationResult( new ItemStack( Blocks.WATER ) ) ); + this.heatUp.put( new InWorldToolOperationIngredient( Blocks.ICE.getDefaultState() ), new InWorldToolOperationResult( Blocks.WATER.getDefaultState() ) ); this.heatUp.put( new InWorldToolOperationIngredient( Blocks.FLOWING_WATER, true ), new InWorldToolOperationResult() ); this.heatUp.put( new InWorldToolOperationIngredient( Blocks.WATER, true ), new InWorldToolOperationResult() ); - this.heatUp.put( new InWorldToolOperationIngredient( Blocks.SNOW, true ), new InWorldToolOperationResult( new ItemStack( Blocks.FLOWING_WATER ) ) ); + this.heatUp.put( new InWorldToolOperationIngredient( Blocks.SNOW, true ), + new InWorldToolOperationResult( Blocks.FLOWING_WATER.getStateFromMeta( 7 ) ) ); } private static class InWorldToolOperationIngredient @@ -135,10 +136,9 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT r = this.heatUp.get( new InWorldToolOperationIngredient( state.getBlock(), true ) ); } - if( !r.getBlockItem().isEmpty() ) + if( r.getBlockState() != null ) { - final Block blk = Block.getBlockFromItem( r.getBlockItem().getItem() ); - w.setBlockState( pos, blk.getStateFromMeta( r.getBlockItem().getItemDamage() ), 3 ); + w.setBlockState( pos, r.getBlockState(), 3 ); } else { @@ -172,10 +172,9 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT r = this.coolDown.get( new InWorldToolOperationIngredient( state.getBlock(), true ) ); } - if( !r.getBlockItem().isEmpty() ) + if( r.getBlockState() != null ) { - final Block blk = Block.getBlockFromItem( r.getBlockItem().getItem() ); - w.setBlockState( pos, blk.getStateFromMeta( r.getBlockItem().getItemDamage() ), 3 ); + w.setBlockState( pos, r.getBlockState(), 3 ); } else { @@ -326,14 +325,13 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT w.playSound( p, pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, SoundEvents.ITEM_FLINTANDSTEEL_USE, SoundCategory.PLAYERS, 1.0F, itemRand.nextFloat() * 0.4F + 0.8F ); - if( or.getBlockItem().isEmpty() ) + if( or.getBlockState() == null ) { w.setBlockState( pos, Platform.AIR_BLOCK.getDefaultState(), 3 ); } else { - final Block blk = Block.getBlockFromItem( or.getBlockItem().getItem() ); - w.setBlockState( pos, blk.getStateFromMeta( or.getBlockItem().getItemDamage() ), 3 ); + w.setBlockState( pos, or.getBlockState(), 3 ); } if( or.getDrops() != null ) diff --git a/src/main/java/appeng/util/InWorldToolOperationResult.java b/src/main/java/appeng/util/InWorldToolOperationResult.java index f6094f293..6df11be61 100644 --- a/src/main/java/appeng/util/InWorldToolOperationResult.java +++ b/src/main/java/appeng/util/InWorldToolOperationResult.java @@ -24,47 +24,48 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; public class InWorldToolOperationResult { - private final ItemStack BlockItem; - private final List Drops; + private final IBlockState blockState; + private final List drops; public InWorldToolOperationResult() { - this.BlockItem = ItemStack.EMPTY; - this.Drops = null; + this.blockState = null; + this.drops = null; } - public InWorldToolOperationResult( final ItemStack block, final List drops ) + public InWorldToolOperationResult( final IBlockState block, final List drops ) { - this.BlockItem = block; - this.Drops = drops; + this.blockState = block; + this.drops = drops; } - public InWorldToolOperationResult( final ItemStack block ) + public InWorldToolOperationResult( final IBlockState block ) { - this.BlockItem = block; - this.Drops = null; + this.blockState = block; + this.drops = null; } public static InWorldToolOperationResult getBlockOperationResult( final ItemStack[] items ) { final List temp = new ArrayList<>(); - ItemStack b = ItemStack.EMPTY; + IBlockState b = null; for( final ItemStack l : items ) { - if( b.isEmpty() ) + if( b == null ) { final Block bl = Block.getBlockFromItem( l.getItem() ); if( bl != null && !( bl instanceof BlockAir ) ) { - b = l; + b = bl.getDefaultState(); continue; } } @@ -75,13 +76,13 @@ public class InWorldToolOperationResult return new InWorldToolOperationResult( b, temp ); } - public ItemStack getBlockItem() + public IBlockState getBlockState() { - return this.BlockItem; + return this.blockState; } public List getDrops() { - return this.Drops; + return this.drops; } }