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