diff options
Diffstat (limited to 'src/main/java/gregtech/api/items')
-rw-r--r-- | src/main/java/gregtech/api/items/GTGenericItem.java | 6 | ||||
-rw-r--r-- | src/main/java/gregtech/api/items/MetaBaseItem.java | 16 | ||||
-rw-r--r-- | src/main/java/gregtech/api/items/MetaGeneratedItem.java | 6 |
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] |