public Weather(
     System.Guid _id,
     cessna_digital_twin.AgentLayer _layer,
     Mars.Interfaces.Layer.RegisterAgent _register,
     Mars.Interfaces.Layer.UnregisterAgent _unregister,
     Mars.Components.Environments.GeoHashEnvironment <Weather> _WeatherEnvironment,
     double gravity,
     double wind_bearing,
     double wind_speed,
     double temperature,
     double pressure_QNH
     , double xcor = 0, double ycor = 0, int freq = 1)
 {
     _AgentLayer       = _layer;
     ID                = _id;
     Position          = Mars.Interfaces.Environment.Position.CreatePosition(xcor, ycor);
     _Random           = new System.Random(ID.GetHashCode());
     this.gravity      = gravity;
     this.wind_bearing = wind_bearing;
     this.wind_speed   = wind_speed;
     this.temperature  = temperature;
     this.pressure_QNH = pressure_QNH;
     _AgentLayer._WeatherEnvironment.Insert(this);
     _register(_layer, this, freq);
     _isAlive            = true;
     _executionFrequency = freq;
     {
     }
 }
        public AirTrafficController(
            System.Guid _id,
            cessna_digital_twin.AgentLayer _layer,
            Mars.Interfaces.Layer.RegisterAgent _register,
            Mars.Interfaces.Layer.UnregisterAgent _unregister,
            Mars.Components.Environments.GeoHashEnvironment <AirTrafficController> _AirTrafficControllerEnvironment,
            double xcor = 0, double ycor = 0, int freq = 1)
        {
            _AgentLayer = _layer;
            ID          = _id;
            Position    = Mars.Interfaces.Environment.Position.CreatePosition(xcor, ycor);
            _Random     = new System.Random(ID.GetHashCode());
            _AgentLayer._AirTrafficControllerEnvironment.Insert(this);
            _register(_layer, this, freq);
            _isAlive            = true;
            _executionFrequency = freq;
            {
                initialize_general_values();
                double x_spawn = 9.501334;
                double y_spawn = 53.559712;
                new System.Func <System.Tuple <double, double> >(() => {
                    var _taget2837_88873 = new System.Tuple <double, double>(x_spawn, y_spawn);

                    var _object2837_88873 = this;

                    _AgentLayer._AirTrafficControllerEnvironment.PosAt(_object2837_88873,
                                                                       _taget2837_88873.Item1, _taget2837_88873.Item2
                                                                       );
                    return(new Tuple <double, double>(Position.X, Position.Y));
                }).Invoke();
                request_approval         = false;
                available_runway_heading = airportstade.Get_available_runway_heading_list()
                ;
            }
        }
 public Observer(
     System.Guid _id,
     cessna_digital_twin.AgentLayer _layer,
     Mars.Interfaces.Layer.RegisterAgent _register,
     Mars.Interfaces.Layer.UnregisterAgent _unregister,
     Mars.Components.Environments.GeoHashEnvironment <Observer> _ObserverEnvironment,
     int number_of_spawning_points,
     int print_interval
     , double xcor = 0, double ycor = 0, int freq = 1)
 {
     _AgentLayer = _layer;
     ID          = _id;
     Position    = Mars.Interfaces.Environment.Position.CreatePosition(xcor, ycor);
     _Random     = new System.Random(ID.GetHashCode());
     this.number_of_spawning_points = number_of_spawning_points;
     this.print_interval            = print_interval;
     _AgentLayer._ObserverEnvironment.Insert(this);
     _register(_layer, this, freq);
     _isAlive            = true;
     _executionFrequency = freq;
     {
         state_list = (new Mars.Components.Common.MarsList <string>()
         {
             "Initialization", "PreflightInspection", "StartingEngine", "TakeOffPreparationRequest", "Taxiing", "TakeOffPreparation", "TakeOffHoldShortRequest", "TakeOffRequest", "TakeOff", "Climb", "LeavingFrequencyRequest", "LandingRequest", "GoAround", "Landing", "LeavingFrequency"
         });
         available_runway_heading = airportstade.Get_available_runway_heading_list();
         initialize_spawn_cor()
         ;
     }
 }