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); } }