UI/Inspector/AnimalInspector.razor
@using Sandbox;
@namespace HC3.UI
@inherits PinnableWindow<AnimalInspector>
@if (!Animal.IsValid())
{
Close();
return;
}
<root>
<ActionDisplay Agent=@Animal />
<tabview>
<tab Icon="status_online" Title="Needs">
@foreach (var need in Animal.GetComponent<NeedSystem>().GetNeeds().OrderBy(x => x.Template.DisplayName))
{
<NeedsBar Need=@need />
}
</tab>
<tab Icon="chart_curve" Title="Thoughts">
<AgentThoughtPanel Agent=@Animal />
</tab>
</tabview>
<div class="footer">
<div class="button @(isFollowing ? "selected" : "")" onclick=@(() => CameraPanning.Instance.ToggleFollow( Animal.GameObject )) tooltip="Follow"><i>filter_center_focus</i></div>
</div>
</root>
@code
{
public Animal Animal { get; set; }
public override string Title => Animal.Name;
public override string Icon => "tux";
public override object Key => Animal;
bool isFollowing => CameraPanning.Instance.FollowTarget == Animal.GameObject;
private void FrameTo()
{
CameraPanning.Instance.FrameOn( Animal.WorldPosition );
}
protected override int BuildHash() => System.HashCode.Combine( Time.Now );
public override void OnDeleted()
{
base.OnDeleted();
CameraPanning.Instance.StopFollowing( Animal.GameObject );
}
}