|
| 1 | + |
| 2 | +package nekiplay.meteorplus.mixin.minecraft.hud; |
| 3 | +import meteordevelopment.meteorclient.MeteorClient; |
| 4 | +import nekiplay.main.events.hud.*; |
| 5 | +import net.minecraft.client.gui.DrawContext; |
| 6 | +import net.minecraft.client.gui.hud.InGameHud; |
| 7 | +import net.minecraft.client.render.RenderTickCounter; |
| 8 | +import net.minecraft.entity.player.PlayerEntity; |
| 9 | +import org.spongepowered.asm.mixin.Mixin; |
| 10 | +import org.spongepowered.asm.mixin.injection.At; |
| 11 | +import org.spongepowered.asm.mixin.injection.Inject; |
| 12 | +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; |
| 13 | +@Mixin(InGameHud.class) |
| 14 | +public class InGameHudMixin { |
| 15 | + @Inject(method = "renderHealthBar", at = @At("HEAD"), cancellable = true) |
| 16 | + private void onRenderHealthBar(DrawContext context, PlayerEntity player, int x, int y, int lines, int regeneratingHeartIndex, float maxHealth, int lastHealth, int health, int absorption, boolean blinking, CallbackInfo ci) { |
| 17 | + RenderHealthBarEvent healthBarRenderEvent = RenderHealthBarEvent.get(context, player, x, y, lines, regeneratingHeartIndex, maxHealth, lastHealth, health, absorption, blinking); |
| 18 | + MeteorClient.EVENT_BUS.post(healthBarRenderEvent); |
| 19 | + if (healthBarRenderEvent.isCancelled()) { |
| 20 | + ci.cancel(); |
| 21 | + } |
| 22 | + } |
| 23 | + @Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true) |
| 24 | + private void onRenderExperienceBar(DrawContext context, int x, CallbackInfo ci) { |
| 25 | + RenderExperienceBarEvent renderExperienceBarEvent = RenderExperienceBarEvent.get(context, x); |
| 26 | + MeteorClient.EVENT_BUS.post(renderExperienceBarEvent); |
| 27 | + if (renderExperienceBarEvent.isCancelled()) { |
| 28 | + ci.cancel(); |
| 29 | + } |
| 30 | + } |
| 31 | + @Inject(method = "renderExperienceLevel", at = @At("HEAD"), cancellable = true) |
| 32 | + private void onRenderExperienceBar(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci) { |
| 33 | + RenderExperienceLevelEvent renderExperienceLevelEvent = RenderExperienceLevelEvent.get(context, tickCounter); |
| 34 | + MeteorClient.EVENT_BUS.post(renderExperienceLevelEvent); |
| 35 | + if (renderExperienceLevelEvent.isCancelled()) { |
| 36 | + ci.cancel(); |
| 37 | + } |
| 38 | + } |
| 39 | + @Inject(method = "renderFood", at = @At("HEAD"), cancellable = true) |
| 40 | + private void onRenderFoodBar(DrawContext context, PlayerEntity player, int top, int right, CallbackInfo ci) { |
| 41 | + RenderFoodBarEvent renderFoodBarEvent = RenderFoodBarEvent.get(context, player, top, right); |
| 42 | + MeteorClient.EVENT_BUS.post(renderFoodBarEvent); |
| 43 | + if (renderFoodBarEvent.isCancelled()) { |
| 44 | + ci.cancel(); |
| 45 | + } |
| 46 | + } |
| 47 | + @Inject(method = "renderArmor", at = @At("HEAD"), cancellable = true) |
| 48 | + private static void onRenderArmor(DrawContext context, PlayerEntity player, int i, int j, int k, int x, CallbackInfo ci) { |
| 49 | + RenderArmorBarEvent renderArmorBarEvent = RenderArmorBarEvent.get(context, player, i, j, k, x); |
| 50 | + MeteorClient.EVENT_BUS.post(renderArmorBarEvent); |
| 51 | + if (renderArmorBarEvent.isCancelled()) { |
| 52 | + ci.cancel(); |
| 53 | + } |
| 54 | + } |
| 55 | + @Inject(method = "renderMountHealth", at = @At("HEAD"), cancellable = true) |
| 56 | + private void onRenderMountHealth(DrawContext context, CallbackInfo ci) { |
| 57 | + RenderMountHealthBarEvent renderMountHealthBarEvent = RenderMountHealthBarEvent.get(context); |
| 58 | + MeteorClient.EVENT_BUS.post(renderMountHealthBarEvent); |
| 59 | + if (renderMountHealthBarEvent.isCancelled()) { |
| 60 | + ci.cancel(); |
| 61 | + } |
| 62 | + } |
| 63 | +} |
0 commit comments