Posted January 19, 201510 yr I want to know if there is a code which detects the way player is looking, so i can make something like this: onblockplaced if player is looking at north(-180 in minecraft) then setboundingbox else if player is looking at south... etc. any ideas? Thing I love most in this forum, is that when you ask for help, moderators don't give you ready code, you have to figure it out yourself.
January 20, 201510 yr Author I have this problem, when I place block facing one direction bounding box works perfectly, but if another one is placed(other direction) it changes first ones too... and also after reloading the game, bounding box is set to the default(1F). I'm using this code public static ForgeDirection getFacing(Entity entity){ int dir = MathHelper.floor_double((entity.rotationYaw * 4 / 360) + 0.5) & 3; return ForgeDirection.VALID_DIRECTIONS[Direction.directionToFacing[dir]]; } public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemstack) { int l = MathHelper.floor_double((double)(player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; int dir = MathHelper.floor_double((player.rotationYaw * 4 / 360) + 0.5) & 3; world.setBlockMetadataWithNotify(x, y, z, l, 2); System.out.println(l); if(getFacing(player) == ForgeDirection.EAST){ setBlockBounds(0.625F, 0F, 0.625F, 0.875F, 0.1875F, 0.875F); }else if(getFacing(player) == ForgeDirection.NORTH){ setBlockBounds(0.625F, 0F, 0.125F, 0.875F, 0.1875F, 0.375F); }else if(getFacing(player) == ForgeDirection.SOUTH){ setBlockBounds(0.125F, 0F, 0.625F, 0.375F, 0.1875F, 0.875F); }else if(getFacing(player) == ForgeDirection.WEST){ setBlockBounds(0.125F, 0F, 0.125F, 0.375F, 0.1875F, 0.375F); } } I've tried using setblockmetadatawithnotify (stairs use that) but nothing... anyone? Thing I love most in this forum, is that when you ask for help, moderators don't give you ready code, you have to figure it out yourself.
January 20, 201510 yr Don't use setBlockBounds directly - use the player's facing to determine the metadata for the block, like many vanilla blocks do (e.g. furnace), then override setBlockBoundsBasedOnState and use setBlockBounds in there based on the block's metadata. Look at some vanilla blocks and it should make sense. http://i.imgur.com/NdrFdld.png[/img]
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.