添加击杀记录渲染类
This commit is contained in:
parent
305bd29bba
commit
e9d77974b9
1 changed files with 83 additions and 0 deletions
|
@ -0,0 +1,83 @@
|
||||||
|
package net.mcreator.target.client.screens;
|
||||||
|
|
||||||
|
import net.mcreator.target.event.KillMessageHandler;
|
||||||
|
import net.mcreator.target.item.gun.GunItem;
|
||||||
|
import net.mcreator.target.tools.PlayerKillRecord;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.Font;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.client.event.RenderGuiEvent;
|
||||||
|
import net.minecraftforge.eventbus.api.EventPriority;
|
||||||
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
|
||||||
|
@Mod.EventBusSubscriber(value = Dist.CLIENT)
|
||||||
|
public class KillMessageOverlay {
|
||||||
|
|
||||||
|
@SubscribeEvent(priority = EventPriority.NORMAL)
|
||||||
|
public static void eventHandler(RenderGuiEvent.Pre event) {
|
||||||
|
Player player = Minecraft.getInstance().player;
|
||||||
|
|
||||||
|
if (player == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (KillMessageHandler.QUEUE.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int index = 0;
|
||||||
|
for (PlayerKillRecord record : KillMessageHandler.QUEUE) {
|
||||||
|
renderKillMessages(record, event, index);
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void renderKillMessages(PlayerKillRecord record, RenderGuiEvent.Pre event, int index) {
|
||||||
|
int w = event.getWindow().getGuiScaledWidth();
|
||||||
|
int h = 10 + index * 10;
|
||||||
|
|
||||||
|
Font font = Minecraft.getInstance().font;
|
||||||
|
|
||||||
|
String attackerName = record.attacker.getDisplayName().getString();
|
||||||
|
String targetName = record.target.getDisplayName().getString();
|
||||||
|
|
||||||
|
int attackerNameWidth = font.width(attackerName);
|
||||||
|
int targetNameWidth = font.width(targetName);
|
||||||
|
|
||||||
|
event.getGuiGraphics().drawString(
|
||||||
|
Minecraft.getInstance().font,
|
||||||
|
attackerName,
|
||||||
|
w - 2 * targetNameWidth - 36 - attackerNameWidth,
|
||||||
|
h,
|
||||||
|
record.attacker.getTeamColor(),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
if (record.stack.getItem() instanceof GunItem gunItem) {
|
||||||
|
ResourceLocation resourceLocation = gunItem.getGunIcon();
|
||||||
|
|
||||||
|
event.getGuiGraphics().blit(resourceLocation,
|
||||||
|
w - 2 * targetNameWidth - 30,
|
||||||
|
h,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
32,
|
||||||
|
8,
|
||||||
|
-32,
|
||||||
|
8);
|
||||||
|
}
|
||||||
|
|
||||||
|
event.getGuiGraphics().drawString(
|
||||||
|
Minecraft.getInstance().font,
|
||||||
|
targetName,
|
||||||
|
w - targetNameWidth - 10f,
|
||||||
|
h,
|
||||||
|
record.target.getTeamColor(),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue