mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge pull request #2259 from abel1502/abel-abilities-fix
Fix ItemToolAbility bedrock breaking
This commit is contained in:
commit
b3983f7fb8
@ -37,7 +37,8 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
||||
if(skipDefaultDrops) {
|
||||
// Emulate the block breaking without drops
|
||||
world.setBlockToAir(x, y, z);
|
||||
player.getHeldItem().damageItem(1, player);
|
||||
ItemStack stack = player.getHeldItem();
|
||||
if(stack != null) stack.damageItem(1, player);
|
||||
} else if(player instanceof EntityPlayerMP) {
|
||||
// Break the block conventionally
|
||||
ItemToolAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player);
|
||||
@ -78,7 +79,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
||||
@Override
|
||||
public void preHarvestAll(int level, World world, EntityPlayer player) {
|
||||
ItemStack stack = player.getHeldItem();
|
||||
EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1);
|
||||
if(stack != null) EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -123,7 +124,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
||||
@Override
|
||||
public void preHarvestAll(int level, World world, EntityPlayer player) {
|
||||
ItemStack stack = player.getHeldItem();
|
||||
EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]);
|
||||
if(stack != null) EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -292,14 +292,23 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
||||
Block block = world.getBlock(x, y, z);
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock || block == ModBlocks.stone_keyhole)
|
||||
if(!(
|
||||
canHarvestBlock(block, stack) ||
|
||||
canShearBlock(block, stack, world, x, y, z)) ||
|
||||
block.getPlayerRelativeBlockHardness(player, world, x, y, z) < 0 ||
|
||||
block == ModBlocks.stone_keyhole
|
||||
)
|
||||
return;
|
||||
|
||||
Block refBlock = world.getBlock(refX, refY, refZ);
|
||||
float refStrength = ForgeHooks.blockStrength(refBlock, player, world, refX, refY, refZ);
|
||||
float strength = ForgeHooks.blockStrength(block, player, world, x, y, z);
|
||||
|
||||
if(!ForgeHooks.canHarvestBlock(block, player, meta) || refStrength / strength > 10f || refBlock.getPlayerRelativeBlockHardness(player, world, refX, refY, refZ) < 0)
|
||||
if(
|
||||
!ForgeHooks.canHarvestBlock(block, player, meta) ||
|
||||
refStrength / strength > 10f ||
|
||||
refBlock.getPlayerRelativeBlockHardness(player, world, refX, refY, refZ) < 0
|
||||
)
|
||||
return;
|
||||
|
||||
BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, player.theItemInWorldManager.getGameType(), player, x, y, z);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user