示例#1
0
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Ship.Name  = ShipName;
     model.Ship.Ident = ShipIdent;
     (model.Ship.Type, model.Ship.Size)       = ShipTypeDefinitions.GetById(Ship);
     model.Navigation.MaximumUnladenJumpRange = MaxJumpRange;
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Navigation.CurrentStation = null;
     model.Navigation.DockStatus.Undocked.Trigger(new DockingEventArgs {
         StationName = StationName
     });
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Navigation.ApproachBody.Trigger(new ApproachBodyEventArgs
     {
         BodyName = Body
     });
 }
示例#4
0
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Navigation.DockStatus.RequestStatusChanged.Trigger(new DockingRequestStatusChangedEventArgs
     {
         StationName = StationName,
         Status      = DockingStatus.Timeout
     });
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Navigation.DockStatus.Liftoff.Trigger(new LandingEventArgs
     {
         PlayerControlled   = PlayerControlled,
         NearestDestination = NearestDestination
     });
 }
示例#6
0
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     // Does not need to update IsDocked, this is done via Status.json.
     model.Navigation.CurrentStation = StationName;
     model.Navigation.DockStatus.Docked.Trigger(new DockingEventArgs
     {
         StationName = StationName
     });
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Player.Ranks.CombatProgress     = Combat;
     model.Player.Ranks.TradeProgress      = Trade;
     model.Player.Ranks.ExplorerProgress   = Explore;
     model.Player.Ranks.CQCProgress        = CQC;
     model.Player.Ranks.EmpireProgress     = Empire;
     model.Player.Ranks.FederationProgress = Federation;
 }
示例#8
0
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     // Does not need to update IsLanded, this is done via Status.json.
     model.Navigation.DockStatus.Touchdown.Trigger(new LandingEventArgs
     {
         PlayerControlled   = PlayerControlled,
         NearestDestination = NearestDestination
     });
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Player.Ranks.Combat     = Combat;
     model.Player.Ranks.Trade      = Trade;
     model.Player.Ranks.Explorer   = Explore;
     model.Player.Ranks.CQC        = CQC;
     model.Player.Ranks.Empire     = Empire;
     model.Player.Ranks.Federation = Federation;
 }
示例#10
0
        public StarClass?StarClass;  // Only when JumpType = Hyperspace

        public void ApplyUpdate(EliteDangerousDataModel model)
        {
            // Does not need to update FSD statuses (charging, cooldown, etc), this is done via Status.json.
            model.Ship.FSD.StartJump.Trigger(new StartJumpEventArgs
            {
                JumpType   = JumpType,
                StarSystem = StarSystem,
                StarClass  = StarClass
            });
        }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Ship.Interdiction.Trigger(new InterdictionEventArgs
     {
         Interdictor         = Interdictor,
         InterdictorIsPlayer = IsPlayer,
         Escaped             = true,
         Submitted           = false
     });
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     // Does not need to update FSD statuses (charging, etc.), this is done via Status.json.
     model.Navigation.UpdateLocation(StarSystem);
     model.Ship.FSD.CompleteJump.Trigger(new CompleteJumpEventArgs
     {
         // The star class is not passed to the FSDJump event, but we can get it from the most
         // recent "StartJump" event.
         StarClass    = model.Ship.FSD.StartJump.LastEventArguments.StarClass ?? default,
         JumpDistance = JumpDist,
         FuelUsed     = FuelUsed
     });
示例#13
0
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Navigation.UpdateLocation(StarSystem, Body, BodyType, StationName);
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Navigation.RemainingJumpsInRoute = RemainingJumpsInRoute;
     model.Navigation.FSDTarget.Trigger();
 }
示例#15
0
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     // Does not need to update InSupercruise, this is done via Status.json
     model.Navigation.UpdateLocation(StarSystem);
     model.Navigation.EnterSupercruise.Trigger();
 }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.Player.Died.Trigger();
 }
