BuildingTools/BuildingTools/UI.cs

45 lines
No EOL
1.2 KiB
C#

using TechbloxModdingAPI;
using TechbloxModdingAPI.App;
using TechbloxModdingAPI.Interface.IMGUI;
using TechbloxModdingAPI.Tasks;
using Unity.Mathematics;
using UnityEngine;
namespace BuildingTools
{
public class UI
{
private static Label _speedLabel = new Label(new Rect(Screen.width - 200, 0, 200, 20), "Speed: ", "SpeedLabel")
{
Enabled = false
};
public static void Init()
{
Game.Simulate += OnGameOnSimulate;
Game.Edit += OnGameOnEditOrExit;
Game.Exit += OnGameOnEditOrExit;
}
private static void OnGameOnSimulate(object sender, GameEventArgs args)
{
_speedLabel.Enabled = true;
Scheduler.Schedule(new Repeatable(UpdateTask, ShouldLabelBeUpdated));
}
private static void OnGameOnEditOrExit(object sender, GameEventArgs args)
{
_speedLabel.Enabled = false;
}
private static void UpdateTask()
{
_speedLabel.Text = $"Speed: {math.length(Player.LocalPlayer?.Velocity ?? 0) * 3.6:F} km/h";
}
private static bool ShouldLabelBeUpdated()
{
return _speedLabel.Enabled;
}
}
}