Knockdowns-Legacy/src/main/java/ru/octol1ttle/knockdowns/client/gui/ReviveGui.java
Octol1ttle 5af7393908
change: don't allow knocked players to place blocks
Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-07-18 15:32:20 +05:00

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