public void HandleEvent(object sender, ShipTargetedEvent.ShipTargetedEventArgs currentTargetData) { Log.Instance.Info("Handling Target Event: {targetevent}", currentTargetData.ToString()); ShipTargetedData targetData = new ShipTargetedData(); TimeSpan dataAge = DateTime.UtcNow.Subtract(currentTargetData.Timestamp); Log.Instance.Info("Target data age: {targetage}", dataAge.ToString()); if (dataAge.TotalMinutes < 5) { targetData.LastUpdate = currentTargetData.Timestamp; targetData.TargetLocked = currentTargetData.TargetLocked; if (targetData.TargetLocked == true) { if (String.IsNullOrEmpty(currentTargetData.Ship_Localised)) { string mappedShip = ""; if (ShipMap.TryGetValue(currentTargetData.Ship, out mappedShip)) { targetData.Ship = mappedShip; } else { targetData.Ship = currentTargetData.Ship; } } else { targetData.Ship = currentTargetData.Ship_Localised; } targetData.ScanStage = currentTargetData.ScanStage; if (targetData.ScanStage >= 1) { targetData.PilotName = currentTargetData.PilotName_Localised; targetData.PilotRank = currentTargetData.PilotRank.ToString(); } if (targetData.ScanStage >= 2) { targetData.ShieldHealth = currentTargetData.ShieldHealth; targetData.HullHealth = currentTargetData.HullHealth; } if (targetData.ScanStage >= 3) { targetData.Faction = currentTargetData.Faction; targetData.LegalStatus = currentTargetData.LegalStatus; targetData.SubSystem = currentTargetData.SubSystem; targetData.SubSystemHealth = currentTargetData.SubSystemHealth; targetData.Bounty = currentTargetData.Bounty; } } Log.Instance.Info("Sending target data to worker {target}", targetData.ToString()); Caller.GameDataEvent(GameEventType.Target, targetData); } }
public void HandleEvent(object sender, StatusFileEvent currentStatusData) { Log.Instance.Info("Handling Status Event: {statusevent}", currentStatusData.ToString()); StatusData statusData = new StatusData(); if (currentStatusData != null) { statusData.LastUpdate = DateTime.Now; // Original Status Flags StatusFlags curState = currentStatusData.Flags; if (curState.HasFlag(StatusFlags.Docked)) { statusData.Docked = true; } if (curState.HasFlag(StatusFlags.Landed)) { statusData.Landed = true; } if (curState.HasFlag(StatusFlags.LandingGearDown)) { statusData.LandingGearDown = true; } if (curState.HasFlag(StatusFlags.ShieldsUp)) { statusData.ShieldsUp = true; } if (curState.HasFlag(StatusFlags.Supercruise)) { statusData.Supercruise = true; } if (curState.HasFlag(StatusFlags.FlightAssistOff)) { statusData.FlightAssistOff = true; } if (curState.HasFlag(StatusFlags.HardpointsDeployed)) { statusData.HardpointsDeployed = true; } if (curState.HasFlag(StatusFlags.InWing)) { statusData.InWing = true; } if (curState.HasFlag(StatusFlags.LightsOn)) { statusData.LightsOn = true; } if (curState.HasFlag(StatusFlags.CargoScoopDeployed)) { statusData.CargoScoopDeployed = true; } if (curState.HasFlag(StatusFlags.SilentRunning)) { statusData.SilentRunning = true; } if (curState.HasFlag(StatusFlags.ScoopingFuel)) { statusData.ScoopingFuel = true; } if (curState.HasFlag(StatusFlags.SrvHandbrake)) { statusData.SrvHandbrake = true; } if (curState.HasFlag(StatusFlags.SrvTurret)) { statusData.SrvTurret = true; } if (curState.HasFlag(StatusFlags.SrvUnderShip)) { statusData.SrvUnderShip = true; } if (curState.HasFlag(StatusFlags.SrvDriveAssist)) { statusData.SrvDriveAssist = true; } if (curState.HasFlag(StatusFlags.FsdMassLocked)) { statusData.FsdMassLocked = true; } if (curState.HasFlag(StatusFlags.FsdCharging)) { statusData.FsdCharging = true; } if (curState.HasFlag(StatusFlags.FsdCooldown)) { statusData.FsdCooldown = true; } if (curState.HasFlag(StatusFlags.LowFuel)) { statusData.LowFuel = true; } if (curState.HasFlag(StatusFlags.Overheating)) { statusData.Overheating = true; } if (curState.HasFlag(StatusFlags.HasLatLong)) { statusData.HasLatLong = true; statusData.Latitude = currentStatusData.Latitude; statusData.Longitude = currentStatusData.Longitude; } if (curState.HasFlag(StatusFlags.IsInDanger)) { statusData.InDanger = true; } if (curState.HasFlag(StatusFlags.BeingInterdicted)) { statusData.BeingInterdicted = true; } if (curState.HasFlag(StatusFlags.InMainShip)) { statusData.InMainShip = true; } if (curState.HasFlag(StatusFlags.InFighter)) { statusData.InFighter = true; } if (curState.HasFlag(StatusFlags.HudInAnalysisMode)) { statusData.HudAnalysisMode = true; } if (curState.HasFlag(StatusFlags.NightVision)) { statusData.NightVision = true; } if (curState.HasFlag(StatusFlags.FsdJump)) { statusData.FsdJump = true; } if (curState.HasFlag(StatusFlags.AltitudeFromAverageRadius)) { statusData.AltitudeFromAverageRadius = true; } if (curState.HasFlag(StatusFlags.SrvHighBeam)) { statusData.SrvHighBeam = true; } // Extended Flags from Odyssey MoreStatusFlags curState2 = currentStatusData.Flags2; if (curState2.HasFlag(MoreStatusFlags.OnFoot)) { statusData.OnFoot = true; } if (curState2.HasFlag(MoreStatusFlags.InTaxi)) { statusData.InTaxi = true; } if (curState2.HasFlag(MoreStatusFlags.InMulticrew)) { statusData.InMulticrew = true; } if (curState2.HasFlag(MoreStatusFlags.OnFootInStation)) { statusData.OnFootInStation = true; } if (curState2.HasFlag(MoreStatusFlags.OnFootOnPlanet)) { statusData.OnFootOnPlanet = true; } if (curState2.HasFlag(MoreStatusFlags.AimDownSight)) { statusData.AimDownSight = true; } if (curState2.HasFlag(MoreStatusFlags.LowOxygen)) { statusData.LowOxygen = true; } if (curState2.HasFlag(MoreStatusFlags.LowHealth)) { statusData.LowHealth = true; } if (curState2.HasFlag(MoreStatusFlags.Cold)) { statusData.Cold = true; } if (curState2.HasFlag(MoreStatusFlags.Hot)) { statusData.Hot = true; } if (curState2.HasFlag(MoreStatusFlags.VeryCold)) { statusData.VeryCold = true; } if (curState2.HasFlag(MoreStatusFlags.VeryHot)) { statusData.VeryHot = true; } if (currentStatusData.Flags != 0) { if (currentStatusData.Pips.System != null) { statusData.SystemPips = currentStatusData.Pips.System; } if (currentStatusData.Pips.Engine != null) { statusData.EnginePips = currentStatusData.Pips.Engine; } if (currentStatusData.Pips.Weapons != null) { statusData.WeaponPips = currentStatusData.Pips.Weapons; } if (currentStatusData.Firegroup != null) { statusData.FireGroup = currentStatusData.Firegroup; } if (currentStatusData.GuiFocus != null) { statusData.GuiFocus = currentStatusData.GuiFocus.ToString(); } if (currentStatusData.Fuel != null) { statusData.FuelMain = currentStatusData.Fuel.FuelMain; } if (currentStatusData.Fuel != null) { statusData.FuelReservoir = currentStatusData.Fuel.FuelReservoir; } if (currentStatusData.Cargo != null) { statusData.Cargo = currentStatusData.Cargo; } if (currentStatusData.LegalState != null) { statusData.LegalState = currentStatusData.LegalState; } if (currentStatusData.Altitude != null) { statusData.Altitude = currentStatusData.Altitude; } if (currentStatusData.Heading != null) { statusData.Heading = currentStatusData.Heading; } if (currentStatusData.BodyName != null) { statusData.BodyName = currentStatusData.BodyName; } if (currentStatusData.PlanetRadius != null) { statusData.PlanetRadius = currentStatusData.PlanetRadius; } if (currentStatusData.Balance != null) { statusData.Balance = currentStatusData.Balance; } if (currentStatusData.Destination.System != null) { statusData.DestinationSystem = currentStatusData.Destination.System; } if (currentStatusData.Destination.Body != null) { statusData.DestinationBody = currentStatusData.Destination.Body; } if (currentStatusData.Destination.Name != null) { statusData.DestinationName = currentStatusData.Destination.Name; } if (currentStatusData.Oxygen != null) { statusData.Oxygen = currentStatusData.Oxygen; } if (currentStatusData.Health != null) { statusData.Health = currentStatusData.Health; } if (currentStatusData.Temperature != null) { statusData.Temperature = currentStatusData.Temperature; } if (currentStatusData.SelectedWeapon != null) { statusData.SelectedWeapon = currentStatusData.SelectedWeapon; } if (currentStatusData.Gravity != null) { statusData.Gravity = currentStatusData.Gravity; } } Log.Instance.Info("Sending Status to worker {status}", statusData.ToString()); Caller.GameDataEvent(GameEventType.Status, statusData); } }