aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/items
diff options
context:
space:
mode:
authorБатьків Нестор-Євген Васильович <mama040508@gmail.com>2023-12-26 23:08:33 +0200
committerGitHub <noreply@github.com>2023-12-26 22:08:33 +0100
commit064c46683f58fd8a981dd03c13cf92556a28656e (patch)
treefc0847e4c913b9557712acee0fe91f588aba5aa0 /src/main/java/gregtech/api/items
parent44e88e146c87774088c68686bdea130fe7dde78d (diff)
downloadGT5-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.java46
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));
}