diff options
| author | iouter <62897714+iouter@users.noreply.github.com> | 2022-10-05 19:27:10 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-05 13:27:10 +0200 |
| commit | 3747917217697361c1a4ca4da679a1597ac03c04 (patch) | |
| tree | c655a84dc5395b0bc6df68e448d4371b13f437b3 /src/main/java/gregtech/common/items/behaviors | |
| parent | e9576a3a670267040abae4f908ffdce8b531a784 (diff) | |
| download | GT5-Unofficial-3747917217697361c1a4ca4da679a1597ac03c04.tar.gz GT5-Unofficial-3747917217697361c1a4ca4da679a1597ac03c04.tar.bz2 GT5-Unofficial-3747917217697361c1a4ca4da679a1597ac03c04.zip | |
Port pocket multitool from gt6 (#1435)
* Pocket Multitool
* :spotlessApply
* Revert ":spotlessApply"
This reverts commit f1421c537c25627bb3d56ddca4fa610d90b16b07.
* :spotlessApply again
Diffstat (limited to 'src/main/java/gregtech/common/items/behaviors')
| -rw-r--r-- | src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java new file mode 100644 index 0000000000..69e5cb8a81 --- /dev/null +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java @@ -0,0 +1,73 @@ +package gregtech.common.items.behaviors; + +import gregtech.api.items.GT_Generic_Block; +import gregtech.api.items.GT_MetaBase_Item; +import gregtech.api.util.GT_Util; +import gregtech.api.util.GT_Utility; +import java.util.List; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class Behaviour_Switch_Metadata extends Behaviour_None { + public final int mSwitchIndex; + public final boolean mCheckTarget, mShowModeSwitchTooltip; + + public Behaviour_Switch_Metadata(int aSwitchIndex) { + this(aSwitchIndex, false); + } + + public Behaviour_Switch_Metadata(int aSwitchIndex, boolean aCheckTarget) { + this(aSwitchIndex, aCheckTarget, false); + } + + public Behaviour_Switch_Metadata(int aSwitchIndex, boolean aCheckTarget, boolean aShowModeSwitchTooltip) { + mSwitchIndex = aSwitchIndex; + mCheckTarget = aCheckTarget; + mShowModeSwitchTooltip = aShowModeSwitchTooltip; + } + + @Override + public List<String> getAdditionalToolTips(GT_MetaBase_Item aItem, List<String> aList, ItemStack aStack) { + if (mShowModeSwitchTooltip) aList.add(GT_Utility.trans("330", "Sneak Rightclick to switch Mode")); + return aList; + } + + @Override + public boolean onItemUseFirst( + GT_MetaBase_Item aItem, + ItemStack aStack, + EntityPlayer aPlayer, + World aWorld, + int aX, + int aY, + int aZ, + int aSide, + float aHitX, + float aHitY, + float aHitZ) { + if (aStack != null && (aPlayer == null || aPlayer.isSneaking()) && !aWorld.isRemote) { + if (mCheckTarget) { + Block aBlock = aWorld.blockExists(aX, aY, aZ) ? aWorld.getBlock(aX, aY, aZ) : Blocks.air; + if (aBlock instanceof GT_Generic_Block) { + Items.feather.setDamage(aStack, (short) mSwitchIndex); + GT_Utility.updateItemStack(aStack); + return true; + } + if (GT_Util.getTileEntity(aWorld, aX, aY, aZ, true) == null) { + Items.feather.setDamage(aStack, (short) mSwitchIndex); + GT_Utility.updateItemStack(aStack); + return true; + } + return false; + } + Items.feather.setDamage(aStack, (short) mSwitchIndex); + GT_Utility.updateItemStack(aStack); + return true; + } + return false; + } +} |
