aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/items
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/items')
-rw-r--r--src/main/java/gregtech/api/items/GTGenericItem.java6
-rw-r--r--src/main/java/gregtech/api/items/MetaBaseItem.java16
-rw-r--r--src/main/java/gregtech/api/items/MetaGeneratedItem.java6
3 files changed, 24 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/items/GTGenericItem.java b/src/main/java/gregtech/api/items/GTGenericItem.java
index 4f0994bb12..5febfcc173 100644
--- a/src/main/java/gregtech/api/items/GTGenericItem.java
+++ b/src/main/java/gregtech/api/items/GTGenericItem.java
@@ -151,7 +151,11 @@ public class GTGenericItem extends Item implements IProjectileItem {
@Override
public ItemStack dispenseStack(IBlockSource aSource, ItemStack aStack) {
- return ((GTGenericItem) aStack.getItem()).onDispense(aSource, aStack);
+ final GTGenericItem item = (GTGenericItem) aStack.getItem();
+ if (item != null) {
+ return item.onDispense(aSource, aStack);
+ }
+ return aStack;
}
@Override
diff --git a/src/main/java/gregtech/api/items/MetaBaseItem.java b/src/main/java/gregtech/api/items/MetaBaseItem.java
index 32e4bba392..fa47043fcc 100644
--- a/src/main/java/gregtech/api/items/MetaBaseItem.java
+++ b/src/main/java/gregtech/api/items/MetaBaseItem.java
@@ -24,6 +24,8 @@ import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidContainerItem;
+import com.gtnewhorizons.modularui.api.KeyboardUtil;
+
import gregtech.api.enums.SubTag;
import gregtech.api.interfaces.IItemBehaviour;
import gregtech.api.util.GTLanguageManager;
@@ -123,6 +125,10 @@ public abstract class MetaBaseItem extends GTGenericItem
return forEachBehavior(aStack, behavior -> behavior.onLeftClick(this, aStack, aPlayer));
}
+ public boolean onMiddleClick(ItemStack aStack, EntityPlayer aPlayer) {
+ return forEachBehavior(aStack, behavior -> behavior.onMiddleClick(this, aStack, aPlayer));
+ }
+
@Override
public boolean onLeftClickEntity(ItemStack aStack, EntityPlayer aPlayer, Entity aEntity) {
use(aStack, 0, aPlayer);
@@ -260,9 +266,13 @@ public abstract class MetaBaseItem extends GTGenericItem
"" + formatNumbers(tStats[0])) + EnumChatFormatting.GRAY);
}
- ArrayList<IItemBehaviour<MetaBaseItem>> tList = mItemBehaviors.get((short) getDamage(aStack));
- if (tList != null) for (IItemBehaviour<MetaBaseItem> tBehavior : tList)
- aList = tBehavior.getAdditionalToolTips(this, aList, aStack);
+ ArrayList<IItemBehaviour<MetaBaseItem>> behaviours = mItemBehaviors.get((short) getDamage(aStack));
+ if (behaviours != null) {
+ for (IItemBehaviour<MetaBaseItem> behavior : behaviours) {
+ aList = !KeyboardUtil.isShiftKeyDown() ? behavior.getAdditionalToolTips(this, aList, aStack)
+ : behavior.getAdditionalToolTipsWhileSneaking(this, aList, aStack);
+ }
+ }
addAdditionalToolTips(aList, aStack, aPlayer);
}
diff --git a/src/main/java/gregtech/api/items/MetaGeneratedItem.java b/src/main/java/gregtech/api/items/MetaGeneratedItem.java
index 449b1ced24..0d8c1f1b32 100644
--- a/src/main/java/gregtech/api/items/MetaGeneratedItem.java
+++ b/src/main/java/gregtech/api/items/MetaGeneratedItem.java
@@ -244,6 +244,12 @@ public abstract class MetaGeneratedItem extends MetaBaseItem implements IGT_Item
return this;
}
+ @SuppressWarnings("UnusedReturnValue")
+ public final MetaGeneratedItem setSubIcons(int metaValue, int length) {
+ mIconList[metaValue] = Arrays.copyOf(mIconList[metaValue], length + 1);
+ return this;
+ }
+
/**
*
* @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765]