50 lines
2.3 KiB
Java
50 lines
2.3 KiB
Java
package ru.octol1ttle.knockdowns.client.gui;
|
|
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.gui.FontRenderer;
|
|
import net.minecraft.client.gui.ScaledResolution;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.util.text.TextFormatting;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
import ru.octol1ttle.knockdowns.common.KnockdownsUtils;
|
|
import ru.octol1ttle.knockdowns.common.data.IKnockdownsPlayerData;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class ReviveGui extends KnockdownsBaseGui {
|
|
private static final Minecraft client = Minecraft.getMinecraft();
|
|
|
|
@Override
|
|
public void render(float partialTicks, ScaledResolution resolution) {
|
|
EntityPlayer reviving =
|
|
client.pointedEntity instanceof EntityPlayer && IKnockdownsPlayerData.get((EntityPlayer) client.pointedEntity).getRevivers().contains(client.player)
|
|
? (EntityPlayer) client.pointedEntity
|
|
: client.player;
|
|
if (IKnockdownsPlayerData.get(reviving).getReviveTimeLeft() == KnockdownsUtils.INITIAL_REVIVE_TIME_LEFT) {
|
|
return;
|
|
}
|
|
IKnockdownsPlayerData data = IKnockdownsPlayerData.get(reviving);
|
|
|
|
FontRenderer font = client.fontRenderer;
|
|
|
|
String timerText = String.format("%.1f", data.getReviveTimeLeft() / 20.0f);
|
|
float timerX = (resolution.getScaledWidth() - font.getStringWidth(timerText)) * 0.5f;
|
|
|
|
data.getRevivers().removeIf(reviver -> !reviver.isEntityAlive() || IKnockdownsPlayerData.get(reviver).isKnockedDown());
|
|
int reviverCount = data.getRevivers().size();
|
|
TextFormatting color;
|
|
if (reviverCount == 0) {
|
|
color = TextFormatting.RED;
|
|
} else if (reviverCount == 1) {
|
|
color = TextFormatting.WHITE;
|
|
} else {
|
|
color = TextFormatting.GREEN;
|
|
}
|
|
|
|
String reviverCountText = "x" + reviverCount;
|
|
float reviveCountX = (resolution.getScaledWidth() - font.getStringWidth(reviverCountText)) * 0.5f;
|
|
|
|
font.drawStringWithShadow(color + timerText, timerX, resolution.getScaledHeight() * 0.5f + 5, 0xFFFFFF);
|
|
font.drawStringWithShadow(color + reviverCountText, reviveCountX, resolution.getScaledHeight() * 0.5f + 14, 0xFFFFFF);
|
|
}
|
|
}
|