HTTPS
https://git.nageyqma.icu/nageyqma/blade-addons-next.git
SSH
git@git.nageyqma.icu:nageyqma/blade-addons-next.git
HTTPS 链接可直接 git clone;推送代码请使用 SSH。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
package blade.addon.features.dungeon.f7.invincibility;
import blade.addon.utils.Misc;
import blade.addon.utils.config.values.Dungeons;
import blade.addon.utils.events.Events;
import blade.addon.utils.rendering.RenderUtils;
import config.practical.hud.HUDCategory;
import config.practical.hud.HUDComponent;
import net.minecraft.client.gui.GuiGraphicsExtractor;
import org.jspecify.annotations.NonNull;
import java.util.List;
public class InvincibilityDuration extends HUDComponent {
private static final int MAX_DURATION = 3 * 20;
private int ticks = 0;
public InvincibilityDuration() {
super("Invincibility duration");
}
public void init() {
Events.ON_SERVER_TICK.register(() -> {
ticks = Math.max(0, ticks - 1);
return false;
});
}
@Override
public int getWidth() {
return 30;
}
@Override
public int getHeight() {
return 10;
}
@Override
public boolean editable() {
return Dungeons.InvincibilityDuration;
}
@Override
public boolean shouldRender() {
return ticks > 0 && Dungeons.InvincibilityDuration;
}
@Override
public List<HUDCategory> categories() {
return null;
}
@Override
public void render(@NonNull GuiGraphicsExtractor guiGraphicsExtractor) {
int color = 0xffffffff;
if (Dungeons.useStatusColorForInvincibility) {
color = RenderUtils.getStatusColor(40, 20, ticks);
}
RenderUtils.drawTimer(this, guiGraphicsExtractor, ticks, color);
}
public void proc() {
ticks = MAX_DURATION;
Misc.sendSound(Dungeons.invincibilitySound);
}
}