Posted August 9, 201510 yr Ok, so I'm updating my mod to 1.8, and I have a custom rendered block that I want to face the player when placed down. The code I was using worked in 1.7, but in 1.8 it has a couple errors that I can't seem to fix. It really boils down to two errors in the block class. Here is where the error is located: public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityLiving, ItemStack itemStack) { int facing = MathHelper.floor_double((double) ((entityLiving.rotationYaw * 4F) / 360F) + 0.5D) & 3; TileEntity te = world.getTileEntity(x, y, z); if (te != null && te instanceof TileEntityNameHere) { TileEntityNameHere facedte = (TileEntityNameHere) te; facedte.setFacing(facing); world.markBlockForUpdate(x, y, z); } } More specifically, the two errors: TileEntity te = world.getTileEntity(x, y, z); world.markBlockForUpdate(x, y, z); If anyone knows of a fix for this, that would be great!
August 9, 201510 yr >.> you need to use blockPos now, onBlockPlacedBy uses world, BlockPos, EntityLivingBase, ItemStack getTileEntity, markBlockForUpdate also require BlockPos
August 12, 201510 yr Raflex, onBlockPlacedBy is called after the block has been placed which is why DirtyDan can get his tile entity at pos. If you look at super#onBlockPlacedBy, it is an empty method. Is there another method which can be overridden to change how the block is set?
August 12, 201510 yr put this on the blockstate code { "variants": { "facing=north": { "model": "id:block" }, "facing=south": { "model": "id:block", "y": 180, "uvlock": false }, "facing=east": { "model": "id:block", "y": 90, "uvlock": false }, "facing=west": { "model": "id:block", "y": 270, "uvlock": false } } } And this on the block class public static final PropertyDirection PROPERTYFACING = PropertyDirection.create("facing", EnumFacing.Plane.HORIZONTAL); public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase user, ItemStack stack) { super.onBlockPlacedBy(world, pos, state, user,stack); int dir = user.getHorizontalFacing().getHorizontalIndex(); world.setBlockState(pos, getStateFromMeta(dir), 2); } @Override public IBlockState getStateFromMeta(int meta) { EnumFacing facing = EnumFacing.getHorizontal(meta); int colourbits = (meta & 0x0c) >> 2; // 0x0c is hexadecimal, in binary 110 return this.getDefaultState().withProperty(PROPERTYFACING, facing); } @Override public int getMetaFromState(IBlockState state) { EnumFacing facing = (EnumFacing)state.getValue(PROPERTYFACING); int facingbits = facing.getHorizontalIndex(); return facingbits ; } @Override protected BlockState createBlockState() { return new BlockState(this, new IProperty[] {PROPERTYFACING}); } Don't just post copy-paste ready code. It doesn't help anybody and nobody learns anything from it. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.