From dff250c6d32156270b9a39137346a2b3767cb4a2 Mon Sep 17 00:00:00 2001 From: querns <33518699+querns@users.noreply.github.com> Date: Mon, 9 Oct 2023 09:55:31 -0500 Subject: Allows covers to be configured to tick more slowly (#2307) * Right clicking covers with a jackhammer will now make them tick more slowly * Interim commit, switching tasks * Finishes tick rate button in cover UIs * Change tick rate multiplier to a tick rate addition * Missed one number in the multiplier -> addition conversion * Hold Ctrl to adjust tick rate by 5 steps per click, move button closer to corner of cover GUI * Adjust how holding Ctrl computes tick rate change, remove gray formatting option for tick rate formatter * Cover tick rate addition can now be prevented per-cover-behavior, minor code tweaks --- .../common/items/GT_MetaGenerated_Tool_01.java | 20 +++++++++++--------- .../common/items/behaviors/Behaviour_Cover_Tool.java | 10 ++++++++++ 2 files changed, 21 insertions(+), 9 deletions(-) (limited to 'src/main/java/gregtech/common/items') 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 f7d9bbb236..14af94d70e 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 @@ -443,15 +443,17 @@ public class GT_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool { new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 4L), new TC_Aspects.TC_AspectStack(TC_Aspects.ORDO, 2L)), GregTech_API.sWrenchList); - addTool( - JACKHAMMER, - "JackHammer (HV)", - "Breaks Rocks into pieces", - new GT_Tool_JackHammer(), - ToolDictNames.craftingToolJackHammer, - new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 2L), - new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L)); + GregTech_API.registerTool( + addTool( + JACKHAMMER, + "JackHammer (HV)", + "Breaks Rocks into pieces", + new GT_Tool_JackHammer(), + ToolDictNames.craftingToolJackHammer, + new TC_Aspects.TC_AspectStack(TC_Aspects.MACHINA, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERFODIO, 2L), + new TC_Aspects.TC_AspectStack(TC_Aspects.PERDITIO, 2L)), + GregTech_API.sJackhammerList); addTool( BUZZSAW_LV, "Buzzsaw (LV)", diff --git a/src/main/java/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java b/src/main/java/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java index 5688872796..4241e07e4b 100644 --- a/src/main/java/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java +++ b/src/main/java/gregtech/common/items/behaviors/Behaviour_Cover_Tool.java @@ -31,6 +31,7 @@ public class Behaviour_Cover_Tool extends Behaviour_None { private ISerializableObject mStoredData = GregTech_API.sNoBehavior.createDataObject(); private int mCoverType; + private int mTickRateAddition = 0; @Override public boolean onItemUseFirst(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, @@ -65,6 +66,7 @@ public class Behaviour_Cover_Tool extends Behaviour_None { NBTBase tData = aNBT.getTag("mCoverData"); if (tData != null) mStoredData = tBehavior.createDataObject(tData); else mStoredData = GregTech_API.sNoBehavior.createDataObject(); + mTickRateAddition = aNBT.hasKey("mTickRateAddition") ? aNBT.getInteger("mTickRateAddition") : 0; } } @@ -72,6 +74,7 @@ public class Behaviour_Cover_Tool extends Behaviour_None { aNBT.setInteger("mCoverType", mCoverType); if (mStoredData == null) mStoredData = GregTech_API.sNoBehavior.createDataObject(); aNBT.setTag("mCoverData", mStoredData.saveDataToNBT()); + aNBT.setInteger("mTickRateAddition", mTickRateAddition); } @SuppressWarnings("rawtypes") @@ -116,6 +119,8 @@ public class Behaviour_Cover_Tool extends Behaviour_None { .allowsCopyPasteTool()) { mStoredData = tCoverable.getComplexCoverDataAtSide(tSide); mCoverType = tCoverable.getCoverIDAtSide(tSide); + mTickRateAddition = tCoverable.getCoverInfoAtSide(tSide) + .getTickRateAddition(); aList.add("Block Side: " + EnumChatFormatting.AQUA + tSide.name() + EnumChatFormatting.RESET); aList.add( @@ -126,16 +131,19 @@ public class Behaviour_Cover_Tool extends Behaviour_None { } else { mStoredData = GregTech_API.sNoBehavior.createDataObject(); mCoverType = 0; + mTickRateAddition = 0; aList.add("Copy unavailable for this cover type"); } } else { mStoredData = GregTech_API.sNoBehavior.createDataObject(); mCoverType = 0; + mTickRateAddition = 0; aList.add("No Cover Found"); } } else { mStoredData = GregTech_API.sNoBehavior.createDataObject(); mCoverType = 0; + mTickRateAddition = 0; aList.add("No Cover Found"); } } @@ -155,6 +163,8 @@ public class Behaviour_Cover_Tool extends Behaviour_None { int tCoverID = tCoverable.getCoverIDAtSide(tSide); if (tCoverID == mCoverType) { tCoverable.setCoverDataAtSide(tSide, mStoredData); + tCoverable.getCoverInfoAtSide(tSide) + .setTickRateAddition(mTickRateAddition); GT_Utility.sendChatToPlayer(aPlayer, "Cover Data Pasted."); } else { GT_Utility.sendChatToPlayer(aPlayer, "Not Matched Cover."); -- cgit