ui/Nameplate.razor
@using Sandbox
@using Sandbox.UI
@using System
@namespace Facepunch.BombRoyale
@attribute [StyleSheet( "Nameplate.razor.scss" )]
@inherits PanelComponent
<root class="p@( PlayerIndex ) @GetRootClass()">
<label class="name">P@( PlayerIndex )</label>
</root>
@code
{
[Property] public Player Player { get; set; }
private int PlayerIndex => (Player?.PlayerSlot ?? 0) + 1;
protected override void OnFixedUpdate()
{
if ( Player.IsValid() && Player.LifeState == LifeState.Alive )
{
var transform = Transform.World;
var position = Player.WorldPosition + Vector3.Up * 100f;
WorldPosition = position;
Transform.World = transform;
}
base.OnFixedUpdate();
}
protected override int BuildHash()
{
return HashCode.Combine( Player, Player?.LifeState );
}
private string GetRootClass()
{
return Player?.LifeState == LifeState.Dead ? "hidden" : string.Empty;
}
}