aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md3
-rw-r--r--FEATURES.md4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Misc.java12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/HideDeadEntities.kt36
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinBlockFire.java20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityFireball.java20
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.java19
-rw-r--r--src/main/resources/mixins.skyhanni.json2
11 files changed, 104 insertions, 24 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bbe16cf0c..48aa8535a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,9 @@
+ Added highlight for stuff that is missing in the skyblock level guide inventory.
+ Added Bingo Card display.
+ **Minion Craft Helper** - Show how many more items you need to upgrade the minion in your inventory. Especially useful for bingo.
++ Hide dead entities - Similar to Skytil's feature for inside dungeon, but for everywhere.
++ Hide Fireball particles and hide Fire Block particles.
++ Made **blaze slayer clear view** work with more particles.
## Version 0.15.1 (2023-01-25)
diff --git a/FEATURES.md b/FEATURES.md
index bcc869fe2..2ba4dda6b 100644
--- a/FEATURES.md
+++ b/FEATURES.md
@@ -172,4 +172,6 @@
- Crimson Isle Reputation Helper.
- Red Scoreboard Numbers - Hides the red numbers in the scoreboard sidebar on the right side of the screen.
+ **Tia Relay Waypoint** - Show the next Relay waypoint for Tia The Fairy, where maintenance for the abiphone network needs to be done.
-+ **Tia Relay Helper** - Helps with solving the sound puzzle. \ No newline at end of file
++ **Tia Relay Helper** - Helps with solving the sound puzzle.
++ **Hide dead entities** - Similar to Skytil's feature for inside dungeon, but for everywhere.
++ Hide Fireball particles and hide Fire Block particles. \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
index e4b190fe2..1b93a00ad 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
@@ -37,7 +37,10 @@ import at.hannibal2.skyhanni.features.slayer.EndermanSlayerBeacon;
import at.hannibal2.skyhanni.features.slayer.HideMobNames;
import at.hannibal2.skyhanni.features.slayer.HighlightSlayerMiniBoss;
import at.hannibal2.skyhanni.features.slayer.SlayerQuestWarning;
-import at.hannibal2.skyhanni.features.slayer.blaze.*;
+import at.hannibal2.skyhanni.features.slayer.blaze.BlazeSlayerClearView;
+import at.hannibal2.skyhanni.features.slayer.blaze.BlazeSlayerDaggerHelper;
+import at.hannibal2.skyhanni.features.slayer.blaze.BlazeSlayerFirePitsWarning;
+import at.hannibal2.skyhanni.features.slayer.blaze.HellionShieldHelper;
import at.hannibal2.skyhanni.features.summonings.SummoningMobManager;
import at.hannibal2.skyhanni.features.summonings.SummoningSoulsName;
import at.hannibal2.skyhanni.mixins.hooks.RenderLivingEntityHelper;
@@ -185,6 +188,7 @@ public class SkyHanniMod {
loadModule(new BingoCardDisplay());
loadModule(new BingoNextStepHelper());
loadModule(new MinionCraftHelper());
+ loadModule(new HideDeadEntities());
Commands.INSTANCE.init();
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
index 1e7d9f07c..ea51e129e 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Misc.java
@@ -172,11 +172,21 @@ public class Misc {
public boolean hideExpBottles = false;
@Expose
- @ConfigOption(name = "Blaze Particles", desc = "Hide Blaze Particles")
+ @ConfigOption(name = "Blaze Particles", desc = "Hide blaze particles")
@ConfigEditorBoolean
public boolean hideBlazeParticles = false;
@Expose
+ @ConfigOption(name = "Fireball Particles", desc = "Hide fireball particles")
+ @ConfigEditorBoolean
+ public boolean hideFireballParticles = false;
+
+ @Expose
+ @ConfigOption(name = "Fire Particles", desc = "Hide particles from the fire block.")
+ @ConfigEditorBoolean
+ public boolean hideFireBlockParticles = false;
+
+ @Expose
@ConfigOption(name = "Collection Counter Position", desc = "Tracking the number of items you collect. §cDoes not work with sacks.")
@ConfigEditorButton(runnableId = "collectionCounter", buttonText = "Edit")
public Position collectionCounterPos = new Position(10, 10, false, true);
diff --git a/src/main/java/at/hannibal2/skyhanni/features/misc/HideDeadEntities.kt b/src/main/java/at/hannibal2/skyhanni/features/misc/HideDeadEntities.kt
new file mode 100644
index 000000000..e4a29513f
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/misc/HideDeadEntities.kt
@@ -0,0 +1,36 @@
+package at.hannibal2.skyhanni.features.misc
+
+import at.hannibal2.skyhanni.events.CheckRenderEntityEvent
+import at.hannibal2.skyhanni.events.EntityHealthUpdateEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class HideDeadEntities {
+ private val hiddenEntities = mutableListOf<Int>()
+
+ @SubscribeEvent
+ fun onEntityHealthUpdate(event: EntityHealthUpdateEvent) {
+ val entityId = event.entity.entityId
+
+ if (event.health <= 0) {
+ if (!hiddenEntities.contains(entityId)) {
+ hiddenEntities.add(entityId)
+// LorenzUtils.chat("died: ${event.entity.name}")
+ }
+ } else {
+ if (hiddenEntities.contains(entityId)) {
+ hiddenEntities.remove(entityId)
+ LorenzUtils.debug("respawned: ${event.entity.name}")
+ }
+ }
+ }
+
+ @SubscribeEvent
+ fun onCheckRender(event: CheckRenderEntityEvent<*>) {
+ if (!LorenzUtils.inSkyBlock) return
+
+ if (hiddenEntities.contains(event.entity.entityId)) {
+ event.isCanceled = true
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
index 43c17ec5a..9c220bea9 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerClearView.kt
@@ -34,7 +34,7 @@ class BlazeSlayerClearView {
BossType.SLAYER_BLAZE_QUAZII_2,
BossType.SLAYER_BLAZE_QUAZII_3,
BossType.SLAYER_BLAZE_QUAZII_4,
- ) < 10
+ ) < 20
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinBlockFire.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinBlockFire.java
new file mode 100644
index 000000000..0d043ad0d
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinBlockFire.java
@@ -0,0 +1,20 @@
+package at.hannibal2.skyhanni.mixins.transformers;
+
+import at.hannibal2.skyhanni.SkyHanniMod;
+import net.minecraft.block.BlockFire;
+import net.minecraft.util.EnumParticleTypes;
+import net.minecraft.world.World;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(BlockFire.class)
+public class MixinBlockFire {
+
+ @Redirect(method = "randomDisplayTick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;spawnParticle(Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V"))
+ private void onLivingUpdate(World world, EnumParticleTypes particleType, double x, double y, double z, double xOffset, double yOffset, double zOffset, int[] p_175688_14_) {
+ if (!SkyHanniMod.feature.misc.hideFireBlockParticles) {
+ world.spawnParticle(particleType, x, y, z, xOffset, yOffset, zOffset, p_175688_14_);
+ }
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java
index d041a8b69..60dd87e83 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityBlaze.java
@@ -12,9 +12,9 @@ import org.spongepowered.asm.mixin.injection.Redirect;
public class MixinEntityBlaze {
@Redirect(method = "onLivingUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;spawnParticle(Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V"))
- private void onLivingUpdate(World instance, EnumParticleTypes particleType, double xCoord, double yCoord, double zCoord, double xOffset, double yOffset, double zOffset, int[] p_175688_14_) {
+ private void onLivingUpdate(World world, EnumParticleTypes particleType, double x, double y, double z, double xOffset, double yOffset, double zOffset, int[] p_175688_14_) {
if (!SkyHanniMod.feature.misc.hideBlazeParticles) {
- instance.spawnParticle(particleType, xCoord, yCoord, zCoord, xOffset, yOffset, zOffset, p_175688_14_);
+ world.spawnParticle(particleType, x, y, z, xOffset, yOffset, zOffset, p_175688_14_);
}
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityFireball.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityFireball.java
new file mode 100644
index 000000000..1783cd791
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinEntityFireball.java
@@ -0,0 +1,20 @@
+package at.hannibal2.skyhanni.mixins.transformers;
+
+import at.hannibal2.skyhanni.SkyHanniMod;
+import net.minecraft.entity.projectile.EntityFireball;
+import net.minecraft.util.EnumParticleTypes;
+import net.minecraft.world.World;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(EntityFireball.class)
+public class MixinEntityFireball {
+
+ @Redirect(method = "onUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;spawnParticle(Lnet/minecraft/util/EnumParticleTypes;DDDDDD[I)V"))
+ private void onLivingUpdate(World world, EnumParticleTypes particleType, double x, double y, double z, double xOffset, double yOffset, double zOffset, int[] p_175688_14_) {
+ if (!SkyHanniMod.feature.misc.hideFireballParticles) {
+ world.spawnParticle(particleType, x, y, z, xOffset, yOffset, zOffset, p_175688_14_);
+ }
+ }
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.java b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.java
index 1085f6c7f..d85da40df 100644
--- a/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.java
+++ b/src/main/java/at/hannibal2/skyhanni/mixins/transformers/MixinRenderManager.java
@@ -9,28 +9,11 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
-import java.util.HashMap;
-import java.util.UUID;
-
@Mixin(RenderManager.class)
public class MixinRenderManager {
- private final HashMap<UUID, Long> lastColorCacheTime = new HashMap<>();
- private final HashMap<UUID, Boolean> cache = new HashMap<>();
-
@Inject(method = "shouldRender", at = @At("HEAD"), cancellable = true)
private void shouldRender(Entity entity, ICamera camera, double camX, double camY, double camZ, CallbackInfoReturnable<Boolean> cir) {
- UUID uuid = entity.getUniqueID();
- boolean shouldRender;
- if (lastColorCacheTime.getOrDefault(uuid, 0L) + 1_000 > System.currentTimeMillis()) {
- shouldRender = cache.get(uuid);
- } else {
- shouldRender = !new CheckRenderEntityEvent<>(entity, camera, camX, camY, camZ).postAndCatch();
-
- cache.put(uuid, shouldRender);
- lastColorCacheTime.put(uuid, System.currentTimeMillis());
- }
-
- cir.setReturnValue(shouldRender);
+ cir.setReturnValue(!new CheckRenderEntityEvent<>(entity, camera, camX, camY, camZ).postAndCatch());
}
}
diff --git a/src/main/resources/mixins.skyhanni.json b/src/main/resources/mixins.skyhanni.json
index 7fe2496a2..b501d3dc1 100644
--- a/src/main/resources/mixins.skyhanni.json
+++ b/src/main/resources/mixins.skyhanni.json
@@ -4,7 +4,9 @@
"compatibilityLevel": "JAVA_8",
"mixins": [
"AccessorGuiPlayerTabOverlay",
+ "MixinBlockFire",
"MixinEntityBlaze",
+ "MixinEntityFireball",
"MixinNetHandlerPlayClient",
"MixinNetworkManager",
"MixinRenderItem",