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 --- .../api/metatileentity/BaseMetaTileEntity.java | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/main/java/gregtech/api/metatileentity') diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index 57a55fc17e..a7236e164d 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -27,6 +27,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; import net.minecraft.world.EnumSkyBlock; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -1696,6 +1697,31 @@ public class BaseMetaTileEntity extends CommonMetaTileEntity dropCover(coverSide, side, false); } return true; + } else if (GT_Utility.isStackInList(tCurrentItem, GregTech_API.sJackhammerList)) { + // Configuration of delicate electronics calls for a tool with precision and subtlety. + if (GT_ModHandler.damageOrDechargeItem(tCurrentItem, 1, 1000, aPlayer)) { + final CoverInfo info = getCoverInfoAtSide(coverSide); + if (info != CoverInfo.EMPTY_INFO) { + final GT_CoverBehaviorBase behavior = info.getCoverBehavior(); + if (behavior.allowsTickRateAddition()) { + info.onCoverJackhammer(aPlayer); + GT_Utility.sendSoundToPlayers( + worldObj, + SoundResource.IC2_TOOLS_DRILL_DRILL_SOFT, + 1.0F, + 1, + xCoord, + yCoord, + zCoord); + + } else { + GT_Utility.sendChatToPlayer( + aPlayer, + StatCollector.translateToLocal("gt.cover.info.chat.tick_rate_not_allowed")); + } + return true; + } + } } } // End item != null -- cgit