aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/items
diff options
context:
space:
mode:
authoriouter <62897714+iouter@users.noreply.github.com>2022-10-05 19:27:10 +0800
committerGitHub <noreply@github.com>2022-10-05 13:27:10 +0200
commit3747917217697361c1a4ca4da679a1597ac03c04 (patch)
treec655a84dc5395b0bc6df68e448d4371b13f437b3 /src/main/java/gregtech/common/items
parente9576a3a670267040abae4f908ffdce8b531a784 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java78
-rw-r--r--src/main/java/gregtech/common/items/behaviors/Behaviour_Switch_Metadata.java73
2 files changed, 151 insertions, 0 deletions
diff --git a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
index 29ea0d94ab..b2fb154339 100644
--- a/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
+++ b/src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
@@ -6,6 +6,7 @@ import gregtech.api.items.GT_MetaGenerated_Tool;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.common.tools.*;
+import gregtech.common.tools.pocket.*;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@@ -73,6 +74,14 @@ public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool {
@Deprecated
public static final short TURBINE_BLADE = 178;
+ public static final short POCKET_MULTITOOL = 180;
+ public static final short POCKET_BRANCHCUTTER = 182;
+ public static final short POCKET_FILE = 184;
+ public static final short POCKET_KNIFE = 186;
+ public static final short POCKET_SAW = 188;
+ public static final short POCKET_SCREWDRIVER = 190;
+ public static final short POCKET_WIRECUTTER = 192;
+
public static GT_MetaGenerated_Tool_01 INSTANCE;
public GT_MetaGenerated_Tool_01() {
@@ -491,6 +500,75 @@ public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool {
addTool(TURBINE_LARGE, "Large Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Large());
addTool(TURBINE_HUGE, "Huge Turbine", "Turbine Rotors for your power station", new GT_Tool_Turbine_Huge());
+ addTool(
+ POCKET_MULTITOOL,
+ "Pocket Multitool",
+ "6 useful Tools in one!",
+ new GT_Tool_Pocket_Multitool(POCKET_KNIFE),
+ null,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ addTool(
+ POCKET_KNIFE,
+ "Pocket Multitool (Knife)",
+ "",
+ new GT_Tool_Pocket_Knife(POCKET_SAW),
+ ToolDictNames.craftingToolKnife,
+ ToolDictNames.craftingToolBlade,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ addTool(
+ POCKET_SAW,
+ "Pocket Multitool (Saw)",
+ "Can also harvest Ice",
+ new GT_Tool_Pocket_Saw(POCKET_FILE),
+ ToolDictNames.craftingToolSaw,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ addTool(
+ POCKET_FILE,
+ "Pocket Multitool (File)",
+ "",
+ new GT_Tool_Pocket_File(POCKET_SCREWDRIVER),
+ ToolDictNames.craftingToolFile,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+ GregTech_API.registerTool(
+ addTool(
+ POCKET_SCREWDRIVER,
+ "Pocket Multitool (Screwdriver)",
+ "Adjusts Covers and Machines",
+ new GT_Tool_Pocket_Screwdriver(POCKET_WIRECUTTER),
+ ToolDictNames.craftingToolScrewdriver,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3)),
+ GregTech_API.sScrewdriverList);
+ GregTech_API.registerTool(
+ addTool(
+ POCKET_WIRECUTTER,
+ "Pocket Multitool (Wire Cutter)",
+ "",
+ new GT_Tool_Pocket_WireCutter(POCKET_BRANCHCUTTER),
+ ToolDictNames.craftingToolWireCutter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3)),
+ GregTech_API.sWireCutterList);
+ addTool(
+ POCKET_BRANCHCUTTER,
+ "Pocket Multitool (Branch Cutter)",
+ "",
+ new GT_Tool_Pocket_BranchCutter(POCKET_MULTITOOL),
+ ToolDictNames.craftingToolBranchCutter,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 6),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.FABRICO, 3),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 3));
+
GT_ModHandler.addCraftingRecipe(
INSTANCE.getToolWithStats(MORTAR, 1, Materials.Flint, Materials.Stone, null),
GT_ModHandler.RecipeBits.NOT_REMOVABLE,
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;
+ }
+}