using CitizenFX.Core; namespace TaxiJob.Client.Handler { public static class Taximeter { public static TaximeeterAttributes Attributes { get; private set; } = new TaximeeterAttributes(); public static void Open() { Attributes.MeterVisible = true; Update(); } public static void Close() { Attributes.MeterVisible = false; Update(); } public static void Update() { BaseScript.TriggerEvent("taxijob:client:nuimessage", Attributes.ToString()); } public static void Reset() { Attributes = new TaximeeterAttributes(); Update(); } } public sealed class TaximeeterAttributes { public bool MeterVisible { get; set; } = false; public string RateType { get; set; } = "distance"; public int RateAmount { get; set; } = 5; public string CurrencyPrefix { get; set; } = "$"; public string RateSuffix { get; set; } = "/km"; public float CurrentFare { get; set; } = 0.0f; public int DistanceTraveled { get; set; } = 0; public int FareOnStop { get; set; } = 0; public bool MeterPause { get; set; } = true; public bool IsMoving { get; set; } = true; public override string ToString() { return $"{{\"meterVisible\": {MeterVisible.ToString().ToLower()}, \"rateType\": \"{RateType}\", \"rateAmount\": {RateAmount}, \"currencyPrefix\": \"{CurrencyPrefix}\", \"rateSuffix\": \"{RateSuffix}\", \"currentFare\": \"{CurrentFare}\", \"distanceTraveled\": {DistanceTraveled}, \"fareOnStop\": {FareOnStop}, \"meterPause\": {MeterPause.ToString().ToLower()}, \"isMoving\": {IsMoving.ToString().ToLower()} }}"; } } }