Combit/src/main/java/io/gitlab/jfronny/combit/mixin/InGameHudMixin.java

38 lines
1.6 KiB
Java

package io.gitlab.jfronny.combit.mixin;
import io.gitlab.jfronny.combit.Combit;
import io.gitlab.jfronny.combit.config.AttackDelay;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.options.AttackIndicator;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(InGameHud.class)
public class InGameHudMixin {
@Shadow @Final private MinecraftClient client;
private AttackIndicator combit_a;
@Inject(at = @At("HEAD"), method = "renderCrosshair(Lnet/minecraft/client/util/math/MatrixStack;)V")
private void renderCrosshair(MatrixStack matrices, CallbackInfo info) {
AttackDelay attackDelay = Combit.getCfg().attackDelay;
if (attackDelay.enable && attackDelay.cooldownProgressOverride >= 0) {
combit_a = this.client.options.attackIndicator;
this.client.options.attackIndicator = AttackIndicator.OFF;
}
}
@Inject(at = @At("RETURN"), method = "renderCrosshair(Lnet/minecraft/client/util/math/MatrixStack;)V")
private void renderCrosshairPost(MatrixStack matrices, CallbackInfo info) {
AttackDelay attackDelay = Combit.getCfg().attackDelay;
if (attackDelay.enable && attackDelay.cooldownProgressOverride >= 0) {
this.client.options.attackIndicator = combit_a;
}
}
}