diff options
author | Батьків Нестор-Євген Васильович <mama040508@gmail.com> | 2023-12-26 23:08:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-26 22:08:33 +0100 |
commit | 064c46683f58fd8a981dd03c13cf92556a28656e (patch) | |
tree | fc0847e4c913b9557712acee0fe91f588aba5aa0 /src/main/java/gregtech/api/items | |
parent | 44e88e146c87774088c68686bdea130fe7dde78d (diff) | |
download | GT5-Unofficial-064c46683f58fd8a981dd03c13cf92556a28656e.tar.gz GT5-Unofficial-064c46683f58fd8a981dd03c13cf92556a28656e.tar.bz2 GT5-Unofficial-064c46683f58fd8a981dd03c13cf92556a28656e.zip |
Add modes to tools (#2423)
* Add tool modes change
* Deprecate! Deprecate! Deprecate!
* Add mode to item name
* Opsie
* Byte 8 bit
* Add enum
* Spotless
* Types types types!!!! God I love types
* Make it trigger when player clicks midair
* update deps + fix wci
---------
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/api/items')
-rw-r--r-- | src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index ecbea37697..acf62e0661 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -30,6 +30,7 @@ import net.minecraft.stats.StatList; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; +import net.minecraft.util.StatCollector; import net.minecraft.world.World; import net.minecraftforge.common.IShearable; import net.minecraftforge.event.entity.player.PlayerEvent; @@ -148,6 +149,27 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item return false; } + public static final boolean setToolMode(ItemStack aStack, byte aMode) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null) { + aNBT.setByte("Mode", aMode); + return true; + } + } + return false; + } + + public static final byte getToolMode(ItemStack aStack) { + NBTTagCompound aNBT = aStack.getTagCompound(); + if (aNBT != null) { + aNBT = aNBT.getCompoundTag("GT.ToolStats"); + if (aNBT != null) return aNBT.getByte("Mode"); + } + return 0; + } + /** * This adds a Custom Item to the ending Range. * @@ -204,6 +226,7 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item IToolStats tToolStats = getToolStats(rStack); if (tToolStats != null) { NBTTagCompound tMainNBT = new NBTTagCompound(), tToolNBT = new NBTTagCompound(); + tToolNBT.setByte("Mode", (byte) 0); if (aPrimaryMaterial != null) { tToolNBT.setString("PrimaryMaterial", aPrimaryMaterial.mName); tToolNBT.setLong( @@ -719,6 +742,14 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item return getToolStatsInternal(aStack); } + public byte getToolMaxMode(ItemStack aStack) { + IToolStats stats = getToolStats(aStack); + if (stats != null) { + return stats.getMaxMode(); + } + return 1; + } + private IToolStats getToolStatsInternal(ItemStack aStack) { return aStack == null ? null : mToolStats.get((short) aStack.getItemDamage()); } @@ -905,6 +936,21 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item } @Override + public String getItemStackDisplayName(ItemStack aStack) { + + String result = super.getItemStackDisplayName(aStack); + IToolStats toolStats = getToolStats(aStack); + if (toolStats != null) { + String key = "gt." + toolStats.getToolTypeName() + ".mode." + getToolMode(aStack); + if (StatCollector.canTranslate(key)) { + result += " (" + StatCollector.translateToLocal(key) + ")"; + } + } + return result; + + } + + @Override public short getChargedMetaData(ItemStack aStack) { return (short) (aStack.getItemDamage() - (aStack.getItemDamage() % 2)); } |