public override void _PhysicsProcess(float deltaTime) { UpdateShipStatusInfo(); //ActiveSensors.GenerateEMSReadings(); //ActiveSensors.PerformScan(0f, Mathf.Pi * 2f, 400f); PassiveSensors.GeneratePassiveSensorReadings(); if (SensorsController.IsProcessing) { SensorsController.SensorsUpdate(shipStatusInfo, ActiveSensors, PassiveSensors, deltaTime); } if (NavigationController.IsProcessing) { NavigationController.NavigationUpdate(shipStatusInfo, gameCore.GalaxyMap.GalaxyMapData, deltaTime); } if (PropulsionController.IsProcessing) { PropulsionController.PropulsionUpdate(shipStatusInfo, ThrusterControls, deltaTime); } if (DefenceController.IsProcessing) { DefenceController.DefenceUpdate(shipStatusInfo, Turret.TurretControls, deltaTime); } if (!IsLanded) { TimeElapsed += deltaTime; } }
public void AddNewElement(UIElement uIElement) { uIElement.Id = _item_counter; UIElements.Add(uIElement); IDevice device = _deviceFactory.CreateDevice(uIElement.DeviceType, _item_counter); device.Position = uIElement.Position; switch (uIElement.DeviceType) { case DeviceType.Device: Device temp_device = (Device)device; switch (uIElement.Area) { case Area.AirTemperature: temp_device.Command = _commandFactory.CreateAirTemperatureHeaterCommand(); break; case Area.WaterTemperature: temp_device.Command = _commandFactory.CreateWaterTemperatureHeaterCommand(); break; case Area.Nutrient: temp_device.Command = _commandFactory.CreateNutrientRegulatorCommand(); break; case Area.Acid: temp_device.Command = _commandFactory.CreateAcidRegulatorCommand(); break; default: throw new NotImplementedException(); } Devices.Add(temp_device); break; case DeviceType.ActiveSensor: ActiveSensors.Add(device as ActiveSensor); break; case DeviceType.PasssiveSensor: PassiveSensors.Add(device as PassiveSensor); break; default: throw new NotImplementedException(); } _item_counter++; }
public override void SensorsUpdate(ShipStatusInfo shipStatusInfo, IActiveSensors activeSensors, PassiveSensors passiveSensors, float deltaTime) { //Student code goes here }
/* * bool sensorsControllerEnabled = true; * public event Action<bool> OnSensorsControllerEnabledChanged; * public bool IsSensorsControllerEnabled {get{return sensorsControllerEnabled;} set{sensorsControllerEnabled = value; OnSensorsControllerEnabledChanged?.Invoke(sensorsControllerEnabled);}} * * * bool navigationControllerEnabled = true; * public event Action<bool> OnNavigationControllerEnabledChanged; * public bool IsNavigationControllerEnabled {get{return navigationControllerEnabled;} set{navigationControllerEnabled = value; OnNavigationControllerEnabledChanged?.Invoke(navigationControllerEnabled);}} * * bool propulsionControllerEnabled = true; * public event Action<bool> OnPropulsionControllerEnabledChanged; * public bool IsPropulsionControllerEnabled {get{return propulsionControllerEnabled;} set{propulsionControllerEnabled = value; OnPropulsionControllerEnabledChanged?.Invoke(propulsionControllerEnabled);}} * * bool defenceControllerEnabled = true; * public event Action<bool> OnDefenceControllerEnabledChanged; * public bool IsDefenceControllerEnabled {get{return defenceControllerEnabled;} set{defenceControllerEnabled = value; OnDefenceControllerEnabledChanged?.Invoke(defenceControllerEnabled);}} */ /* * //Subsystems * public AbstractSensorsController Sensors { get; private set; } * public AbstractNavigationController Navigation { get; private set; } * public AbstractDefenceController Defence { get; private set; } * public AbstractPropulsionController Propulsion { get; private set; } * * public SubsystemReferences(AbstractSensorsController sensors, AbstractNavigationController navigation, AbstractDefenceController defence, AbstractPropulsionController propulsion) * { * * Sensors = sensors; * Defence = defence; * Navigation = navigation; * Propulsion = propulsion; * } */ public abstract void ProcessPhysics(ShipStatusInfo shipStatusInfo, float deltaTime, ActiveSensors ActiveSensors, PassiveSensors passiveSensors, GalaxyMapData galaxyMapData, ThrusterControls thrusterControls, TurretControls turretControls);
public override void SensorsUpdate(ShipStatusInfo shipStatusInfo, IActiveSensors activeSensors, PassiveSensors passiveSensors, float deltaTime) { //Student code goes here timePassed += deltaTime; if (timePassed >= 1) { timePassed = 0; List <EMSReading> spaceObj; spaceObj = activeSensors.PerformScan(shipStatusInfo.forwardVector.Angle(), 2 * Mathf.Pi, 500); DefenceController.ls_asteroids.Clear(); for (int index = 0; index < spaceObj.Count; index++) { if (spaceObj[index].ScanSignature == "Rock:90|Common:10") { float x = spaceObj[index].Amplitude * activeSensors.GConstant * Mathf.Cos((spaceObj[index].Angle)); float y = spaceObj[index].Amplitude * activeSensors.GConstant * Mathf.Sin((spaceObj[index].Angle)); x += shipStatusInfo.positionWithinSystem.x; y += shipStatusInfo.positionWithinSystem.y; DefenceController.ls_asteroids.Add(new EMSReport(x, y)); } } } }
public abstract void SensorsUpdate(ShipStatusInfo shipStatusInfo, IActiveSensors activeSensors, PassiveSensors passiveSensors, float deltaTime);