Jump to content

[1.8]Custom Rendered Block Rotation?


DirtyDan_

Recommended Posts

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!

 

 

 

Link to comment
Share on other sites

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/

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.