示例#17
0
        protected override void OnContentRead(EliteDangerousDataModel dataModel, string content)
        {
            var status = JsonConvert.DeserializeObject <StatusJson>(content);

            if (status == null)
            {
                return;
            }

            bool Has(StatusFlags flag) => (status.Flags & flag) != 0;

            //
            // Update the datamodel based on the parsed values
            //

            // Player details
            dataModel.Player.CurrentlyPiloting =
                Has(StatusFlags.PilotingMainShip) ? Vehicle.Ship
                : Has(StatusFlags.PilotingFighter) ? Vehicle.Fighter
                : Has(StatusFlags.PilotingSRV) ? Vehicle.SRV
                : Vehicle.Unknown;
            dataModel.Player.LegalState = status.LegalState;
            dataModel.Player.InWing     = Has(StatusFlags.InWing);

            // HUD
            dataModel.HUD.FocusedPanel       = status.GuiFocus;
            dataModel.HUD.AnalysisModeActive = Has(StatusFlags.AnalysisMode);
            dataModel.HUD.NightVisionActive  = Has(StatusFlags.NightVision);

            // Nav
            dataModel.Navigation.DockStatus.IsDocked = Has(StatusFlags.Docked);
            dataModel.Navigation.DockStatus.IsLanded = Has(StatusFlags.Landed);
            dataModel.Navigation.Latitude            = status.Latitude;
            dataModel.Navigation.Longitude           = status.Longitude;
            dataModel.Navigation.Altitude            = status.Altitude;
            dataModel.Navigation.Heading             = status.Heading;

            // Ship
            dataModel.Ship.IsInSupercruise             = Has(StatusFlags.Supercruise);
            dataModel.Ship.Systems.LandingGearDeployed = Has(StatusFlags.LandingGearDeployed);
            dataModel.Ship.Systems.CargoScoopDeployed  = Has(StatusFlags.CargoScoopDeployed);
            dataModel.Ship.Systems.HardpointsDeployed  = Has(StatusFlags.HardpointsDeployed);
            dataModel.Ship.Systems.ShieldsActive       = Has(StatusFlags.ShieldsUp);
            dataModel.Ship.Systems.FlightAssistActive  = !Has(StatusFlags.FlightAssistOff);
            dataModel.Ship.Systems.LightsActive        = Has(StatusFlags.PilotingMainShip) && Has(StatusFlags.LightsOn);
            dataModel.Ship.Systems.SilentRunningActive = Has(StatusFlags.SilentRunning);
            dataModel.Ship.Systems.IsOverheating       = Has(StatusFlags.Overheating);
            dataModel.Ship.IsInDanger         = Has(StatusFlags.InDanger);
            dataModel.Ship.IsBeingInterdicted = Has(StatusFlags.BeingInterdicted);

            // Ship power
            dataModel.Ship.Systems.SystemPips = status.Pips[0] / 2f;
            dataModel.Ship.Systems.EnginePips = status.Pips[1] / 2f;
            dataModel.Ship.Systems.WeaponPips = status.Pips[2] / 2f;

            // Ship FSD
            dataModel.Ship.FSD.IsCharging    = Has(StatusFlags.FSDCharging);
            dataModel.Ship.FSD.IsJumping     = Has(StatusFlags.FSDJump);
            dataModel.Ship.FSD.IsCoolingDown = Has(StatusFlags.FSDCooldown);
            dataModel.Ship.FSD.IsMassLocked  = Has(StatusFlags.FSDMassLocked);

            // Ship fuel
            dataModel.Ship.Fuel.FuelMain      = status.Fuel.FuelMain;
            dataModel.Ship.Fuel.FuelReservoir = status.Fuel.FuelReservoir;
            dataModel.Ship.Fuel.IsLow         = Has(StatusFlags.LowFuel);
            dataModel.Ship.Fuel.IsScooping    = Has(StatusFlags.FuelScooping);

            // SRV
            dataModel.SRV.HandbrakeActive   = Has(StatusFlags.SRVHandbrake);
            dataModel.SRV.TurretViewActive  = Has(StatusFlags.SRVTurretView);
            dataModel.SRV.TurretRetracted   = Has(StatusFlags.SRVTurretRetracted);
            dataModel.SRV.DriveAssistActive = Has(StatusFlags.SRVDriveAssist);
            dataModel.SRV.LightsActive      = Has(StatusFlags.PilotingSRV) && Has(StatusFlags.LightsOn);
            dataModel.SRV.HighBeamActive    = Has(StatusFlags.SRVHighBeam);
        }
 public void ApplyUpdate(EliteDangerousDataModel model)
 {
     model.SRV.Docked.Trigger();
 }