Posted July 31, 20169 yr Hi, I would like to set Hardness for my block depending on its current variant. Previously I used this code : @Override public float getBlockHardness(World world, BlockPos pos) { IBlockState bs = world.getBlockState(pos); // Vanilla Bug Fix @author JeffryFisher boolean alreadyBroken = (bs.getBlock() == Blocks.AIR); float default_h = super.blockHardness; if (alreadyBroken) return default_h; switch (this.getMetaFromState(bs)) { case 0: return 3.0F; case 1: return 4.5F; default: return default_h; } } @Override public float getPlayerRelativeBlockHardness(EntityPlayer playerIn, World worldIn, BlockPos pos) { float default_f = ForgeHooks.blockStrength(worldIn.getBlockState(pos), playerIn, worldIn, pos); ItemStack s = playerIn.getCurrentEquippedItem(); if (s != null) { boolean canHarvest = ForgeHooks .canToolHarvestBlock(worldIn, pos, s); if (!canHarvest) { return default_f / 3; } } return default_f; } Now it has somehow moved to the IBlockState level, but I don't know how I could set it. An idea ?
July 31, 20169 yr Author Thank you. This is the most stupid and confusing thing I have ever seen in a while. It explains a lot of what I have seen elsewhere in the source.
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.