From b2ed6e9b221ceeff23e768f3a8416f3383d1ab44 Mon Sep 17 00:00:00 2001 From: Yurii Shnitkovskyi Date: Fri, 6 Aug 2021 22:21:31 +0300 Subject: [PATCH 1/3] Fix small issues with forest capitator. Fixed extra damage to tool when iterating over non-log block. Fixed possibility of creating multiple chop tasks by applying cooldown --- src/main/java/gregtech/common/tools/ToolUtility.java | 2 ++ src/main/java/gregtech/common/tools/TreeChopTask.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/gregtech/common/tools/ToolUtility.java b/src/main/java/gregtech/common/tools/ToolUtility.java index 1225e6e445..35fa75a0bf 100644 --- a/src/main/java/gregtech/common/tools/ToolUtility.java +++ b/src/main/java/gregtech/common/tools/ToolUtility.java @@ -42,6 +42,8 @@ public static boolean applyTimberAxe(ItemStack itemStack, World world, BlockPos if(TreeChopTask.isLogBlock(blockState) == 1) { if(!world.isRemote) { EntityPlayerMP playerMP = (EntityPlayerMP) player; + if (playerMP.getCooldownTracker().hasCooldown(itemStack.getItem())) + return false; TreeChopTask treeChopTask = new TreeChopTask(blockPos, world, playerMP, itemStack); TaskScheduler.scheduleTask(world, treeChopTask); } diff --git a/src/main/java/gregtech/common/tools/TreeChopTask.java b/src/main/java/gregtech/common/tools/TreeChopTask.java index 1c0b359c8f..d49b28b93c 100644 --- a/src/main/java/gregtech/common/tools/TreeChopTask.java +++ b/src/main/java/gregtech/common/tools/TreeChopTask.java @@ -45,6 +45,7 @@ public TreeChopTask(BlockPos startPos, World world, EntityPlayerMP player, ItemS this.world = world; this.itemStack = toolStack.copy(); this.player = player; + player.getCooldownTracker().setCooldown(itemStack.getItem(),20); } @Override @@ -62,6 +63,8 @@ public boolean run() { if (toolValueItem == null) { return false; } + if (world.getTotalWorldTime() % 10 == 0) + player.getCooldownTracker().setCooldown(itemStack.getItem(),20); IToolStats toolStats = toolValueItem.getToolStats(); int damagePerBlockBreak = toolStats.getToolDamagePerBlockBreak(itemStack); @@ -117,7 +120,6 @@ private boolean tryBreakAny() { this.world.destroyBlock(woodPos, true); return true; } - return true; } return false; } From 1f7ddc859371b3244f6d7314efcc71e36d395d93 Mon Sep 17 00:00:00 2001 From: Yurii Shnitkovskyi Date: Fri, 6 Aug 2021 23:00:47 +0300 Subject: [PATCH 2/3] Fixed starting block not being added to visited --- src/main/java/gregtech/common/tools/TreeChopTask.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/gregtech/common/tools/TreeChopTask.java b/src/main/java/gregtech/common/tools/TreeChopTask.java index d49b28b93c..d592b63c40 100644 --- a/src/main/java/gregtech/common/tools/TreeChopTask.java +++ b/src/main/java/gregtech/common/tools/TreeChopTask.java @@ -42,6 +42,7 @@ public TreeChopTask(BlockPos startPos, World world, EntityPlayerMP player, ItemS this.startBlockPos = startPos.toImmutable(); this.currentPos.setPos(startPos); this.woodBlockPos.add(startPos.toImmutable()); + this.visitedBlockPos.add(startPos.toImmutable()); this.world = world; this.itemStack = toolStack.copy(); this.player = player; From fd2b86925814fa94edde026804d24d3c07a69344 Mon Sep 17 00:00:00 2001 From: Yurii Shnitkovskyi Date: Sat, 7 Aug 2021 11:30:42 +0300 Subject: [PATCH 3/3] Fix no space in setCooldown --- src/main/java/gregtech/common/tools/TreeChopTask.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/gregtech/common/tools/TreeChopTask.java b/src/main/java/gregtech/common/tools/TreeChopTask.java index d592b63c40..25d550a970 100644 --- a/src/main/java/gregtech/common/tools/TreeChopTask.java +++ b/src/main/java/gregtech/common/tools/TreeChopTask.java @@ -46,7 +46,7 @@ public TreeChopTask(BlockPos startPos, World world, EntityPlayerMP player, ItemS this.world = world; this.itemStack = toolStack.copy(); this.player = player; - player.getCooldownTracker().setCooldown(itemStack.getItem(),20); + player.getCooldownTracker().setCooldown(itemStack.getItem(), 20); } @Override @@ -65,7 +65,7 @@ public boolean run() { return false; } if (world.getTotalWorldTime() % 10 == 0) - player.getCooldownTracker().setCooldown(itemStack.getItem(),20); + player.getCooldownTracker().setCooldown(itemStack.getItem(), 20); IToolStats toolStats = toolValueItem.getToolStats(); int damagePerBlockBreak = toolStats.getToolDamagePerBlockBreak(itemStack);