using System; using System.Collections.Generic; using System.Text; using ReallifeGamemode.Server.Core.API; using ReallifeGamemode.Server.Types; using ReallifeGamemode.Server.Common; namespace ReallifeGamemode.Server.Core.Managers { internal class VehicleManager : Script { private const string DataKey = "VehicleData"; public VehicleManager() { } public void SetEngineState(IVehicle veh, bool state) { var data = GetData(veh); data.EngineState = state; SetData(veh, data); } public bool GetEngineState(IVehicle veh) { return GetData(veh).EngineState; } public void SetLocked(IVehicle veh, bool state) { var data = GetData(veh); data.Locked = state; SetData(veh, data); } public bool IsLocked(IVehicle veh) { return GetData(veh).Locked; } public VehicleData GetData(IVehicle veh) { return veh.GetSharedData(DataKey, new VehicleData()); } public void SetData(IVehicle veh, VehicleData data) { if (data is null) { throw new ArgumentNullException(nameof(data)); } veh.SetSharedData(DataKey, data); Api.TriggerClientEventForAll("Vehicle:UpdateData", veh.Handle, data.SerializeJson()); } } }