diff options
author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2024-04-20 00:22:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-20 00:22:24 -0400 |
commit | 3c5707db06e5dd2938062eee1cceb3e8824225a9 (patch) | |
tree | 9ca1bf01eff5bfb833f6e9f7cfd42402a2798207 /src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java | |
parent | 89039bbfbc4d186e97c1fee6eb809d75b4e4bd3a (diff) | |
download | Skyblocker-3c5707db06e5dd2938062eee1cceb3e8824225a9.tar.gz Skyblocker-3c5707db06e5dd2938062eee1cceb3e8824225a9.tar.bz2 Skyblocker-3c5707db06e5dd2938062eee1cceb3e8824225a9.zip |
Starred Mob Boxes (#647)
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java b/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java index b0829942..a24daa80 100644 --- a/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixin/WorldRendererMixin.java @@ -3,13 +3,16 @@ 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.Inject; import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 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 de.hysky.skyblocker.skyblock.entity.MobBoundingBoxes; import de.hysky.skyblocker.skyblock.entity.MobGlow; import net.minecraft.client.render.WorldRenderer; import net.minecraft.entity.Entity; @@ -17,6 +20,7 @@ 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(); @@ -32,4 +36,13 @@ public class WorldRendererMixin { private int skyblocker$modifyGlowColor(int color, @Local Entity entity, @Share("hasCustomGlow") LocalBooleanRef hasCustomGlow) { return hasCustomGlow.get() ? MobGlow.getGlowColor(entity) : color; } + + @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;renderEntity(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;)V")) + private void skyblocker$beforeEntityIsRendered(CallbackInfo ci, @Local Entity entity) { + boolean shouldShowBoundingBox = MobBoundingBoxes.shouldDrawMobBoundingBox(entity); + + if (shouldShowBoundingBox) { + MobBoundingBoxes.submitBox2BeRendered(entity.getBoundingBox(), MobBoundingBoxes.getBoxColor(entity)); + } + } } |