Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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!

 

 

 

>.>

you need to use blockPos now, onBlockPlacedBy uses world, BlockPos, EntityLivingBase, ItemStack

 

getTileEntity, markBlockForUpdate also require BlockPos

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?

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.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.