public void Initialize() { if (!Activated) { if (ScriptName != null && ScriptName != "Default") { var pathArray = new string[] { Path.Combine(Path.GetDirectoryName(Locomotive.WagFilePath), "Script") }; Script = Simulator.ScriptManager.Load(pathArray, ScriptName) as ElectricPowerSupply; } if (Script == null) { Script = new DefaultElectricPowerSupply() as ElectricPowerSupply; } // AbstractScriptClass Script.ClockTime = () => (float)Simulator.ClockTime; Script.GameTime = () => (float)Simulator.GameTime; Script.DistanceM = () => Locomotive.DistanceM; Script.SpeedMpS = () => Math.Abs(Locomotive.SpeedMpS); Script.Confirm = Locomotive.Simulator.Confirmer.Confirm; Script.Message = Locomotive.Simulator.Confirmer.Message; Script.SignalEvent = Locomotive.SignalEvent; Script.SignalEventToTrain = (evt) => { if (Locomotive.Train != null) { Locomotive.Train.SignalEvent(evt); } }; // ElectricPowerSupply getters Script.CurrentState = () => State; Script.CurrentAuxiliaryState = () => AuxiliaryState; Script.CurrentPantographState = () => Pantographs.State; Script.CurrentCircuitBreakerState = () => CircuitBreaker.State; Script.PantographVoltageV = () => PantographVoltageV; Script.FilterVoltageV = () => FilterVoltageV; Script.LineVoltageV = () => LineVoltageV; Script.PowerOnDelayS = () => PowerOnDelayS; Script.AuxPowerOnDelayS = () => AuxPowerOnDelayS; // ElectricPowerSupply setters Script.SetCurrentState = (value) => State = value; Script.SetCurrentAuxiliaryState = (value) => AuxiliaryState = value; Script.SetPantographVoltageV = (value) => PantographVoltageV = value; Script.SetFilterVoltageV = (value) => FilterVoltageV = value; Script.Initialize(); Activated = true; } Pantographs.Initialize(); CircuitBreaker.Initialize(); }
public void Initialize() { if (!Activated) { if (ScriptName != null && ScriptName != "Default") { var pathArray = new string[] { Path.Combine(Path.GetDirectoryName(Locomotive.WagFilePath), "Script") }; Script = Simulator.ScriptManager.Load(pathArray, ScriptName) as ElectricPowerSupply; } if (Script == null) { Script = new DefaultElectricPowerSupply() as ElectricPowerSupply; } Script.ClockTime = () => (float)Simulator.ClockTime; Script.GameTime = () => (float)Simulator.GameTime; Script.DistanceM = () => Locomotive.DistanceM; Script.CurrentState = () => State; Script.CurrentAuxiliaryState = () => AuxiliaryState; Script.CurrentPantographState = () => Pantographs.State; Script.CurrentCircuitBreakerState = () => CircuitBreaker.State; Script.FilterVoltageV = () => FilterVoltageV; Script.LineVoltageV = () => (float)Simulator.TRK.Tr_RouteFile.MaxLineVoltage; Script.PowerOnDelayS = () => PowerOnDelayS; Script.AuxPowerOnDelayS = () => AuxPowerOnDelayS; Script.SetCurrentState = (value) => State = value; Script.SetCurrentAuxiliaryState = (value) => AuxiliaryState = value; Script.SetFilterVoltageV = (value) => FilterVoltageV = value; Script.Initialize(); Activated = true; } Pantographs.Initialize(); CircuitBreaker.Initialize(); }