From 57349b5921f09b8438fffa2222e316b1134f5765 Mon Sep 17 00:00:00 2001 From: River <34910888+CommandrMoose@users.noreply.github.com> Date: Thu, 2 May 2024 20:36:32 +1000 Subject: [PATCH] Slower and Improved generation times (#240) --- .../common/capability/upgrades/Upgrades.java | 8 +++++++ .../control/flight/HandbrakeControl.java | 2 +- .../tardis/manager/TardisInteriorManager.java | 22 ++++++++++++++++++- .../common/data/LangProviderEnglish.java | 3 +++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/whocraft/tardis_refined/common/capability/upgrades/Upgrades.java b/common/src/main/java/whocraft/tardis_refined/common/capability/upgrades/Upgrades.java index e6aa0a4f6..754ce5a4f 100644 --- a/common/src/main/java/whocraft/tardis_refined/common/capability/upgrades/Upgrades.java +++ b/common/src/main/java/whocraft/tardis_refined/common/capability/upgrades/Upgrades.java @@ -3,6 +3,7 @@ import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Blocks; import whocraft.tardis_refined.TardisRefined; @@ -34,6 +35,13 @@ public class Upgrades { public static final RegistrySupplier INSIDE_ARCHITECTURE = UPGRADE_DEFERRED_REGISTRY.register("inside_architecture", () -> new Upgrade(TRBlockRegistry.TERRAFORMER_BLOCK.get().asItem()::getDefaultInstance, ARCHITECTURE_SYSTEM, RegistryHelper.makeKey("inside_architecture"), Upgrade.UpgradeType.SUB_UPGRADE) .setSkillPointsRequired(20).setPosition(4, 2)); + public static final RegistrySupplier IMPROVED_GENERATION_TIME_I = UPGRADE_DEFERRED_REGISTRY.register("improved_generation_time_i", () -> new Upgrade(Items.TURTLE_EGG::getDefaultInstance, INSIDE_ARCHITECTURE, RegistryHelper.makeKey("improved_generation_time_i"), Upgrade.UpgradeType.SUB_UPGRADE) + .setSkillPointsRequired(10).setPosition(4, 3)); + public static final RegistrySupplier IMPROVED_GENERATION_TIME_II = UPGRADE_DEFERRED_REGISTRY.register("improved_generation_time_ii", () -> new Upgrade(Items.RABBIT_FOOT::getDefaultInstance, IMPROVED_GENERATION_TIME_I, RegistryHelper.makeKey("improved_generation_time_ii"), Upgrade.UpgradeType.SUB_UPGRADE) + .setSkillPointsRequired(10).setPosition(4, 4)); + public static final RegistrySupplier IMPROVED_GENERATION_TIME_III = UPGRADE_DEFERRED_REGISTRY.register("improved_generation_time_iii", () -> new Upgrade(Items.MINECART::getDefaultInstance, IMPROVED_GENERATION_TIME_II, RegistryHelper.makeKey("improved_generation_time_iii"), Upgrade.UpgradeType.SUB_UPGRADE) + .setSkillPointsRequired(10).setPosition(4, 5)); + // Defense Upgrades public static final RegistrySupplier DEFENSE_SYSTEM = UPGRADE_DEFERRED_REGISTRY.register("defense_system", () -> new Upgrade(Items.DIAMOND_SWORD::getDefaultInstance, TARDIS_XP, RegistryHelper.makeKey("defense_system"), Upgrade.UpgradeType.MAIN_UPGRADE) .setSkillPointsRequired(1).setPosition(1, 1)); diff --git a/common/src/main/java/whocraft/tardis_refined/common/tardis/control/flight/HandbrakeControl.java b/common/src/main/java/whocraft/tardis_refined/common/tardis/control/flight/HandbrakeControl.java index 48f8bba5d..05433655d 100644 --- a/common/src/main/java/whocraft/tardis_refined/common/tardis/control/flight/HandbrakeControl.java +++ b/common/src/main/java/whocraft/tardis_refined/common/tardis/control/flight/HandbrakeControl.java @@ -31,7 +31,7 @@ public boolean onLeftClick(TardisLevelOperator operator, ConsoleTheme theme, Con } operator.getPilotingManager().setHandbrakeOn(true); - PlayerUtil.sendMessage(player, Component.translatable(ModMessages.HANDBRAKE).append(operator.getPilotingManager().isHandbrakeOn() ? ModMessages.HANDBRAKE_ENGAGED : ModMessages.HANDBRAKE_DISENGAGED ), true); + PlayerUtil.sendMessage(player, Component.translatable(operator.getPilotingManager().isHandbrakeOn() ? ModMessages.HANDBRAKE_ENGAGED : ModMessages.HANDBRAKE_DISENGAGED), true); return true; } diff --git a/common/src/main/java/whocraft/tardis_refined/common/tardis/manager/TardisInteriorManager.java b/common/src/main/java/whocraft/tardis_refined/common/tardis/manager/TardisInteriorManager.java index ade3c81db..8abd6f113 100644 --- a/common/src/main/java/whocraft/tardis_refined/common/tardis/manager/TardisInteriorManager.java +++ b/common/src/main/java/whocraft/tardis_refined/common/tardis/manager/TardisInteriorManager.java @@ -22,6 +22,8 @@ import whocraft.tardis_refined.common.blockentity.door.BulkHeadDoorBlockEntity; import whocraft.tardis_refined.common.blockentity.door.TardisInternalDoor; import whocraft.tardis_refined.common.capability.TardisLevelOperator; +import whocraft.tardis_refined.common.capability.upgrades.UpgradeHandler; +import whocraft.tardis_refined.common.capability.upgrades.Upgrades; import whocraft.tardis_refined.common.hum.HumEntry; import whocraft.tardis_refined.common.hum.TardisHums; import whocraft.tardis_refined.common.protection.ProtectedZone; @@ -384,7 +386,25 @@ public BlockPos getCorridorAirlockCenter() { public void prepareDesktop(DesktopTheme theme) { this.preparedTheme = theme; this.isWaitingToGenerate = true; - this.interiorGenerationCooldown = 1200; // Make this more independent. + + // Cooldown based on upgrades + int cooldownSeconds = 180; + + UpgradeHandler upgradeHandler = this.operator.getUpgradeHandler(); + + if (upgradeHandler.isUpgradeUnlocked(Upgrades.IMPROVED_GENERATION_TIME_I.get())) { + cooldownSeconds = 120; + } + + if (upgradeHandler.isUpgradeUnlocked(Upgrades.IMPROVED_GENERATION_TIME_II.get())) { + cooldownSeconds = 30; + } + + if (upgradeHandler.isUpgradeUnlocked(Upgrades.IMPROVED_GENERATION_TIME_III.get())) { + cooldownSeconds = 10; + } + + this.interiorGenerationCooldown = 20 * cooldownSeconds; } public void cancelDesktopChange() { diff --git a/forge/src/main/java/whocraft/tardis_refined/common/data/LangProviderEnglish.java b/forge/src/main/java/whocraft/tardis_refined/common/data/LangProviderEnglish.java index 92b360493..1b461964b 100644 --- a/forge/src/main/java/whocraft/tardis_refined/common/data/LangProviderEnglish.java +++ b/forge/src/main/java/whocraft/tardis_refined/common/data/LangProviderEnglish.java @@ -248,6 +248,9 @@ protected void addTranslations() { addUpgrade(Upgrades.EXPLORER_III.get(), "Explorer III", "x5000 Increment"); addUpgrade(Upgrades.DIMENSION_TRAVEL.get(), "Inter-Dimensional Travel", "Allows the TARDIS to move between dimensions"); addUpgrade(Upgrades.LANDING_PAD.get(), "Landing Pad", "Allows the TARDIS to be summoned to a landing pad"); + addUpgrade(Upgrades.IMPROVED_GENERATION_TIME_I.get(), "Improved Generation I", "Lowers desktop wait times to 120 seconds"); + addUpgrade(Upgrades.IMPROVED_GENERATION_TIME_II.get(), "Improved Generation II", "Lowers desktop wait times to 60 seconds"); + addUpgrade(Upgrades.IMPROVED_GENERATION_TIME_III.get(), "Improved Generation III", "Lowers desktop wait times to 10 seconds"); }