diff options
3 files changed, 18 insertions, 6 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java index 3526fc716b..7a4286f638 100644 --- a/src/main/java/gregtech/api/interfaces/IItemBehaviour.java +++ b/src/main/java/gregtech/api/interfaces/IItemBehaviour.java @@ -1,6 +1,7 @@ package gregtech.api.interfaces; import java.util.List; +import java.util.Optional; import net.minecraft.dispenser.IBlockSource; import net.minecraft.entity.Entity; @@ -61,8 +62,8 @@ public interface IItemBehaviour<E extends Item> { List<String> getAdditionalToolTips(E aItem, List<String> aList, ItemStack aStack); - default List<String> getAdditionalToolTipsWhileSneaking(E aItem, List<String> aList, ItemStack aStack) { - return aList; + default Optional<List<String>> getAdditionalToolTipsWhileSneaking(E aItem, List<String> aList, ItemStack aStack) { + return Optional.empty(); } void onUpdate(E aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand); diff --git a/src/main/java/gregtech/api/items/MetaBaseItem.java b/src/main/java/gregtech/api/items/MetaBaseItem.java index 7369d5d1b2..c6751adb96 100644 --- a/src/main/java/gregtech/api/items/MetaBaseItem.java +++ b/src/main/java/gregtech/api/items/MetaBaseItem.java @@ -6,6 +6,7 @@ import static gregtech.api.util.GTUtility.formatNumbers; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; @@ -269,8 +270,14 @@ public abstract class MetaBaseItem extends GTGenericItem 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); + final Optional<List<String>> shiftTooltips = KeyboardUtil.isShiftKeyDown() + ? behavior.getAdditionalToolTipsWhileSneaking(this, aList, aStack) + : Optional.empty(); + if (shiftTooltips.isPresent()) { + aList = shiftTooltips.get(); + } else { + aList = behavior.getAdditionalToolTips(this, aList, aStack); + } } } diff --git a/src/main/java/gregtech/common/items/behaviors/BehaviourSprayColorInfinite.java b/src/main/java/gregtech/common/items/behaviors/BehaviourSprayColorInfinite.java index 7a625afc41..924d160f2d 100644 --- a/src/main/java/gregtech/common/items/behaviors/BehaviourSprayColorInfinite.java +++ b/src/main/java/gregtech/common/items/behaviors/BehaviourSprayColorInfinite.java @@ -4,6 +4,7 @@ import static gregtech.api.enums.GTValues.AuthorQuerns; import static net.minecraft.util.MovingObjectPosition.MovingObjectType.BLOCK; import java.util.List; +import java.util.Optional; import java.util.function.Consumer; import net.minecraft.entity.player.EntityPlayer; @@ -114,8 +115,10 @@ public class BehaviourSprayColorInfinite extends BehaviourSprayColor { } @Override - public List<String> getAdditionalToolTipsWhileSneaking(final MetaBaseItem aItem, final List<String> aList, + public Optional<List<String>> getAdditionalToolTipsWhileSneaking(final MetaBaseItem aItem, final List<String> aList, final ItemStack aStack) { + aList.add(StatCollector.translateToLocal("gt.behaviour.paintspray.infinite.tooltip.infinite")); + aList.add(mTooltipChain); aList.add(" "); aList.add(StatCollector.translateToLocal("gt.behaviour.paintspray.infinite.tooltip.switch")); aList.add(StatCollector.translateToLocal("gt.behaviour.paintspray.infinite.tooltip.gui")); @@ -123,7 +126,8 @@ public class BehaviourSprayColorInfinite extends BehaviourSprayColor { aList.add(StatCollector.translateToLocal("gt.behaviour.paintspray.infinite.tooltip.lock")); aList.add(" "); aList.add(AuthorQuerns); - return aList; + + return Optional.of(aList); } // endregion |