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) {
|
if(skipDefaultDrops) {
|
||||||
// Emulate the block breaking without drops
|
// Emulate the block breaking without drops
|
||||||
world.setBlockToAir(x, y, z);
|
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) {
|
} else if(player instanceof EntityPlayerMP) {
|
||||||
// Break the block conventionally
|
// Break the block conventionally
|
||||||
ItemToolAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player);
|
ItemToolAbility.standardDigPost(world, x, y, z, (EntityPlayerMP) player);
|
||||||
@ -78,7 +79,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
|||||||
@Override
|
@Override
|
||||||
public void preHarvestAll(int level, World world, EntityPlayer player) {
|
public void preHarvestAll(int level, World world, EntityPlayer player) {
|
||||||
ItemStack stack = player.getHeldItem();
|
ItemStack stack = player.getHeldItem();
|
||||||
EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1);
|
if(stack != null) EnchantmentUtil.addEnchantment(stack, Enchantment.silkTouch, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -123,7 +124,7 @@ public interface IToolHarvestAbility extends IBaseAbility {
|
|||||||
@Override
|
@Override
|
||||||
public void preHarvestAll(int level, World world, EntityPlayer player) {
|
public void preHarvestAll(int level, World world, EntityPlayer player) {
|
||||||
ItemStack stack = player.getHeldItem();
|
ItemStack stack = player.getHeldItem();
|
||||||
EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]);
|
if(stack != null) EnchantmentUtil.addEnchantment(stack, Enchantment.fortune, powerAtLevel[level]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -292,14 +292,23 @@ public class ItemToolAbility extends ItemTool implements IDepthRockTool, IGUIPro
|
|||||||
Block block = world.getBlock(x, y, z);
|
Block block = world.getBlock(x, y, z);
|
||||||
int meta = world.getBlockMetadata(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;
|
return;
|
||||||
|
|
||||||
Block refBlock = world.getBlock(refX, refY, refZ);
|
Block refBlock = world.getBlock(refX, refY, refZ);
|
||||||
float refStrength = ForgeHooks.blockStrength(refBlock, player, world, refX, refY, refZ);
|
float refStrength = ForgeHooks.blockStrength(refBlock, player, world, refX, refY, refZ);
|
||||||
float strength = ForgeHooks.blockStrength(block, player, world, x, y, z);
|
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;
|
return;
|
||||||
|
|
||||||
BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, player.theItemInWorldManager.getGameType(), player, x, y, z);
|
BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, player.theItemInWorldManager.getGameType(), player, x, y, z);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user