Koward Posted July 31, 2016 Posted July 31, 2016 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 ? Quote
Koward Posted July 31, 2016 Author Posted July 31, 2016 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. Quote
Recommended Posts
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.