Browse Source

Fix speed label not disappearing on machine edit

tags/v1.2.0
NorbiPeti 2 years ago
parent
commit
8223447319
2 changed files with 33 additions and 17 deletions
  1. +5
    -6
      BuildingTools/BuildingTools.cs
  2. +28
    -11
      BuildingTools/UI.cs

+ 5
- 6
BuildingTools/BuildingTools.cs View File

@@ -20,7 +20,7 @@ namespace BuildingTools
private readonly CommandUtils _commandUtils;
private readonly BlockSelections _blockSelections;

private readonly MirrorModeEngine _mirrorModeEngine = new MirrorModeEngine();
//private readonly MirrorModeEngine _mirrorModeEngine = new MirrorModeEngine();

public BuildingTools()
{
@@ -250,7 +250,7 @@ namespace BuildingTools
}

TweakPropertyInfo[] stats;
if (stat is null)
if (stat is null || stat.Length == 0)
{
stats = data.Stats;
}
@@ -271,10 +271,10 @@ namespace BuildingTools
statInfo.max = value == 0 ? 1000 : value;
}

Logging.CommandLog($"{(stat is null ? "All stats" : $"Stat {stat}")} max changed to {(value == 0 ? 1000 : value)}");
Logging.CommandLog($"{(stat is null || stat.Length == 0 ? "All stats" : $"Stat {stat}")} max changed to {(value == 0 ? 1000 : value)} on {bl}");
}).Build();

_mirrorModeEngine.Init();
//_mirrorModeEngine.Init();
UI.Init();

new Harmony("BuildTools").PatchAll(Assembly.GetExecutingAssembly());
@@ -335,7 +335,7 @@ namespace BuildingTools
$"- Rotation: {rot.x:F}° {rot.y:F}° {rot.z:F}°\n" +
$"- Velocity: {vel.x:F} {vel.y:F} {vel.z:F}\n" +
$"- Angular velocity: {ave.x:F} {ave.y:F} {ave.z:F}\n" +
$"- {(body.Static ? "Static body" : $"Mass: {body.Mass:F} center: {com.x:F} {com.y:F} {com.z:F}")}\n" +
$"- {(body.Static ? "Static body" : $"Center of mass: {com.x:F} {com.y:F} {com.z:F}")}\n" +
$"- Volume: {body.Volume:F}\n" +
$"- Chunk health: {body.CurrentHealth:F} / {body.InitialHealth:F} - Multiplier: {body.HealthMultiplier:F}\n" +
(cluster == null
@@ -357,7 +357,6 @@ namespace BuildingTools
$"- Rotation: {rot.x:F}° {rot.y:F}° {rot.z:F}°\n" +
$"- Velocity: {vel.x:F} {vel.y:F} {vel.z:F}\n" +
$"- Angular velocity: {ave.x:F} {ave.y:F} {ave.z:F}\n" +
$"- Mass: {player.Mass:F}\n" +
$"- Health: {player.CurrentHealth:F} / {player.InitialHealth:F}";
}



+ 28
- 11
BuildingTools/UI.cs View File

@@ -9,20 +9,37 @@ namespace BuildingTools
{
public class UI
{
private static Label _speedLabel;
private static Label _speedLabel = new Label(new Rect(Screen.width - 200, 0, 200, 20), "Speed: ", "SpeedLabel")
{
Enabled = false
};

public static void Init()
{
Game.Simulate += (sender, args) =>
{
_speedLabel = new Label(new Rect(Screen.width - 200, 0, 200, 20), "Speed: ", "SpeedLabel");
Scheduler.Schedule(new Repeatable(
() => _speedLabel.Text = $"Speed: {math.length(Player.LocalPlayer?.Velocity ?? 0) * 3.6:F} km/h",
() => _speedLabel != null));
};
Game.Edit += (sender, args) => _speedLabel = null;
Game.Exit += (sender, args) => _speedLabel = null;
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;
}
}
}

Loading…
Cancel
Save