From 89039bbfbc4d186e97c1fee6eb809d75b4e4bd3a Mon Sep 17 00:00:00 2001 From: Kevin <92656833+kevinthegreat1@users.noreply.github.com> Date: Fri, 19 Apr 2024 18:06:46 -0400 Subject: Prevent teammates glow during Livid (#652) Add DungeonBoss and prevent teammates glow during Livid --- .../java/de/hysky/skyblocker/mixin/WorldRendererMixin.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java') diff --git a/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java b/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java index 42601546..b0829942 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.mixin; +import de.hysky.skyblocker.skyblock.dungeon.LividColor; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyVariable; @@ -12,17 +13,22 @@ import com.llamalad7.mixinextras.sugar.ref.LocalBooleanRef; import de.hysky.skyblocker.skyblock.entity.MobGlow; import net.minecraft.client.render.WorldRenderer; import net.minecraft.entity.Entity; +import org.spongepowered.asm.mixin.injection.Slice; @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$shouldMobGlow(boolean original, @Local Entity entity, @Share("hasCustomGlow") LocalBooleanRef hasCustomGlow) { + boolean allowGlow = LividColor.allowGlow(); boolean shouldGlow = MobGlow.shouldMobGlow(entity); hasCustomGlow.set(shouldGlow); - return original || shouldGlow; + return allowGlow && original || shouldGlow; } - @ModifyVariable(method = "render", at = @At("STORE"), ordinal = 0) + @ModifyVariable(method = "render", + slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;hasOutline(Lnet/minecraft/entity/Entity;)Z"), to = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/OutlineVertexConsumerProvider;setColor(IIII)V")), + at = @At("STORE"), ordinal = 0 + ) private int skyblocker$modifyGlowColor(int color, @Local Entity entity, @Share("hasCustomGlow") LocalBooleanRef hasCustomGlow) { return hasCustomGlow.get() ? MobGlow.getGlowColor(entity) : color; } -- cgit