diff options
author | Minepolz320 <42765118+Minepolz320@users.noreply.github.com> | 2024-01-28 01:45:22 +0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-27 21:45:22 +0100 |
commit | ef3f46cf4db9bda97529de32a805c8015ad40452 (patch) | |
tree | fea4b0b19faed6f2c41f5832a3a4969e19a7c540 /src/main/java/gregtech/common/tools | |
parent | 3516447b38cbb435a5844c6b35cfe1b21b943815 (diff) | |
download | GT5-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')
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); } + } |