aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/Features.java9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Abilities.java10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangFreezeCooldown.kt (renamed from src/main/java/at/hannibal2/skyhanni/features/abilities/AshfangFreezeCooldown.kt)2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt58
5 files changed, 79 insertions, 4 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
index 86b7c3f5b..4ee380890 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
@@ -11,7 +11,6 @@ import at.hannibal2.skyhanni.config.Features;
import at.hannibal2.skyhanni.config.gui.commands.Commands;
import at.hannibal2.skyhanni.damageindicator.BossDamageIndicator;
import at.hannibal2.skyhanni.dungeon.*;
-import at.hannibal2.skyhanni.features.abilities.AshfangFreezeCooldown;
import at.hannibal2.skyhanni.fishing.SeaCreatureManager;
import at.hannibal2.skyhanni.fishing.SeaCreatureMessageShortener;
import at.hannibal2.skyhanni.fishing.TrophyFishMessages;
@@ -20,6 +19,8 @@ import at.hannibal2.skyhanni.items.HideNotClickableItems;
import at.hannibal2.skyhanni.items.ItemDisplayOverlayFeatures;
import at.hannibal2.skyhanni.items.abilitycooldown.ItemAbilityCooldown;
import at.hannibal2.skyhanni.misc.*;
+import at.hannibal2.skyhanni.misc.nether.ashfang.AshfangFreezeCooldown;
+import at.hannibal2.skyhanni.misc.nether.ashfang.AshfangNextResetCooldown;
import at.hannibal2.skyhanni.repo.RepoManager;
import at.hannibal2.skyhanni.test.LorenzTest;
import com.google.gson.Gson;
@@ -84,6 +85,7 @@ public class SkyHanniMod {
registerEvent(new SeaCreatureMessageShortener());
// registerEvent(new GriffinBurrowFinder());
registerEvent(new AshfangFreezeCooldown());
+ registerEvent(new AshfangNextResetCooldown());
registerEvent(new SummoningSoulsName());
Commands.init();
diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java
index 00eaa6074..833cb8123 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/Features.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java
@@ -1,13 +1,13 @@
package at.hannibal2.skyhanni.config;
import at.hannibal2.skyhanni.SkyHanniMod;
+import at.hannibal2.skyhanni.config.features.*;
import at.hannibal2.skyhanni.config.gui.config.ConfigEditor;
import at.hannibal2.skyhanni.config.gui.core.GuiElement;
import at.hannibal2.skyhanni.config.gui.core.GuiScreenElementWrapper;
import at.hannibal2.skyhanni.config.gui.core.config.Position;
-import at.hannibal2.skyhanni.config.gui.core.config.annotations.*;
+import at.hannibal2.skyhanni.config.gui.core.config.annotations.Category;
import at.hannibal2.skyhanni.config.gui.core.config.gui.GuiPositionEditor;
-import at.hannibal2.skyhanni.config.features.*;
import com.google.gson.annotations.Expose;
import net.minecraft.client.Minecraft;
@@ -56,6 +56,11 @@ public class Features {
editOverlay(activeConfigCategory, 200, 16, abilities.ashfangFreezeCooldownPos);
return;
}
+
+ if (runnableId.equals("ashfangResetCooldown")) {
+ editOverlay(activeConfigCategory, 200, 16, abilities.ashfangNextResetCooldownPos);
+ return;
+ }
}
@Expose
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Abilities.java b/src/main/java/at/hannibal2/skyhanni/config/features/Abilities.java
index 73fb588ef..b723272c2 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Abilities.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Abilities.java
@@ -27,4 +27,14 @@ public class Abilities {
@ConfigOption(name = "Ashfang Freeze Position", desc = "")
@ConfigEditorButton(runnableId = "ashfangFreezeCooldown", buttonText = "Edit")
public Position ashfangFreezeCooldownPos = new Position(10, 10, false, true);
+
+ @Expose
+ @ConfigOption(name = "Ashfang Reset", desc = "Shows the cooldown until ashfang pulls his underlings back")
+ @ConfigEditorBoolean
+ public boolean ashfangNextResetCooldown = false;
+
+ @Expose
+ @ConfigOption(name = "Ashfang Reset Position", desc = "")
+ @ConfigEditorButton(runnableId = "ashfangResetCooldown", buttonText = "Edit")
+ public Position ashfangNextResetCooldownPos = new Position(10, 10, false, true);
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/abilities/AshfangFreezeCooldown.kt b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangFreezeCooldown.kt
index 5a5bdac0d..1a413d0bf 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/abilities/AshfangFreezeCooldown.kt
+++ b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangFreezeCooldown.kt
@@ -1,4 +1,4 @@
-package at.hannibal2.skyhanni.features.abilities
+package at.hannibal2.skyhanni.misc.nether.ashfang
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.events.LorenzChatEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt
new file mode 100644
index 000000000..41ad05908
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/misc/nether/ashfang/AshfangNextResetCooldown.kt
@@ -0,0 +1,58 @@
+package at.hannibal2.skyhanni.misc.nether.ashfang
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.utils.GuiRender.renderString
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import net.minecraft.client.Minecraft
+import net.minecraft.entity.item.EntityArmorStand
+import net.minecraftforge.client.event.RenderGameOverlayEvent
+import net.minecraftforge.event.world.WorldEvent
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import net.minecraftforge.fml.common.gameevent.TickEvent.ClientTickEvent
+import java.text.DecimalFormat
+
+class AshfangNextResetCooldown {
+
+ var spawnTime = 1L
+
+ @SubscribeEvent
+ fun renderOverlay(event: ClientTickEvent) {
+ if (!isEnabled()) return
+
+ if (spawnTime == -1L) {
+ val spawned = Minecraft.getMinecraft().theWorld.loadedEntityList.any {
+ it is EntityArmorStand && (it.name.contains("§c§8Ashfang Follower§r") ||
+ it.name.contains("§c§9Ashfang Acolyte§r") ||
+ it.name.contains("§c§cAshfang Underling§r"))
+ }
+ if (spawned) {
+ spawnTime = System.currentTimeMillis()
+ }
+ }
+ }
+
+ @SubscribeEvent
+ fun renderOverlay(event: RenderGameOverlayEvent.Post) {
+ if (!isEnabled()) return
+ if (spawnTime == -1L) return
+
+ val remainingTime = spawnTime + 45_000 - System.currentTimeMillis()
+
+ if (remainingTime > 0) {
+ val remaining = (remainingTime.toFloat() / 1000)
+ val format = DecimalFormat("0.0").format(remaining + 0.1)
+ SkyHanniMod.feature.abilities.ashfangNextResetCooldownPos.renderString("§cAshfang next reset in: §a${format}s")
+ } else {
+ spawnTime = -1
+ }
+ }
+
+ @SubscribeEvent
+ fun renderOverlay(event: WorldEvent.Load) {
+ spawnTime = -1
+ }
+
+ private fun isEnabled(): Boolean {
+ return LorenzUtils.inSkyblock && SkyHanniMod.feature.abilities.ashfangNextResetCooldown
+ }
+} \ No newline at end of file