From 6fc12361e6eb2106ac7d654b1570c052ba0ae779 Mon Sep 17 00:00:00 2001 From: infiniteblock Date: Wed, 2 Feb 2022 17:49:59 +1300 Subject: [PATCH] Galacticraft Crash Fix Fix's a crash bug with Galacticraft blockstate when using Omni Tool. --- CHANGELOG.md | 8 ++++++-- src/main/java/matteroverdrive/items/weapon/OmniTool.java | 6 ++---- .../components/MatterNetworkComponentClient.java | 5 +---- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03aaad9..c4488e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,12 @@ MatterOverdrive - Changelog =========================== -0.7.5b2 (2022-01-29 21:01:19 +1300) ------------------------------------ +Unreleased +---------- +* OmniTool (infiniteblock) + +0.7.5Release (2022-01-29 21:01:19 +1300) +---------------------------------------- * Update CHANGELOG.md (infiniteblock) * Update RenderHandler.java (infiniteblock) * Fixes (infiniteblock) diff --git a/src/main/java/matteroverdrive/items/weapon/OmniTool.java b/src/main/java/matteroverdrive/items/weapon/OmniTool.java index 840954e..46fabce 100644 --- a/src/main/java/matteroverdrive/items/weapon/OmniTool.java +++ b/src/main/java/matteroverdrive/items/weapon/OmniTool.java @@ -107,23 +107,21 @@ public void onUsingTick(ItemStack stack, EntityLivingBase player, int count) { if (hit != null && hit.typeOfHit == RayTraceResult.Type.BLOCK) { IBlockState state = player.world.getBlockState(hit.getBlockPos()); + final float hardness = state.getPlayerRelativeBlockHardness((EntityPlayer) player, player.world, hit.getBlockPos()); boolean canMine = state.getBlock().canHarvestBlock(player.world, hit.getBlockPos(), (EntityPlayer) player); if (!state.getBlock().isAir(state, player.world, hit.getBlockPos()) && canMine) { ++STEP_SOUND_COUNTER; LAST_SIDE = hit.sideHit; if (isSameBlock(hit.getBlockPos())) { if (BLOCK_DAMAGE >= 1.0F) { - //this.isHittingBlock = false; MatterOverdrive.NETWORK.sendToServer(new PacketDigBlock(hit.getBlockPos(), PacketDigBlock.Type.HARVEST, hit.sideHit)); Minecraft.getMinecraft().playerController.onPlayerDestroyBlock(hit.getBlockPos()); BLOCK_DAMAGE = 0.0F; STEP_SOUND_COUNTER = 0.0F; - //this.blockHitDelay = 5; } else if (BLOCK_DAMAGE == 0) { MatterOverdrive.NETWORK.sendToServer(new PacketDigBlock(hit.getBlockPos(), PacketDigBlock.Type.CLICK, hit.sideHit)); } - - BLOCK_DAMAGE = MathHelper.clamp(modifyStatFromModules(WeaponStats.BLOCK_DAMAGE, stack, (BLOCK_DAMAGE + state.getPlayerRelativeBlockHardness((EntityPlayer) player, player.world, hit.getBlockPos()))*2), 0, 1); + BLOCK_DAMAGE = MathHelper.clamp(modifyStatFromModules(WeaponStats.BLOCK_DAMAGE, stack, (BLOCK_DAMAGE + hardness)*2), 0, 1); player.world.sendBlockBreakProgress(player.getEntityId(), hit.getBlockPos(), (int) (BLOCK_DAMAGE * 10)); } else { stopMiningLastBlock((EntityPlayer) player, player.world); diff --git a/src/main/java/matteroverdrive/matter_network/components/MatterNetworkComponentClient.java b/src/main/java/matteroverdrive/matter_network/components/MatterNetworkComponentClient.java index 187011a..602f9fc 100644 --- a/src/main/java/matteroverdrive/matter_network/components/MatterNetworkComponentClient.java +++ b/src/main/java/matteroverdrive/matter_network/components/MatterNetworkComponentClient.java @@ -263,7 +263,6 @@ protected void onAdded(MachineEvent.Added event) { } protected void onUnload(MachineEvent.Unload event) { - if (!getNodeWorld().isRemote) { if (!getNodeWorld().isRemote) { IBlockState blockState = getNodeWorld().getBlockState(getNodePos()); if (matterNetwork != null) { @@ -271,6 +270,4 @@ protected void onUnload(MachineEvent.Unload event) { } } } - } - -} +} \ No newline at end of file