diff --git a/client/src/main/java/client/Client.java b/client/src/main/java/client/Client.java index 6f910bee..047171e7 100755 --- a/client/src/main/java/client/Client.java +++ b/client/src/main/java/client/Client.java @@ -1930,7 +1930,7 @@ public class Client implements IThreadListener { String.format("Position: %d %d %d", pos.getX(), pos.getY(), pos.getZ()) ); for(Entry entry : block.getProperties().entrySet()) { - str.append("\n" + entry.getKey().getName() + ": " + entry.getValue().toString()); + str.append("\n" + (block.getSavedProperties().contains(entry.getKey()) ? TextColor.NEON : TextColor.LGRAY) + entry.getKey().getName() + TextColor.RESET + ": " + (entry.getValue() instanceof Boolean bool ? (bool ? TextColor.GREEN : TextColor.RED) + "" + entry.getValue() + TextColor.RESET : entry.getValue())); } return str.toString(); diff --git a/common/src/main/java/common/block/Block.java b/common/src/main/java/common/block/Block.java index ca6b7708..0f03097b 100755 --- a/common/src/main/java/common/block/Block.java +++ b/common/src/main/java/common/block/Block.java @@ -774,8 +774,8 @@ public class Block { public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, Entity entityIn) { } - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) { - return this.getStateFromMeta(meta); + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { + return this.getState(); } public void onBlockClicked(World worldIn, BlockPos pos, EntityNPC playerIn) { diff --git a/common/src/main/java/common/block/artificial/BlockFenceGate.java b/common/src/main/java/common/block/artificial/BlockFenceGate.java index f86f67a9..0d936155 100755 --- a/common/src/main/java/common/block/artificial/BlockFenceGate.java +++ b/common/src/main/java/common/block/artificial/BlockFenceGate.java @@ -108,7 +108,7 @@ public class BlockFenceGate extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing()).withProperty(OPEN, Boolean.valueOf(false)).withProperty(POWERED, Boolean.valueOf(false)).withProperty(IN_WALL, Boolean.valueOf(false)); } diff --git a/common/src/main/java/common/block/artificial/BlockHay.java b/common/src/main/java/common/block/artificial/BlockHay.java index 8845fa03..a93007bd 100755 --- a/common/src/main/java/common/block/artificial/BlockHay.java +++ b/common/src/main/java/common/block/artificial/BlockHay.java @@ -75,8 +75,8 @@ public class BlockHay extends BlockRotatedPillar * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { - return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer).withProperty(AXIS, facing.getAxis()); + return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, placer).withProperty(AXIS, facing.getAxis()); } } diff --git a/common/src/main/java/common/block/artificial/BlockLadder.java b/common/src/main/java/common/block/artificial/BlockLadder.java index d59bceaa..b8d4fc80 100755 --- a/common/src/main/java/common/block/artificial/BlockLadder.java +++ b/common/src/main/java/common/block/artificial/BlockLadder.java @@ -90,7 +90,7 @@ public class BlockLadder extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { if (facing.getAxis().isHorizontal() && this.canBlockStay(worldIn, pos, facing)) { diff --git a/common/src/main/java/common/block/artificial/BlockMetalBlock.java b/common/src/main/java/common/block/artificial/BlockMetalBlock.java index 091f59ac..443ee14d 100644 --- a/common/src/main/java/common/block/artificial/BlockMetalBlock.java +++ b/common/src/main/java/common/block/artificial/BlockMetalBlock.java @@ -19,8 +19,12 @@ public class BlockMetalBlock extends Block { this.setRadiation(metal.radioactivity * 2.0f); this.setTab(CheatTab.GEMS); } + + public MetalType getMetal() { + return this.metal; + } protected Item getItemToRegister() { - return new ItemMetalBlock(this, this.metal, false); + return new ItemMetalBlock(this); } } diff --git a/common/src/main/java/common/block/artificial/BlockPortalFrame.java b/common/src/main/java/common/block/artificial/BlockPortalFrame.java index 2adac7be..2aeaa4f7 100755 --- a/common/src/main/java/common/block/artificial/BlockPortalFrame.java +++ b/common/src/main/java/common/block/artificial/BlockPortalFrame.java @@ -92,7 +92,7 @@ public class BlockPortalFrame extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()).withProperty(ORB, Boolean.valueOf(false)); } diff --git a/common/src/main/java/common/block/artificial/BlockQuartzPillar.java b/common/src/main/java/common/block/artificial/BlockQuartzPillar.java index ca6c6724..ddfbecdd 100644 --- a/common/src/main/java/common/block/artificial/BlockQuartzPillar.java +++ b/common/src/main/java/common/block/artificial/BlockQuartzPillar.java @@ -29,7 +29,7 @@ public class BlockQuartzPillar extends BlockRotatedPillar return this.dark; } - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(AXIS, facing.getAxis()); } diff --git a/common/src/main/java/common/block/artificial/BlockSkull.java b/common/src/main/java/common/block/artificial/BlockSkull.java index 8e1920a7..c6788d43 100755 --- a/common/src/main/java/common/block/artificial/BlockSkull.java +++ b/common/src/main/java/common/block/artificial/BlockSkull.java @@ -30,7 +30,7 @@ public class BlockSkull extends Block implements Rotatable { return world.getState(pos).getBlock().getMaterial().isReplaceable() && world.isBlockSolid(pos.down()); } - public State onBlockPlaced(World world, BlockPos pos, Facing face, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) { + public State onBlockPlaced(World world, BlockPos pos, Facing face, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } diff --git a/common/src/main/java/common/block/artificial/BlockSlab.java b/common/src/main/java/common/block/artificial/BlockSlab.java index 6ec4fdef..347125a8 100755 --- a/common/src/main/java/common/block/artificial/BlockSlab.java +++ b/common/src/main/java/common/block/artificial/BlockSlab.java @@ -103,7 +103,7 @@ public class BlockSlab extends Block implements Directional } } - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { State iblockstate = this.getState().withProperty(FACING, Facing.DOWN); return facing != Facing.DOWN && (facing == Facing.UP || (double)hitY <= 0.5D) ? iblockstate : diff --git a/common/src/main/java/common/block/artificial/BlockStairs.java b/common/src/main/java/common/block/artificial/BlockStairs.java index d792d754..a65a983f 100755 --- a/common/src/main/java/common/block/artificial/BlockStairs.java +++ b/common/src/main/java/common/block/artificial/BlockStairs.java @@ -682,9 +682,9 @@ public class BlockStairs extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { - State iblockstate = super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer); + State iblockstate = super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, placer); iblockstate = iblockstate.withProperty(FACING, placer.getHorizontalFacing()).withProperty(SHAPE, BlockStairs.EnumShape.STRAIGHT); return facing != Facing.DOWN && (facing == Facing.UP || (double)hitY <= 0.5D) ? iblockstate.withProperty(HALF, BlockStairs.EnumHalf.BOTTOM) : iblockstate.withProperty(HALF, BlockStairs.EnumHalf.TOP); } diff --git a/common/src/main/java/common/block/artificial/BlockTrapDoor.java b/common/src/main/java/common/block/artificial/BlockTrapDoor.java index ba94d827..b5e2adca 100755 --- a/common/src/main/java/common/block/artificial/BlockTrapDoor.java +++ b/common/src/main/java/common/block/artificial/BlockTrapDoor.java @@ -188,7 +188,7 @@ public class BlockTrapDoor extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { State iblockstate = this.getState(); diff --git a/common/src/main/java/common/block/foliage/BlockCocoa.java b/common/src/main/java/common/block/foliage/BlockCocoa.java index 181c9f98..71c03c02 100755 --- a/common/src/main/java/common/block/foliage/BlockCocoa.java +++ b/common/src/main/java/common/block/foliage/BlockCocoa.java @@ -126,7 +126,7 @@ public class BlockCocoa extends Block implements Rotatable, IGrowable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { if (!facing.getAxis().isHorizontal()) { diff --git a/common/src/main/java/common/block/foliage/BlockHugeMushroom.java b/common/src/main/java/common/block/foliage/BlockHugeMushroom.java index aaecbed8..0079f1d6 100755 --- a/common/src/main/java/common/block/foliage/BlockHugeMushroom.java +++ b/common/src/main/java/common/block/foliage/BlockHugeMushroom.java @@ -4,7 +4,6 @@ import common.block.Block; import common.block.Material; import common.entity.types.EntityLiving; import common.item.Item; -import common.item.block.ItemBlock; import common.model.Model; import common.model.ModelProvider; import common.properties.Property; @@ -75,7 +74,7 @@ public class BlockHugeMushroom extends Block * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState(); } @@ -141,10 +140,6 @@ public class BlockHugeMushroom extends Block .w(name + "_cap").e(name + "_inside"); } } - - protected Item getItemToRegister() { - return new ItemBlock(this, 14); - } public static enum EnumType implements Identifyable { diff --git a/common/src/main/java/common/block/foliage/BlockLeaves.java b/common/src/main/java/common/block/foliage/BlockLeaves.java index 46469486..7c6d0e1d 100755 --- a/common/src/main/java/common/block/foliage/BlockLeaves.java +++ b/common/src/main/java/common/block/foliage/BlockLeaves.java @@ -8,6 +8,7 @@ import common.block.SoundType; import common.collect.Lists; import common.color.Colorizer; import common.entity.npc.EntityNPC; +import common.entity.types.EntityLiving; import common.init.Blocks; import common.init.ItemRegistry; import common.init.WoodType; @@ -24,6 +25,7 @@ import common.properties.PropertyBool; import common.rng.Random; import common.tileentity.TileEntity; import common.util.BlockPos; +import common.util.Facing; import common.vars.Vars; import common.world.IWorldAccess; import common.world.AWorldClient; @@ -326,6 +328,10 @@ public class BlockLeaves extends BlockLeavesBase super.harvestBlock(worldIn, player, pos, state, te); } } + + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { + return this.getState().withProperty(DECAY, false); + } public Model getModel(ModelProvider provider, String name, State state) { return this.subType.isTinted() ? provider.getModel(name).add().all().tint() : @@ -337,6 +343,6 @@ public class BlockLeaves extends BlockLeavesBase } protected Item getItemToRegister() { - return new ItemColored(this, 8); + return new ItemColored(this); } } diff --git a/common/src/main/java/common/block/foliage/BlockLilyPad.java b/common/src/main/java/common/block/foliage/BlockLilyPad.java index 4d058465..6d6d24bb 100755 --- a/common/src/main/java/common/block/foliage/BlockLilyPad.java +++ b/common/src/main/java/common/block/foliage/BlockLilyPad.java @@ -102,7 +102,7 @@ public class BlockLilyPad extends BlockBush implements Rotatable return new Property[] {FACING}; } - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } diff --git a/common/src/main/java/common/block/foliage/BlockLog.java b/common/src/main/java/common/block/foliage/BlockLog.java index c7ec2415..36e0a41c 100755 --- a/common/src/main/java/common/block/foliage/BlockLog.java +++ b/common/src/main/java/common/block/foliage/BlockLog.java @@ -54,9 +54,9 @@ public class BlockLog extends BlockRotatedPillar * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { - return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer).withProperty(LOG_AXIS, BlockLog.EnumAxis.fromFacingAxis(facing.getAxis())); + return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, placer).withProperty(LOG_AXIS, BlockLog.EnumAxis.fromFacingAxis(facing.getAxis())); } public Model getModel(ModelProvider provider, String name, State state) { diff --git a/common/src/main/java/common/block/foliage/BlockPumpkin.java b/common/src/main/java/common/block/foliage/BlockPumpkin.java index 806e9346..201f602b 100755 --- a/common/src/main/java/common/block/foliage/BlockPumpkin.java +++ b/common/src/main/java/common/block/foliage/BlockPumpkin.java @@ -25,7 +25,7 @@ public class BlockPumpkin extends Block implements Rotatable { return world.getState(pos).getBlock().getMaterial().isReplaceable() && world.isBlockSolid(pos.down()); } - public State onBlockPlaced(World world, BlockPos pos, Facing face, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) { + public State onBlockPlaced(World world, BlockPos pos, Facing face, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } diff --git a/common/src/main/java/common/block/foliage/BlockVine.java b/common/src/main/java/common/block/foliage/BlockVine.java index 323f890f..c3347ba0 100755 --- a/common/src/main/java/common/block/foliage/BlockVine.java +++ b/common/src/main/java/common/block/foliage/BlockVine.java @@ -401,7 +401,7 @@ public class BlockVine extends Block * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { State iblockstate = this.getState().withProperty(UP, Boolean.valueOf(false)).withProperty(NORTH, Boolean.valueOf(false)).withProperty(EAST, Boolean.valueOf(false)).withProperty(SOUTH, Boolean.valueOf(false)).withProperty(WEST, Boolean.valueOf(false)); return facing.getAxis().isHorizontal() ? iblockstate.withProperty(getPropertyFor(facing.getOpposite()), Boolean.valueOf(true)) : iblockstate; diff --git a/common/src/main/java/common/block/natural/BlockMetalOre.java b/common/src/main/java/common/block/natural/BlockMetalOre.java index 49733b63..87c1bd6c 100644 --- a/common/src/main/java/common/block/natural/BlockMetalOre.java +++ b/common/src/main/java/common/block/natural/BlockMetalOre.java @@ -14,8 +14,12 @@ public class BlockMetalOre extends BlockOre { this.setLightLevel(metal.radioactivity > 0.0F ? 0.25F : 0.0F); this.setRadiation(metal.radioactivity * 0.5f); } + + public MetalType getMetal() { + return this.metal; + } protected Item getItemToRegister() { - return new ItemMetalBlock(this, this.metal, true); + return new ItemMetalBlock(this); } } diff --git a/common/src/main/java/common/block/tech/BlockAnvil.java b/common/src/main/java/common/block/tech/BlockAnvil.java index e7d41f67..4c99dd49 100755 --- a/common/src/main/java/common/block/tech/BlockAnvil.java +++ b/common/src/main/java/common/block/tech/BlockAnvil.java @@ -68,10 +68,10 @@ public class BlockAnvil extends BlockFalling implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { Facing enumfacing = placer.getHorizontalFacing().rotateY(); - return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer).withProperty(FACING, enumfacing); + return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, placer).withProperty(FACING, enumfacing); } public boolean onBlockActivated(World worldIn, BlockPos pos, State state, EntityNPC playerIn, Facing side, float hitX, float hitY, float hitZ) diff --git a/common/src/main/java/common/block/tech/BlockButton.java b/common/src/main/java/common/block/tech/BlockButton.java index 970f1840..cf712034 100755 --- a/common/src/main/java/common/block/tech/BlockButton.java +++ b/common/src/main/java/common/block/tech/BlockButton.java @@ -107,7 +107,7 @@ public class BlockButton extends Block implements Directional * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return canPlaceButtonOn(worldIn, pos, facing.getOpposite()) ? this.getState().withProperty(FACING, facing).withProperty(POWERED, Boolean.valueOf(false)) : this.getState().withProperty(FACING, Facing.DOWN).withProperty(POWERED, Boolean.valueOf(false)); } diff --git a/common/src/main/java/common/block/tech/BlockChest.java b/common/src/main/java/common/block/tech/BlockChest.java index f9e60fe4..db0345af 100755 --- a/common/src/main/java/common/block/tech/BlockChest.java +++ b/common/src/main/java/common/block/tech/BlockChest.java @@ -113,7 +113,7 @@ public class BlockChest extends BlockContainer implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing()); } diff --git a/common/src/main/java/common/block/tech/BlockDispenser.java b/common/src/main/java/common/block/tech/BlockDispenser.java index 99f50618..a7d7bba7 100755 --- a/common/src/main/java/common/block/tech/BlockDispenser.java +++ b/common/src/main/java/common/block/tech/BlockDispenser.java @@ -10,9 +10,7 @@ import common.entity.types.EntityLiving; import common.inventory.Container; import common.inventory.InventoryHelper; import common.item.CheatTab; -import common.item.Item; import common.item.ItemStack; -import common.item.block.ItemBlock; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -201,7 +199,7 @@ public class BlockDispenser extends BlockContainer implements Directional * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, BlockPistonBase.getFacingFromEntity(worldIn, pos, placer)).withProperty(TRIGGERED, Boolean.valueOf(false)); } @@ -321,8 +319,4 @@ public class BlockDispenser extends BlockContainer implements Directional public Property[] getIgnoredProperties() { return new Property[] {TRIGGERED}; } - - protected Item getItemToRegister() { - return new ItemBlock(this, 2); - } } diff --git a/common/src/main/java/common/block/tech/BlockFurnace.java b/common/src/main/java/common/block/tech/BlockFurnace.java index 5a44e290..b92aa33d 100755 --- a/common/src/main/java/common/block/tech/BlockFurnace.java +++ b/common/src/main/java/common/block/tech/BlockFurnace.java @@ -177,7 +177,7 @@ public class BlockFurnace extends BlockContainer implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } diff --git a/common/src/main/java/common/block/tech/BlockHopper.java b/common/src/main/java/common/block/tech/BlockHopper.java index a7367546..b68c4bec 100755 --- a/common/src/main/java/common/block/tech/BlockHopper.java +++ b/common/src/main/java/common/block/tech/BlockHopper.java @@ -122,7 +122,7 @@ public class BlockHopper extends BlockContainer implements DirectionalDown * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { Facing enumfacing = facing.getOpposite(); diff --git a/common/src/main/java/common/block/tech/BlockLever.java b/common/src/main/java/common/block/tech/BlockLever.java index 3a62b608..255c0996 100755 --- a/common/src/main/java/common/block/tech/BlockLever.java +++ b/common/src/main/java/common/block/tech/BlockLever.java @@ -83,7 +83,7 @@ public class BlockLever extends Block * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { State iblockstate = this.getState().withProperty(POWERED, Boolean.valueOf(false)); diff --git a/common/src/main/java/common/block/tech/BlockMachine.java b/common/src/main/java/common/block/tech/BlockMachine.java index d8b85231..2c88635a 100755 --- a/common/src/main/java/common/block/tech/BlockMachine.java +++ b/common/src/main/java/common/block/tech/BlockMachine.java @@ -81,8 +81,7 @@ public abstract class BlockMachine extends Block implements Rotatable, ITileEnti return tileentity == null ? false : tileentity.receiveClientEvent(eventID, eventParam); } - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, - EntityLiving placer) { + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing()); } diff --git a/common/src/main/java/common/block/tech/BlockPistonBase.java b/common/src/main/java/common/block/tech/BlockPistonBase.java index 1b34dcb6..61215dce 100755 --- a/common/src/main/java/common/block/tech/BlockPistonBase.java +++ b/common/src/main/java/common/block/tech/BlockPistonBase.java @@ -307,7 +307,7 @@ public class BlockPistonBase extends Block implements Directional * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, getFacingFromEntity(worldIn, pos, placer)).withProperty(EXTENDED, Boolean.valueOf(false)); } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneComparator.java b/common/src/main/java/common/block/tech/BlockRedstoneComparator.java index 52966957..b769faf1 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneComparator.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneComparator.java @@ -312,7 +312,7 @@ public class BlockRedstoneComparator extends BlockRedstoneDiode implements ITile * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()).withProperty(POWERED, Boolean.valueOf(false)).withProperty(MODE, BlockRedstoneComparator.Mode.COMPARE); } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneDiode.java b/common/src/main/java/common/block/tech/BlockRedstoneDiode.java index a86e845c..cbeae1ed 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneDiode.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneDiode.java @@ -191,7 +191,7 @@ public abstract class BlockRedstoneDiode extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } diff --git a/common/src/main/java/common/block/tech/BlockTorch.java b/common/src/main/java/common/block/tech/BlockTorch.java index 016e0468..fd0fe12e 100755 --- a/common/src/main/java/common/block/tech/BlockTorch.java +++ b/common/src/main/java/common/block/tech/BlockTorch.java @@ -98,7 +98,7 @@ public class BlockTorch extends Block implements DirectionalUp * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { if (this.canPlaceAt(worldIn, pos, facing)) { diff --git a/common/src/main/java/common/block/tech/BlockTripWireHook.java b/common/src/main/java/common/block/tech/BlockTripWireHook.java index 68421da9..c4d8166e 100755 --- a/common/src/main/java/common/block/tech/BlockTripWireHook.java +++ b/common/src/main/java/common/block/tech/BlockTripWireHook.java @@ -91,7 +91,7 @@ public class BlockTripWireHook extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { State iblockstate = this.getState().withProperty(POWERED, Boolean.valueOf(false)).withProperty(ATTACHED, Boolean.valueOf(false)).withProperty(SUSPENDED, Boolean.valueOf(false)); diff --git a/common/src/main/java/common/block/tech/BlockWarpChest.java b/common/src/main/java/common/block/tech/BlockWarpChest.java index a5790186..1d6f8d5a 100755 --- a/common/src/main/java/common/block/tech/BlockWarpChest.java +++ b/common/src/main/java/common/block/tech/BlockWarpChest.java @@ -83,7 +83,7 @@ public class BlockWarpChest extends Block implements Rotatable * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * IBlockstate */ - public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, int meta, EntityLiving placer) + public State onBlockPlaced(World worldIn, BlockPos pos, Facing facing, float hitX, float hitY, float hitZ, EntityLiving placer) { return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()); } diff --git a/common/src/main/java/common/init/BlockRegistry.java b/common/src/main/java/common/init/BlockRegistry.java index 2fb6c640..30f9754d 100755 --- a/common/src/main/java/common/init/BlockRegistry.java +++ b/common/src/main/java/common/init/BlockRegistry.java @@ -652,6 +652,7 @@ public abstract class BlockRegistry { for(Block block : REGISTRY) { for(State state : block.getValidStates()) { STATEMAP.put(state, REGISTRY.getId(block) << 4 | block.getMetaFromState(state)); + state.buildSaved(); } } diff --git a/common/src/main/java/common/item/block/ItemBanner.java b/common/src/main/java/common/item/block/ItemBanner.java index 55ad0a49..de4b95ba 100755 --- a/common/src/main/java/common/item/block/ItemBanner.java +++ b/common/src/main/java/common/item/block/ItemBanner.java @@ -3,7 +3,7 @@ package common.item.block; import java.util.List; import common.block.Block; -import common.block.tile.BlockBanner; +import common.block.tile.BlockBannerStanding; import common.block.tile.BlockStandingSign; import common.block.tile.BlockWallSign; import common.color.DyeColor; @@ -26,9 +26,9 @@ import common.world.World; public class ItemBanner extends Item { - private final BlockBanner block; + private final BlockBannerStanding block; - public ItemBanner(BlockBanner block) + public ItemBanner(BlockBannerStanding block) { this.block = block; this.setTab(CheatTab.DECORATION); diff --git a/common/src/main/java/common/item/block/ItemBlock.java b/common/src/main/java/common/item/block/ItemBlock.java index f864eed6..6b3a044b 100755 --- a/common/src/main/java/common/item/block/ItemBlock.java +++ b/common/src/main/java/common/item/block/ItemBlock.java @@ -23,33 +23,21 @@ public class ItemBlock extends Item { protected final Block block; protected final String flatTexture; - protected final int fixedMeta; - - public ItemBlock(Block block, String flatTexture, int fixedMeta) - { - this.block = block; - this.flatTexture = flatTexture; - this.fixedMeta = fixedMeta; - } - - public ItemBlock(Block block, int fixedMeta) - { - this(block, null, fixedMeta); - } public ItemBlock(Block block, String flatTexture) { - this(block, flatTexture, 0); + this.block = block; + this.flatTexture = flatTexture; } public ItemBlock(Block block, String flatTexture, boolean item) { - this(block, (item ? "items" : "blocks") + "/" + flatTexture, 0); + this(block, (item ? "items" : "blocks") + "/" + flatTexture); } public ItemBlock(Block block) { - this(block, null, 0); + this(block, null); } public ItemBlock setDisplay(String unlocalizedName) @@ -87,7 +75,7 @@ public class ItemBlock extends Item } else if (worldIn.canBlockBePlaced(this.block, pos, false, side, (Entity)null, stack)) { - State iblockstate1 = this.block.onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, this.fixedMeta, playerIn); + State iblockstate1 = this.block.onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, playerIn); if (worldIn.setState(pos, iblockstate1, 3)) { @@ -224,8 +212,8 @@ public class ItemBlock extends Item public Model getModel(ModelProvider provider, String name) { return this.flatTexture != null ? provider.getModel(this.getTransform(), !this.flatTexture.isEmpty() ? this.flatTexture : this.block.getModel(provider, - BlockRegistry.getNameFromBlock(this.block).toString(), this.block.getStateFromMeta(this.fixedMeta)).getPrimary() /* "blocks/" + name */) : + BlockRegistry.getNameFromBlock(this.block).toString(), this.block.getState()).getPrimary() /* "blocks/" + name */) : provider.getModel(this.block.getModel(provider, - BlockRegistry.getNameFromBlock(this.block).toString(), this.block.getStateFromMeta(this.fixedMeta)), this.getTransform()); + BlockRegistry.getNameFromBlock(this.block).toString(), this.block.getState()), this.getTransform()); } } diff --git a/common/src/main/java/common/item/block/ItemChest.java b/common/src/main/java/common/item/block/ItemChest.java index 53509b46..335307ff 100755 --- a/common/src/main/java/common/item/block/ItemChest.java +++ b/common/src/main/java/common/item/block/ItemChest.java @@ -1,12 +1,12 @@ package common.item.block; -import common.block.Block; +import common.block.tech.BlockChest; import common.model.Model; import common.model.ModelProvider; import common.model.Transforms; public class ItemChest extends ItemBlock { - public ItemChest(Block block) { + public ItemChest(BlockChest block) { super(block); } diff --git a/common/src/main/java/common/item/block/ItemCloth.java b/common/src/main/java/common/item/block/ItemCloth.java deleted file mode 100755 index 74fbef91..00000000 --- a/common/src/main/java/common/item/block/ItemCloth.java +++ /dev/null @@ -1,27 +0,0 @@ -package common.item.block; - -import common.block.Block; -import common.color.DyeColor; -import common.model.Model; -import common.model.ModelProvider; - -public class ItemCloth extends ItemBlock -{ - private final DyeColor color; - - public ItemCloth(Block block, String flatTexture, DyeColor color) - { - super(block, flatTexture); - this.color = color; - } - - public ItemCloth(Block block, DyeColor color) - { - this(block, null, color); - } - - public Model getModel(ModelProvider provider, String name) { - return this.flatTexture != null ? provider.getModel(this.getTransform(), "blocks/" + this.color.getName() + "_" + - this.flatTexture) : super.getModel(provider, name); - } -} diff --git a/common/src/main/java/common/item/block/ItemColored.java b/common/src/main/java/common/item/block/ItemColored.java index ba663c02..4df3abb1 100755 --- a/common/src/main/java/common/item/block/ItemColored.java +++ b/common/src/main/java/common/item/block/ItemColored.java @@ -10,11 +10,6 @@ public class ItemColored extends ItemBlock super(block, flatTexture); } - public ItemColored(Block block, int fixedMeta) - { - super(block, fixedMeta); - } - public ItemColored(Block block) { super(block); diff --git a/common/src/main/java/common/item/block/ItemDoor.java b/common/src/main/java/common/item/block/ItemDoor.java index c045bf60..2bb646f2 100755 --- a/common/src/main/java/common/item/block/ItemDoor.java +++ b/common/src/main/java/common/item/block/ItemDoor.java @@ -15,9 +15,9 @@ import common.world.World; public class ItemDoor extends Item { - private Block block; + private final BlockDoor block; - public ItemDoor(Block block) + public ItemDoor(BlockDoor block) { this.block = block; this.setTab(block.getMaterial() == Material.WOOD ? CheatTab.WOOD : CheatTab.TECHNOLOGY); diff --git a/common/src/main/java/common/item/block/ItemFence.java b/common/src/main/java/common/item/block/ItemFence.java index 3726574e..dacd8c02 100755 --- a/common/src/main/java/common/item/block/ItemFence.java +++ b/common/src/main/java/common/item/block/ItemFence.java @@ -1,12 +1,11 @@ package common.item.block; -import common.block.Block; import common.block.artificial.BlockFence; import common.model.Model; import common.model.ModelProvider; public class ItemFence extends ItemBlock { - public ItemFence(Block block) { + public ItemFence(BlockFence block) { super(block); } diff --git a/common/src/main/java/common/item/block/ItemLilyPad.java b/common/src/main/java/common/item/block/ItemLilyPad.java index 65826431..f95cb20a 100755 --- a/common/src/main/java/common/item/block/ItemLilyPad.java +++ b/common/src/main/java/common/item/block/ItemLilyPad.java @@ -1,6 +1,5 @@ package common.item.block; -import common.block.Block; import common.block.foliage.BlockLilyPad; import common.block.liquid.BlockLiquid; import common.entity.npc.EntityNPC; @@ -13,7 +12,7 @@ import common.world.World; public class ItemLilyPad extends ItemColored { - public ItemLilyPad(Block block) + public ItemLilyPad(BlockLilyPad block) { super(block, ""); } diff --git a/common/src/main/java/common/item/block/ItemMetalBlock.java b/common/src/main/java/common/item/block/ItemMetalBlock.java index 21eb1c65..b9df700b 100755 --- a/common/src/main/java/common/item/block/ItemMetalBlock.java +++ b/common/src/main/java/common/item/block/ItemMetalBlock.java @@ -5,6 +5,8 @@ import java.util.Map; import common.attributes.Attribute; import common.attributes.UsageSlot; import common.block.Block; +import common.block.artificial.BlockMetalBlock; +import common.block.natural.BlockMetalOre; import common.color.TextColor; import common.entity.npc.EntityNPC; import common.init.MetalType; @@ -14,7 +16,7 @@ public class ItemMetalBlock extends ItemBlock { private final MetalType metal; private final boolean ore; - public ItemMetalBlock(Block block, MetalType metal, boolean ore) { + private ItemMetalBlock(Block block, MetalType metal, boolean ore) { super(block); this.metal = metal; this.ore = ore; @@ -22,6 +24,14 @@ public class ItemMetalBlock extends ItemBlock { this.setColor(TextColor.GREEN); } + public ItemMetalBlock(BlockMetalBlock block) { + this(block, block.getMetal(), false); + } + + public ItemMetalBlock(BlockMetalOre block) { + this(block, block.getMetal(), true); + } + public void addInformation(ItemStack stack, EntityNPC playerIn, List tooltip) { tooltip.add(this.metal.formatSymbol()); @@ -30,11 +40,6 @@ public class ItemMetalBlock extends ItemBlock { } tooltip.add(this.metal.formatRarity()); } - -// public ChatFormat getColor(ItemStack stack) -// { -// return this.metal.radioactivity > 0.0f ? ChatFormat.GREEN : super.getColor(stack); -// } public void getModifiers(Map map, UsageSlot slot) { diff --git a/common/src/main/java/common/item/block/ItemPiston.java b/common/src/main/java/common/item/block/ItemPiston.java index a602ef6d..11585564 100755 --- a/common/src/main/java/common/item/block/ItemPiston.java +++ b/common/src/main/java/common/item/block/ItemPiston.java @@ -1,15 +1,15 @@ package common.item.block; -import common.block.Block; +import common.block.tech.BlockPistonBase; import common.init.Blocks; import common.model.Model; import common.model.ModelProvider; public class ItemPiston extends ItemBlock { - public ItemPiston(Block block) + public ItemPiston(BlockPistonBase block) { - super(block, 7); + super(block); } public boolean isMagnetic() { diff --git a/common/src/main/java/common/item/block/ItemPressurePlate.java b/common/src/main/java/common/item/block/ItemPressurePlate.java index cb655c82..396b5a88 100755 --- a/common/src/main/java/common/item/block/ItemPressurePlate.java +++ b/common/src/main/java/common/item/block/ItemPressurePlate.java @@ -1,12 +1,11 @@ package common.item.block; -import common.block.Block; import common.block.tech.BlockBasePressurePlate; import common.model.Model; import common.model.ModelProvider; public class ItemPressurePlate extends ItemBlock { - public ItemPressurePlate(Block block) { + public ItemPressurePlate(BlockBasePressurePlate block) { super(block); } diff --git a/common/src/main/java/common/item/block/ItemSeedFood.java b/common/src/main/java/common/item/block/ItemSeedFood.java index 49ce4e7e..03878c6f 100755 --- a/common/src/main/java/common/item/block/ItemSeedFood.java +++ b/common/src/main/java/common/item/block/ItemSeedFood.java @@ -1,6 +1,7 @@ package common.item.block; import common.block.Block; +import common.block.foliage.BlockCrops; import common.entity.npc.EntityNPC; import common.item.CheatTab; import common.item.ItemStack; @@ -11,16 +12,14 @@ import common.world.World; public class ItemSeedFood extends ItemFood { - private Block crops; + private BlockCrops crops; + private Block soil; - /** Block ID of the soil this seed food should be planted on. */ - private Block soilId; - - public ItemSeedFood(int healAmount, Block crops, Block soil) + public ItemSeedFood(int healAmount, BlockCrops crops, Block soil) { super(healAmount, false); this.crops = crops; - this.soilId = soil; + this.soil = soil; this.setTab(CheatTab.PLANTS); } @@ -42,7 +41,7 @@ public class ItemSeedFood extends ItemFood { return false; } - else if (worldIn.getState(pos).getBlock() == this.soilId && worldIn.isAirBlock(pos.up())) + else if (worldIn.getState(pos).getBlock() == this.soil && worldIn.isAirBlock(pos.up())) { worldIn.setState(pos.up(), this.crops.getState()); --stack.size; diff --git a/common/src/main/java/common/item/block/ItemSeeds.java b/common/src/main/java/common/item/block/ItemSeeds.java index 3ebd2a0d..9a35a1a7 100755 --- a/common/src/main/java/common/item/block/ItemSeeds.java +++ b/common/src/main/java/common/item/block/ItemSeeds.java @@ -1,6 +1,7 @@ package common.item.block; import common.block.Block; +import common.block.foliage.BlockBush; import common.entity.npc.EntityNPC; import common.item.CheatTab; import common.item.Item; @@ -12,15 +13,13 @@ import common.world.World; public class ItemSeeds extends Item { - private Block crops; + private BlockBush crops; + private Block soil; - /** BlockID of the block the seeds can be planted on. */ - private Block soilBlockID; - - public ItemSeeds(Block crops, Block soil) + public ItemSeeds(BlockBush crops, Block soil) { this.crops = crops; - this.soilBlockID = soil; + this.soil = soil; this.setTab(CheatTab.PLANTS); } @@ -42,7 +41,7 @@ public class ItemSeeds extends Item { return false; } - else if (worldIn.getState(pos).getBlock() == this.soilBlockID && worldIn.isAirBlock(pos.up())) + else if (worldIn.getState(pos).getBlock() == this.soil && worldIn.isAirBlock(pos.up())) { worldIn.setState(pos.up(), this.crops.getState()); --stack.size; diff --git a/common/src/main/java/common/item/block/ItemSign.java b/common/src/main/java/common/item/block/ItemSign.java index 3880e593..51aecad4 100755 --- a/common/src/main/java/common/item/block/ItemSign.java +++ b/common/src/main/java/common/item/block/ItemSign.java @@ -1,7 +1,6 @@ package common.item.block; import common.block.Block; -import common.block.tile.BlockSign; import common.block.tile.BlockStandingSign; import common.block.tile.BlockWallSign; import common.entity.npc.EntityNPC; @@ -18,9 +17,9 @@ import common.world.World; public class ItemSign extends Item { - private final BlockSign block; + private final BlockStandingSign block; - public ItemSign(BlockSign block) + public ItemSign(BlockStandingSign block) { this.block = block; this.setTab(CheatTab.DECORATION); @@ -84,17 +83,4 @@ public class ItemSign extends Item } } } - -// public Set getValidTags() { -// return Sets.newHashSet("BlockEntityTag"); -// } -// -// protected boolean validateNbt(NBTTagCompound tag) { -// if(tag.hasKey("BlockEntityTag")) { -// if(!tag.hasTag("BlockEntityTag")) { -// return false; -// } -// } -// return true; -// } } diff --git a/common/src/main/java/common/item/block/ItemSmallBlock.java b/common/src/main/java/common/item/block/ItemSmallBlock.java index 97ca2e2f..3cbdc56f 100755 --- a/common/src/main/java/common/item/block/ItemSmallBlock.java +++ b/common/src/main/java/common/item/block/ItemSmallBlock.java @@ -34,7 +34,7 @@ public class ItemSmallBlock extends Item { if(!player.canPlayerEdit(pos, side, stack) || stack.size == 0) return false; if(world.canBlockBePlaced(this.block, pos, false, side, null, stack)) { - State newState = this.block.onBlockPlaced(world, pos, side, hitX, hitY, hitZ, 0, player); + State newState = this.block.onBlockPlaced(world, pos, side, hitX, hitY, hitZ, player); if(world.setState(pos, newState, 3)) { newState = world.getState(pos); diff --git a/common/src/main/java/common/item/block/ItemSnow.java b/common/src/main/java/common/item/block/ItemSnow.java index 8731b961..68e70876 100755 --- a/common/src/main/java/common/item/block/ItemSnow.java +++ b/common/src/main/java/common/item/block/ItemSnow.java @@ -12,7 +12,7 @@ import common.world.World; public class ItemSnow extends ItemBlock { - public ItemSnow(Block block) + public ItemSnow(BlockSnow block) { super(block); } diff --git a/common/src/main/java/common/item/material/ItemDye.java b/common/src/main/java/common/item/material/ItemDye.java index ddb6bd2d..185e1703 100755 --- a/common/src/main/java/common/item/material/ItemDye.java +++ b/common/src/main/java/common/item/material/ItemDye.java @@ -90,7 +90,7 @@ public class ItemDye extends Item if (worldIn.isAirBlock(pos)) { - State iblockstate1 = Blocks.cocoa.onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, 0, playerIn); + State iblockstate1 = Blocks.cocoa.onBlockPlaced(worldIn, pos, side, hitX, hitY, hitZ, playerIn); worldIn.setState(pos, iblockstate1, 2); // if (!playerIn.creative) diff --git a/common/src/main/java/common/world/State.java b/common/src/main/java/common/world/State.java index e21b785c..e9972503 100755 --- a/common/src/main/java/common/world/State.java +++ b/common/src/main/java/common/world/State.java @@ -4,14 +4,17 @@ import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.Map; +import java.util.Set; import java.util.Map.Entry; import java.util.function.Function; import common.block.Block; import common.collect.ImmutableMap; +import common.collect.ImmutableSet; import common.collect.ImmutableTable; import common.collect.Iterables; import common.collect.Maps; +import common.collect.Sets; import common.collect.StandardTable; import common.collect.Table; import common.init.BlockRegistry; @@ -35,6 +38,43 @@ public class State { private final Block block; private final ImmutableMap properties; private ImmutableTable map; + private ImmutableSet saved; + private String id; + + private static Set getSavedProperties(Block block) { + Set stored = Sets.newHashSet(); + Map map = Maps.newHashMap(); + for(int z = 0; z < 16; z++) { + State sub = block.getStateFromMeta(z); + for(Entry entry : sub.getProperties().entrySet()) { + if(map.containsKey(entry.getKey())) { + if(!map.get(entry.getKey()).equals(entry.getValue())) + stored.add(entry.getKey()); + } + else { + map.put(entry.getKey(), entry.getValue()); + } + } + } + for(int z = 0; z < 16; z++) { + State sub = block.getStateFromMeta(z); + Map smap = sub.getProperties(); + for(Property prop : map.keySet()) { + if(!smap.containsKey(prop)) + stored.add(prop); + } + } + return stored; + } + + private static String filterProperties(State state, Set stored) { + StringBuilder sb = new StringBuilder(BlockRegistry.getNameFromBlock(state.getBlock())); + for(Entry entry : state.getProperties().entrySet()) { + if(stored.contains(entry.getKey())) + sb.append(',').append(entry.getKey().getName()).append('=').append(entry.getKey().getName(entry.getValue())); + } + return sb.toString(); + } public State(Block block, ImmutableMap properties) { this.block = block; @@ -58,6 +98,14 @@ public class State { public Collection getPropertyNames() { return Collections.unmodifiableCollection(this.properties.keySet()); } + + public Collection getSavedProperties() { + return this.saved; + } + + public String getId() { + return this.id; + } public > T getValue(Property property) { if(!this.properties.containsKey(property)) { @@ -118,21 +166,25 @@ public class State { } public void buildTable(Map, State> map) { - if(this.map != null) { + if(this.map != null) throw new IllegalStateException(); - } - else { - Table table = new StandardTable(); - for(Property prop : this.properties.keySet()) { - for(Comparable value : prop.getStates()) { - if(value != this.properties.get(prop)) { - Map props = Maps.newHashMap(this.properties); - props.put(prop, value); - table.put(prop, value, map.get(props)); - } + Table table = new StandardTable(); + for(Property prop : this.properties.keySet()) { + for(Comparable value : prop.getStates()) { + if(value != this.properties.get(prop)) { + Map props = Maps.newHashMap(this.properties); + props.put(prop, value); + table.put(prop, value, map.get(props)); } } - this.map = ImmutableTable.copyOf(table); } + this.map = ImmutableTable.copyOf(table); + } + + public void buildSaved() { + if(this.saved != null) + throw new IllegalStateException(); + this.saved = ImmutableSet.copyOf(getSavedProperties(this.block)); + this.id = filterProperties(this, this.saved); } } diff --git a/server/src/main/java/server/world/Region.java b/server/src/main/java/server/world/Region.java index 6f33ace8..316be5f2 100755 --- a/server/src/main/java/server/world/Region.java +++ b/server/src/main/java/server/world/Region.java @@ -28,7 +28,6 @@ import common.init.BlockRegistry; import common.init.Blocks; import common.init.EntityRegistry; import common.log.Log; -import common.properties.Property; import common.tags.TagObject; import common.tileentity.TileEntity; import common.util.BlockPos; @@ -38,41 +37,6 @@ import common.world.BlockArray; import common.world.State; public class Region { - private static Set getSavedProperties(Block block) { - Set stored = Sets.newHashSet(); - Map map = Maps.newHashMap(); - for(int z = 0; z < 16; z++) { - State sub = block.getStateFromMeta(z); - for(Entry entry : sub.getProperties().entrySet()) { - if(map.containsKey(entry.getKey())) { - if(!map.get(entry.getKey()).equals(entry.getValue())) - stored.add(entry.getKey()); - } - else { - map.put(entry.getKey(), entry.getValue()); - } - } - } - for(int z = 0; z < 16; z++) { - State sub = block.getStateFromMeta(z); - Map smap = sub.getProperties(); - for(Property prop : map.keySet()) { - if(!smap.containsKey(prop)) - stored.add(prop); - } - } - return stored; - } - - private static String filterProperties(State state, Set stored) { - StringBuilder sb = new StringBuilder(BlockRegistry.getNameFromBlock(state.getBlock())); - for(Entry entry : state.getProperties().entrySet()) { - if(stored.contains(entry.getKey())) - sb.append(',').append(entry.getKey().getName()).append('=').append(entry.getKey().getName(entry.getValue())); - } - return sb.toString(); - } - private static boolean makeMap(TagObject tag) { Set removed = Sets.newHashSet(); for(String id : tag.keySet()) { @@ -86,10 +50,9 @@ public class Region { for(int z = 0; z < 4096; z++) { Block block = BlockRegistry.getBlockById(z); if(block != Blocks.air) { - Set stored = getSavedProperties(block); for(int n = 0; n < 16; n++) { State state = block.getStateFromMeta(n); - String id = filterProperties(state, stored); + String id = state.getId(); List ids = current.get(id); char mid = (char)BlockRegistry.STATEMAP.get(state); if(ids == null) {