aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tools
diff options
context:
space:
mode:
authorMinepolz320 <42765118+Minepolz320@users.noreply.github.com>2024-01-28 01:45:22 +0500
committerGitHub <noreply@github.com>2024-01-27 21:45:22 +0100
commitef3f46cf4db9bda97529de32a805c8015ad40452 (patch)
treefea4b0b19faed6f2c41f5832a3a4969e19a7c540 /src/main/java/gregtech/common/tools
parent3516447b38cbb435a5844c6b35cfe1b21b943815 (diff)
downloadGT5-Unofficial-ef3f46cf4db9bda97529de32a805c8015ad40452.tar.gz
GT5-Unofficial-ef3f46cf4db9bda97529de32a805c8015ad40452.tar.bz2
GT5-Unofficial-ef3f46cf4db9bda97529de32a805c8015ad40452.zip
GT Tool Fixes and ore balance config (#2453)
* Fixes/balance config Fixes that the ax and saw do not break ladders - ability to toggle ore multipliers for ore Nether and End - sneaking with a scythe/plow allows you to break only 1 block * Fix copy paste typo * Revert "Allow tools to break stuff with a lower harvest level (#2435)" This reverts commit ba1a9b290a09e39b100ff8d9f1f5e70cdc3f0fab.
Diffstat (limited to 'src/main/java/gregtech/common/tools')
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Axe.java6
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Plow.java39
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Saw.java3
-rw-r--r--src/main/java/gregtech/common/tools/GT_Tool_Sense.java40
4 files changed, 62 insertions, 26 deletions
diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Axe.java b/src/main/java/gregtech/common/tools/GT_Tool_Axe.java
index 787803911b..c54ebac3c9 100644
--- a/src/main/java/gregtech/common/tools/GT_Tool_Axe.java
+++ b/src/main/java/gregtech/common/tools/GT_Tool_Axe.java
@@ -6,6 +6,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
@@ -94,7 +95,8 @@ public class GT_Tool_Axe extends GT_Tool {
@Override
public boolean isMinableBlock(Block aBlock, byte aMetaData) {
return GT_ToolHarvestHelper.isAppropriateTool(aBlock, aMetaData, "axe")
- || GT_ToolHarvestHelper.isAppropriateMaterial(aBlock, Material.wood);
+ || GT_ToolHarvestHelper.isAppropriateMaterial(aBlock, Material.wood)
+ || GT_ToolHarvestHelper.isSpecialBlock(aBlock, Blocks.ladder);
}
@Override
@@ -118,6 +120,7 @@ public class GT_Tool_Axe extends GT_Tool {
@Override
public float getMiningSpeed(Block aBlock, byte aMetaData, float aDefault, EntityPlayer aPlayer, World aWorld,
int aX, int aY, int aZ) {
+
if (aBlock.isWood(aPlayer.worldObj, aX, aY, aZ)
&& OrePrefixes.log.contains(new ItemStack(aBlock, 1, aMetaData))) {
float rAmount = 1.0F;
@@ -132,6 +135,7 @@ public class GT_Tool_Axe extends GT_Tool {
}
return 2.0F * aDefault / rAmount;
}
+
return (aBlock.getMaterial() == Material.leaves) || (aBlock.getMaterial() == Material.vine)
|| (aBlock.getMaterial() == Material.plants)
|| (aBlock.getMaterial() == Material.gourd) ? aDefault / 4.0F : aDefault;
diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Plow.java b/src/main/java/gregtech/common/tools/GT_Tool_Plow.java
index 341239c128..b6f4be25b5 100644
--- a/src/main/java/gregtech/common/tools/GT_Tool_Plow.java
+++ b/src/main/java/gregtech/common/tools/GT_Tool_Plow.java
@@ -13,6 +13,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
+import net.minecraft.world.World;
import net.minecraftforge.event.world.BlockEvent;
import gregtech.api.interfaces.IIconContainer;
@@ -41,27 +42,41 @@ public class GT_Tool_Plow extends GT_Tool {
}
@Override
+ public float getMiningSpeed(Block aBlock, byte aMetaData, float aDefault, EntityPlayer aPlayer, World worldObj,
+ int aX, int aY, int aZ) {
+ // Speed nerf for using AOE tools to break single block
+ if (aPlayer != null && aPlayer.isSneaking()) {
+ return aDefault / 2;
+ }
+ return super.getMiningSpeed(aBlock, aMetaData, aDefault, aPlayer, worldObj, aX, aY, aZ);
+ }
+
+ @Override
public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX,
int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) {
int rConversions = 0;
if ((this.sIsHarvestingRightNow.get() == null) && ((aPlayer instanceof EntityPlayerMP))) {
this.sIsHarvestingRightNow.set(this);
- for (int i = -1; i < 2; i++) {
- for (int j = -1; j < 2; j++) {
- for (int k = -1; k < 2; k++) {
- if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem()
- .getDigSpeed(
- aStack,
- aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k),
- aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k))
- > 0.0F)
- && (((EntityPlayerMP) aPlayer).theItemInWorldManager
- .tryHarvestBlock(aX + i, aY + j, aZ + k))) {
- rConversions++;
+
+ if (!aPlayer.isSneaking()) {
+ for (int i = -1; i < 2; i++) {
+ for (int j = -1; j < 2; j++) {
+ for (int k = -1; k < 2; k++) {
+ if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem()
+ .getDigSpeed(
+ aStack,
+ aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k),
+ aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k))
+ > 0.0F)
+ && (((EntityPlayerMP) aPlayer).theItemInWorldManager
+ .tryHarvestBlock(aX + i, aY + j, aZ + k))) {
+ rConversions++;
+ }
}
}
}
}
+
this.sIsHarvestingRightNow.set(null);
}
return rConversions;
diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Saw.java b/src/main/java/gregtech/common/tools/GT_Tool_Saw.java
index 204fbc4aae..b2c85e2a5e 100644
--- a/src/main/java/gregtech/common/tools/GT_Tool_Saw.java
+++ b/src/main/java/gregtech/common/tools/GT_Tool_Saw.java
@@ -110,7 +110,8 @@ public class GT_Tool_Saw extends GT_Tool {
Material.wood,
Material.cactus,
Material.ice,
- Material.packedIce);
+ Material.packedIce)
+ || GT_ToolHarvestHelper.isSpecialBlock(aBlock, Blocks.ladder);
}
@Override
diff --git a/src/main/java/gregtech/common/tools/GT_Tool_Sense.java b/src/main/java/gregtech/common/tools/GT_Tool_Sense.java
index f5d3f7147a..013c0f800c 100644
--- a/src/main/java/gregtech/common/tools/GT_Tool_Sense.java
+++ b/src/main/java/gregtech/common/tools/GT_Tool_Sense.java
@@ -11,6 +11,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IChatComponent;
+import net.minecraft.world.World;
import net.minecraftforge.event.world.BlockEvent;
import gregtech.api.interfaces.IIconContainer;
@@ -39,27 +40,41 @@ public class GT_Tool_Sense extends GT_Tool {
}
@Override
+ public float getMiningSpeed(Block aBlock, byte aMetaData, float aDefault, EntityPlayer aPlayer, World worldObj,
+ int aX, int aY, int aZ) {
+ // Speed nerf for using AOE tools to break single block
+ if (aPlayer != null && aPlayer.isSneaking()) {
+ return aDefault / 2;
+ }
+ return super.getMiningSpeed(aBlock, aMetaData, aDefault, aPlayer, worldObj, aX, aY, aZ);
+ }
+
+ @Override
public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX,
int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent) {
int rConversions = 0;
if ((this.sIsHarvestingRightNow.get() == null) && ((aPlayer instanceof EntityPlayerMP))) {
this.sIsHarvestingRightNow.set(this);
- for (int i = -2; i < 3; i++) {
- for (int j = -2; j < 3; j++) {
- for (int k = -2; k < 3; k++) {
- if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem()
- .getDigSpeed(
- aStack,
- aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k),
- aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k))
- > 0.0F)
- && (((EntityPlayerMP) aPlayer).theItemInWorldManager
- .tryHarvestBlock(aX + i, aY + j, aZ + k))) {
- rConversions++;
+
+ if (!aPlayer.isSneaking()) {
+ for (int i = -2; i < 3; i++) {
+ for (int j = -2; j < 3; j++) {
+ for (int k = -2; k < 3; k++) {
+ if (((i != 0) || (j != 0) || (k != 0)) && (aStack.getItem()
+ .getDigSpeed(
+ aStack,
+ aPlayer.worldObj.getBlock(aX + i, aY + j, aZ + k),
+ aPlayer.worldObj.getBlockMetadata(aX + i, aY + j, aZ + k))
+ > 0.0F)
+ && (((EntityPlayerMP) aPlayer).theItemInWorldManager
+ .tryHarvestBlock(aX + i, aY + j, aZ + k))) {
+ rConversions++;
+ }
}
}
}
}
+
this.sIsHarvestingRightNow.set(null);
}
return rConversions;
@@ -95,4 +110,5 @@ public class GT_Tool_Sense extends GT_Tool {
+ aEntity.getCommandSenderName()
+ EnumChatFormatting.WHITE);
}
+
}