aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/mixin/WorldRendererMixin.java
diff options
context:
space:
mode:
authorAaron <51387595+AzureAaron@users.noreply.github.com>2023-08-30 21:26:21 -0400
committerGitHub <noreply@github.com>2023-08-30 21:26:21 -0400
commit44819b6eda32ec3dee637396c94f62bf0bcb0adc (patch)
treee3d1295c9cab1bd1b18abf1f1737c7155720fc4b /src/main/java/me/xmrvizzy/skyblocker/mixin/WorldRendererMixin.java
parentb20a3ed531d40ed7963f9eb3cbe4a0202e01e5c6 (diff)
downloadSkyblocker-44819b6eda32ec3dee637396c94f62bf0bcb0adc.tar.gz
Skyblocker-44819b6eda32ec3dee637396c94f62bf0bcb0adc.tar.bz2
Skyblocker-44819b6eda32ec3dee637396c94f62bf0bcb0adc.zip
Starred Mob Glow (#260)
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/mixin/WorldRendererMixin.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/mixin/WorldRendererMixin.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/WorldRendererMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/WorldRendererMixin.java
new file mode 100644
index 00000000..3b796c38
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/WorldRendererMixin.java
@@ -0,0 +1,33 @@
+package me.xmrvizzy.skyblocker.mixin;
+
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.ModifyVariable;
+
+import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
+import com.llamalad7.mixinextras.sugar.Local;
+import com.llamalad7.mixinextras.sugar.Share;
+import com.llamalad7.mixinextras.sugar.ref.LocalBooleanRef;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.skyblock.dungeon.StarredMobGlow;
+import net.minecraft.client.render.WorldRenderer;
+import net.minecraft.entity.Entity;
+
+@Mixin(WorldRenderer.class)
+public class WorldRendererMixin {
+
+ @ModifyExpressionValue(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;hasOutline(Lnet/minecraft/entity/Entity;)Z"))
+ private boolean skyblocker$shouldStarredMobGlow(boolean original, @Local Entity entity, @Share("isGlowingStarredMob") LocalBooleanRef isGlowingStarredMob) {
+ boolean isAStarredMobThatShouldGlow = SkyblockerConfig.get().locations.dungeons.starredMobGlow && StarredMobGlow.shouldMobGlow(entity);
+
+ isGlowingStarredMob.set(isAStarredMobThatShouldGlow);
+
+ return original || isAStarredMobThatShouldGlow;
+ }
+
+ @ModifyVariable(method = "render", at = @At("STORE"), ordinal = 0)
+ private int skyblocker$modifyGlowColor(int color, @Local Entity entity, @Share("isGlowingStarredMob") LocalBooleanRef isGlowingStarredMob) {
+ return isGlowingStarredMob.get() ? StarredMobGlow.getGlowColor(entity) : color;
+ }
+}