2
0
mirror of https://github.com/9ParsonsB/Pulsar.git synced 2025-07-01 08:23:42 -04:00

Update Status Fuel Display

Start working on Explorer Panel
Backend now uses polymorphic de/serialization (net9)
This commit is contained in:
2024-05-17 23:40:36 +10:00
parent d4f3476ad3
commit 337a9d5ea0
14 changed files with 684 additions and 538 deletions

View File

@ -13,279 +13,268 @@ using StationServices;
using Trade;
using Travel;
[JsonDerivedType(typeof(BackpackFile))]
[JsonDerivedType(typeof(CargoFile))]
[JsonDerivedType(typeof(FCMaterialsFile))]
[JsonDerivedType(typeof(Bounty))]
[JsonDerivedType(typeof(CapShipBound))]
[JsonDerivedType(typeof(Died))]
[JsonDerivedType(typeof(EscapeInterdiction))]
[JsonDerivedType(typeof(FactionKillBond))]
[JsonDerivedType(typeof(FighterDestroyed))]
[JsonDerivedType(typeof(HeatDamage))]
[JsonDerivedType(typeof(HeatWarning))]
[JsonDerivedType(typeof(HullDamage))]
[JsonDerivedType(typeof(Interdicted))]
[JsonDerivedType(typeof(Interdiction))]
[JsonDerivedType(typeof(PVPKill))]
[JsonDerivedType(typeof(SRVDestroyed))]
[JsonDerivedType(typeof(ShieldState))]
[JsonDerivedType(typeof(ShipTargeted))]
[JsonDerivedType(typeof(UnderAttack))]
[JsonDerivedType(typeof(BuyExplorationData))]
[JsonDerivedType(typeof(CodexEntry))]
[JsonDerivedType(typeof(DiscoveryScan))]
[JsonDerivedType(typeof(FSSAllBodiesFound))]
[JsonDerivedType(typeof(FSSBodySignals))]
[JsonDerivedType(typeof(FSSDiscoveryScan))]
[JsonDerivedType(typeof(FSSSignalDiscovered))]
[JsonDerivedType(typeof(MaterialCollected))]
[JsonDerivedType(typeof(MaterialDiscarded))]
[JsonDerivedType(typeof(MaterialDiscovered))]
[JsonDerivedType(typeof(MultiSellExplorationData))]
[JsonDerivedType(typeof(NavBeaconScan))]
[JsonDerivedType(typeof(SAAScanComplete))]
[JsonDerivedType(typeof(SAASignalsFound))]
[JsonDerivedType(typeof(Scan))]
[JsonDerivedType(typeof(ScanBaryCentre))]
[JsonDerivedType(typeof(Screenshot))]
[JsonDerivedType(typeof(SellExplorationData))]
[JsonDerivedType(typeof(CarrierBankTransfer))]
[JsonDerivedType(typeof(CarrierBuy))]
[JsonDerivedType(typeof(CarrierCancelDecommission))]
[JsonDerivedType(typeof(CarrierCrewServices))]
[JsonDerivedType(typeof(CarrierDecommission))]
[JsonDerivedType(typeof(CarrierDepositFuel))]
[JsonDerivedType(typeof(CarrierDockingPermission))]
[JsonDerivedType(typeof(CarrierFinance))]
[JsonDerivedType(typeof(CarrierJump))]
[JsonDerivedType(typeof(CarrierJumpCancelled))]
[JsonDerivedType(typeof(CarrierJumpRequest))]
[JsonDerivedType(typeof(CarrierModulePack))]
[JsonDerivedType(typeof(CarrierShipPack))]
[JsonDerivedType(typeof(CarrierStats))]
[JsonDerivedType(typeof(CarrierTradeOrder))]
[JsonDerivedType(typeof(FCMaterlas))]
[JsonDerivedType(typeof(InvalidJson))]
[JsonDerivedType(typeof(BackPack))]
[JsonDerivedType(typeof(BackpackChange))]
[JsonDerivedType(typeof(BackpackMaterials))]
[JsonDerivedType(typeof(BookDropship))]
[JsonDerivedType(typeof(BookTaxi))]
[JsonDerivedType(typeof(BuyMicroResources))]
[JsonDerivedType(typeof(BuySuit))]
[JsonDerivedType(typeof(BuyWeapon))]
[JsonDerivedType(typeof(CancelDropship))]
[JsonDerivedType(typeof(CancelTaxi))]
[JsonDerivedType(typeof(CollectItems))]
[JsonDerivedType(typeof(CreateSuitLoadout))]
[JsonDerivedType(typeof(DeleteSuitLoadout))]
[JsonDerivedType(typeof(Disembark))]
[JsonDerivedType(typeof(DropItems))]
[JsonDerivedType(typeof(DropShipDeploy))]
[JsonDerivedType(typeof(Embark))]
[JsonDerivedType(typeof(FCMaterials))]
[JsonDerivedType(typeof(LoadoutEquipModule))]
[JsonDerivedType(typeof(LoadoutRemoveModule))]
[JsonDerivedType(typeof(RenameSuitLoadout))]
[JsonDerivedType(typeof(ScanOrganic))]
[JsonDerivedType(typeof(SellMicroResources))]
[JsonDerivedType(typeof(SellOrganicData))]
[JsonDerivedType(typeof(SellSuit))]
[JsonDerivedType(typeof(SellWeapon))]
[JsonDerivedType(typeof(ShipLockerMaterials))]
[JsonDerivedType(typeof(SuitLoadout))]
[JsonDerivedType(typeof(SwitchSuitLoadout))]
[JsonDerivedType(typeof(TradeMicroResources))]
[JsonDerivedType(typeof(TransferMicroResources))]
[JsonDerivedType(typeof(UpgradeSuit))]
[JsonDerivedType(typeof(UpgradeWeapon))]
[JsonDerivedType(typeof(UseConsumable))]
[JsonDerivedType(typeof(AfmuRepairs))]
[JsonDerivedType(typeof(ApproachSettlement))]
[JsonDerivedType(typeof(CargoTransfer))]
[JsonDerivedType(typeof(ChangeCrewRole))]
[JsonDerivedType(typeof(CockpitBreached))]
[JsonDerivedType(typeof(CommitCrime))]
[JsonDerivedType(typeof(Continued))]
[JsonDerivedType(typeof(CrewLaunchFighter))]
[JsonDerivedType(typeof(CrewMemberJoins))]
[JsonDerivedType(typeof(CrewMemberQuits))]
[JsonDerivedType(typeof(CrewMemberRoleChange))]
[JsonDerivedType(typeof(CrimeVictim))]
[JsonDerivedType(typeof(DataScanned))]
[JsonDerivedType(typeof(DatalinkScan))]
[JsonDerivedType(typeof(DatalinkVoucher))]
[JsonDerivedType(typeof(DockFighter))]
[JsonDerivedType(typeof(DockSRV))]
[JsonDerivedType(typeof(EndCrewSession))]
[JsonDerivedType(typeof(FighterRebuilt))]
[JsonDerivedType(typeof(Friends))]
[JsonDerivedType(typeof(FuelScoop))]
[JsonDerivedType(typeof(JetConeBoost))]
[JsonDerivedType(typeof(JetConeDamage))]
[JsonDerivedType(typeof(JoinACrew))]
[JsonDerivedType(typeof(KickCrewMember))]
[JsonDerivedType(typeof(LaunchDrone))]
[JsonDerivedType(typeof(LaunchFighter))]
[JsonDerivedType(typeof(LaunchSRV))]
[JsonDerivedType(typeof(ModuleInfo))]
[JsonDerivedType(typeof(Music))]
[JsonDerivedType(typeof(NpcCrewPaidWage))]
[JsonDerivedType(typeof(NpcCrewRank))]
[JsonDerivedType(typeof(Promotion))]
[JsonDerivedType(typeof(ProspectedAsteroid))]
[JsonDerivedType(typeof(QuitACrew))]
[JsonDerivedType(typeof(RebootRepair))]
[JsonDerivedType(typeof(ReceiveText))]
[JsonDerivedType(typeof(RepairDrone))]
[JsonDerivedType(typeof(ReservoirReplenished))]
[JsonDerivedType(typeof(Resurrect))]
[JsonDerivedType(typeof(Scanned))]
[JsonDerivedType(typeof(SelfDestruct))]
[JsonDerivedType(typeof(SendText))]
[JsonDerivedType(typeof(Shutdown))]
[JsonDerivedType(typeof(Synthesis))]
[JsonDerivedType(typeof(SystemsShutdown))]
[JsonDerivedType(typeof(USSDrop))]
[JsonDerivedType(typeof(VehicleSwitch))]
[JsonDerivedType(typeof(WingAdd))]
[JsonDerivedType(typeof(WingInvite))]
[JsonDerivedType(typeof(WingJoin))]
[JsonDerivedType(typeof(WingLeave))]
[JsonDerivedType(typeof(PowerplayCollect))]
[JsonDerivedType(typeof(PowerplayDefect))]
[JsonDerivedType(typeof(PowerplayDeliver))]
[JsonDerivedType(typeof(PowerplayFastTrack))]
[JsonDerivedType(typeof(PowerplayJoin))]
[JsonDerivedType(typeof(PowerplayLeave))]
[JsonDerivedType(typeof(PowerplaySalary))]
[JsonDerivedType(typeof(PowerplayVote))]
[JsonDerivedType(typeof(PowerplayVoucher))]
[JsonDerivedType(typeof(AppliedToSquadron))]
[JsonDerivedType(typeof(DisbandedSquadron))]
[JsonDerivedType(typeof(InvitedToSquadron))]
[JsonDerivedType(typeof(JoinedSquadron))]
[JsonDerivedType(typeof(KickedFromSquadron))]
[JsonDerivedType(typeof(LeftSquadron))]
[JsonDerivedType(typeof(SharedBookmarkToSquadron))]
[JsonDerivedType(typeof(SquadronCreated))]
[JsonDerivedType(typeof(SquadronDemotion))]
[JsonDerivedType(typeof(SquadronPromotion))]
[JsonDerivedType(typeof(SquadronStartup))]
[JsonDerivedType(typeof(WonATrophyForSquadron))]
[JsonDerivedType(typeof(Cargo))]
[JsonDerivedType(typeof(ClearSavedGame))]
[JsonDerivedType(typeof(Commander))]
[JsonDerivedType(typeof(FileHeader))]
[JsonDerivedType(typeof(LoadGame))]
[JsonDerivedType(typeof(Loadout))]
[JsonDerivedType(typeof(Materials))]
[JsonDerivedType(typeof(Missions))]
[JsonDerivedType(typeof(NewCommander))]
[JsonDerivedType(typeof(Passengers))]
[JsonDerivedType(typeof(Startup.Powerplay))]
[JsonDerivedType(typeof(Progress))]
[JsonDerivedType(typeof(Rank))]
[JsonDerivedType(typeof(Reputation))]
[JsonDerivedType(typeof(Statistics))]
[JsonDerivedType(typeof(BuyAmmo))]
[JsonDerivedType(typeof(BuyDrones))]
[JsonDerivedType(typeof(CargoDepot))]
[JsonDerivedType(typeof(ClearImpound))]
[JsonDerivedType(typeof(CommunityGoal))]
[JsonDerivedType(typeof(CommunityGoalDiscard))]
[JsonDerivedType(typeof(CommunityGoalJoin))]
[JsonDerivedType(typeof(CommunityGoalReward))]
[JsonDerivedType(typeof(CrewAssign))]
[JsonDerivedType(typeof(CrewFire))]
[JsonDerivedType(typeof(CrewHire))]
[JsonDerivedType(typeof(EngineerApply))]
[JsonDerivedType(typeof(EngineerContribution))]
[JsonDerivedType(typeof(EngineerCraft))]
[JsonDerivedType(typeof(EngineerLegacyConvert))]
[JsonDerivedType(typeof(EngineerProgress))]
[JsonDerivedType(typeof(FetchRemoteModule))]
[JsonDerivedType(typeof(Market))]
[JsonDerivedType(typeof(MassModuleStore))]
[JsonDerivedType(typeof(MaterialTrade))]
[JsonDerivedType(typeof(MissionAbandoned))]
[JsonDerivedType(typeof(MissionAccepted))]
[JsonDerivedType(typeof(MissionCompleted))]
[JsonDerivedType(typeof(MissionFailed))]
[JsonDerivedType(typeof(MissionRedirected))]
[JsonDerivedType(typeof(ModuleBuy))]
[JsonDerivedType(typeof(ModuleRetrieve))]
[JsonDerivedType(typeof(ModuleSell))]
[JsonDerivedType(typeof(ModuleSellRemote))]
[JsonDerivedType(typeof(ModuleStore))]
[JsonDerivedType(typeof(ModuleSwap))]
[JsonDerivedType(typeof(Outfitting))]
[JsonDerivedType(typeof(PayBounties))]
[JsonDerivedType(typeof(PayFines))]
[JsonDerivedType(typeof(PayLegacyFines))]
[JsonDerivedType(typeof(RedeemVoucher))]
[JsonDerivedType(typeof(RefuelAll))]
[JsonDerivedType(typeof(RefuelPartial))]
[JsonDerivedType(typeof(Repair))]
[JsonDerivedType(typeof(RepairAll))]
[JsonDerivedType(typeof(RestockVehicle))]
[JsonDerivedType(typeof(ScientificResearch))]
[JsonDerivedType(typeof(SearchAndRescue))]
[JsonDerivedType(typeof(SellDrones))]
[JsonDerivedType(typeof(SellShipOnRebuy))]
[JsonDerivedType(typeof(SetUserShipName))]
[JsonDerivedType(typeof(Shipyard))]
[JsonDerivedType(typeof(ShipyardBuy))]
[JsonDerivedType(typeof(ShipyardNew))]
[JsonDerivedType(typeof(ShipyardSell))]
[JsonDerivedType(typeof(ShipyardSwap))]
[JsonDerivedType(typeof(ShipyardTransfer))]
[JsonDerivedType(typeof(StoredModules))]
[JsonDerivedType(typeof(StoredShips))]
[JsonDerivedType(typeof(TechnologyBroker))]
[JsonDerivedType(typeof(AsteroidCracked))]
[JsonDerivedType(typeof(BuyTradeData))]
[JsonDerivedType(typeof(CollectCargo))]
[JsonDerivedType(typeof(EjectCargo))]
[JsonDerivedType(typeof(MarketBuy))]
[JsonDerivedType(typeof(MarketSell))]
[JsonDerivedType(typeof(MiningRefined))]
[JsonDerivedType(typeof(ApproachBody))]
[JsonDerivedType(typeof(Docked))]
[JsonDerivedType(typeof(DockingCancelled))]
[JsonDerivedType(typeof(DockingDenied))]
[JsonDerivedType(typeof(DockingGranted))]
[JsonDerivedType(typeof(DockingRequested))]
[JsonDerivedType(typeof(DockingTimeout))]
[JsonDerivedType(typeof(FSDJump))]
[JsonDerivedType(typeof(FSDTarget))]
[JsonDerivedType(typeof(LeaveBody))]
[JsonDerivedType(typeof(Liftoff))]
[JsonDerivedType(typeof(Location))]
[JsonDerivedType(typeof(NavRoute))]
[JsonDerivedType(typeof(NavRouteClear))]
[JsonDerivedType(typeof(StartJump))]
[JsonDerivedType(typeof(SupercruiseDestinationDrop))]
[JsonDerivedType(typeof(SupercruiseEntry))]
[JsonDerivedType(typeof(SupercruiseExit))]
[JsonDerivedType(typeof(Touchdown))]
[JsonDerivedType(typeof(Undocked))]
[JsonDerivedType(typeof(MarketFile))]
[JsonDerivedType(typeof(ModuleInfoFile))]
[JsonDerivedType(typeof(NavRouteFile))]
[JsonDerivedType(typeof(OutfittingFile))]
[JsonDerivedType(typeof(ShipyardFile))]
[JsonDerivedType(typeof(Status))]
[JsonDerivedType(typeof(JournalBase))]
public class JournalBase
[JsonPolymorphic(TypeDiscriminatorPropertyName = "event", UnknownDerivedTypeHandling = JsonUnknownDerivedTypeHandling.FailSerialization)]
[JsonDerivedType(typeof(Bounty), "Bounty")]
[JsonDerivedType(typeof(CapShipBound), "CapShipBound")]
[JsonDerivedType(typeof(Died), "Died")]
[JsonDerivedType(typeof(EscapeInterdiction), "EscapeInterdiction")]
[JsonDerivedType(typeof(FactionKillBond), "FactionKillBond")]
[JsonDerivedType(typeof(FighterDestroyed), "FighterDestroyed")]
[JsonDerivedType(typeof(HeatDamage), "HeatDamage")]
[JsonDerivedType(typeof(HeatWarning), "HeatWarning")]
[JsonDerivedType(typeof(HullDamage), "HullDamage")]
[JsonDerivedType(typeof(Interdicted), "Interdicted")]
[JsonDerivedType(typeof(Interdiction), "Interdiction")]
[JsonDerivedType(typeof(PVPKill), "PVPKill")]
[JsonDerivedType(typeof(SRVDestroyed), "SRVDestroyed")]
[JsonDerivedType(typeof(ShieldState), "ShieldState")]
[JsonDerivedType(typeof(ShipTargeted), "ShipTargeted")]
[JsonDerivedType(typeof(UnderAttack), "UnderAttack")]
[JsonDerivedType(typeof(BuyExplorationData), "BuyExplorationData")]
[JsonDerivedType(typeof(CodexEntry), "CodexEntry")]
[JsonDerivedType(typeof(DiscoveryScan), "DiscoveryScan")]
[JsonDerivedType(typeof(FSSAllBodiesFound), "FSSAllBodiesFound")]
[JsonDerivedType(typeof(FSSBodySignals), "FSSBodySignals")]
[JsonDerivedType(typeof(FSSDiscoveryScan), "FSSDiscoveryScan")]
[JsonDerivedType(typeof(FSSSignalDiscovered), "FSSSignalDiscovered")]
[JsonDerivedType(typeof(MaterialCollected), "MaterialCollected")]
[JsonDerivedType(typeof(MaterialDiscarded), "MaterialDiscarded")]
[JsonDerivedType(typeof(MaterialDiscovered), "MaterialDiscovered")]
[JsonDerivedType(typeof(MultiSellExplorationData), "MultiSellExplorationData")]
[JsonDerivedType(typeof(NavBeaconScan), "NavBeaconScan")]
[JsonDerivedType(typeof(SAAScanComplete), "SAAScanComplete")]
[JsonDerivedType(typeof(SAASignalsFound), "SAASignalsFound")]
[JsonDerivedType(typeof(Scan), "Scan")]
[JsonDerivedType(typeof(ScanBaryCentre), "ScanBaryCentre")]
[JsonDerivedType(typeof(Screenshot), "Screenshot")]
[JsonDerivedType(typeof(SellExplorationData), "SellExplorationData")]
[JsonDerivedType(typeof(CarrierBankTransfer), "CarrierBankTransfer")]
[JsonDerivedType(typeof(CarrierBuy), "CarrierBuy")]
[JsonDerivedType(typeof(CarrierCancelDecommission), "CarrierCancelDecommission")]
[JsonDerivedType(typeof(CarrierCrewServices), "CarrierCrewServices")]
[JsonDerivedType(typeof(CarrierDecommission), "CarrierDecommission")]
[JsonDerivedType(typeof(CarrierDepositFuel), "CarrierDepositFuel")]
[JsonDerivedType(typeof(CarrierDockingPermission), "CarrierDockingPermission")]
[JsonDerivedType(typeof(CarrierFinance), "CarrierFinance")]
[JsonDerivedType(typeof(CarrierJump), "CarrierJump")]
[JsonDerivedType(typeof(CarrierJumpCancelled), "CarrierJumpCancelled")]
[JsonDerivedType(typeof(CarrierJumpRequest), "CarrierJumpRequest")]
[JsonDerivedType(typeof(CarrierModulePack), "CarrierModulePack")]
[JsonDerivedType(typeof(CarrierShipPack), "CarrierShipPack")]
[JsonDerivedType(typeof(CarrierStats), "CarrierStats")]
[JsonDerivedType(typeof(CarrierTradeOrder), "CarrierTradeOrder")]
[JsonDerivedType(typeof(FCMaterlas), "FCMaterlas")]
[JsonDerivedType(typeof(InvalidJson), "InvalidJson")]
[JsonDerivedType(typeof(BackpackChange), "BackpackChange")]
[JsonDerivedType(typeof(BackpackMaterials), "Backpack")]
[JsonDerivedType(typeof(BookDropship), "BookDropship")]
[JsonDerivedType(typeof(BookTaxi), "BookTaxi")]
[JsonDerivedType(typeof(BuyMicroResources), "BuyMicroResources")]
[JsonDerivedType(typeof(BuySuit), "BuySuit")]
[JsonDerivedType(typeof(BuyWeapon), "BuyWeapon")]
[JsonDerivedType(typeof(CancelDropship), "CancelDropship")]
[JsonDerivedType(typeof(CancelTaxi), "CancelTaxi")]
[JsonDerivedType(typeof(CollectItems), "CollectItems")]
[JsonDerivedType(typeof(CreateSuitLoadout), "CreateSuitLoadout")]
[JsonDerivedType(typeof(DeleteSuitLoadout), "DeleteSuitLoadout")]
[JsonDerivedType(typeof(Disembark), "Disembark")]
[JsonDerivedType(typeof(DropItems), "DropItems")]
[JsonDerivedType(typeof(DropShipDeploy), "DropShipDeploy")]
[JsonDerivedType(typeof(Embark), "Embark")]
[JsonDerivedType(typeof(FCMaterials), "FCMaterials")]
[JsonDerivedType(typeof(LoadoutEquipModule), "LoadoutEquipModule")]
[JsonDerivedType(typeof(LoadoutRemoveModule), "LoadoutRemoveModule")]
[JsonDerivedType(typeof(RenameSuitLoadout), "RenameSuitLoadout")]
[JsonDerivedType(typeof(ScanOrganic), "ScanOrganic")]
[JsonDerivedType(typeof(SellMicroResources), "SellMicroResources")]
[JsonDerivedType(typeof(SellOrganicData), "SellOrganicData")]
[JsonDerivedType(typeof(SellSuit), "SellSuit")]
[JsonDerivedType(typeof(SellWeapon), "SellWeapon")]
[JsonDerivedType(typeof(ShipLockerMaterials), "ShipLocker")]
[JsonDerivedType(typeof(SuitLoadout), "SuitLoadout")]
[JsonDerivedType(typeof(SwitchSuitLoadout) , "SwitchSuitLoadout")]
[JsonDerivedType(typeof(TradeMicroResources), "TradeMicroResources")]
[JsonDerivedType(typeof(TransferMicroResources), "TransferMicroResources")]
[JsonDerivedType(typeof(UpgradeSuit), "UpgradeSuit")]
[JsonDerivedType(typeof(UpgradeWeapon), "UpgradeWeapon")]
[JsonDerivedType(typeof(UseConsumable), "UseConsumable")]
[JsonDerivedType(typeof(AfmuRepairs), "AfmuRepairs")]
[JsonDerivedType(typeof(ApproachSettlement), "ApproachSettlement")]
[JsonDerivedType(typeof(CargoTransfer), "CargoTransfer")]
[JsonDerivedType(typeof(ChangeCrewRole), "ChangeCrewRole")]
[JsonDerivedType(typeof(CockpitBreached), "CockpitBreached")]
[JsonDerivedType(typeof(CommitCrime), "CommitCrime")]
[JsonDerivedType(typeof(Continued), "Continued")]
[JsonDerivedType(typeof(CrewLaunchFighter), "CrewLaunchFighter")]
[JsonDerivedType(typeof(CrewMemberJoins), "CrewMemberJoins")]
[JsonDerivedType(typeof(CrewMemberQuits), "CrewMemberQuits")]
[JsonDerivedType(typeof(CrewMemberRoleChange), "CrewMemberRoleChange")]
[JsonDerivedType(typeof(CrimeVictim), "CrimeVictim")]
[JsonDerivedType(typeof(DataScanned), "DataScanned")]
[JsonDerivedType(typeof(DatalinkScan), "DatalinkScan")]
[JsonDerivedType(typeof(DatalinkVoucher), "DatalinkVoucher")]
[JsonDerivedType(typeof(DockFighter), "DockFighter")]
[JsonDerivedType(typeof(DockSRV), "DockSRV")]
[JsonDerivedType(typeof(EndCrewSession), "EndCrewSession")]
[JsonDerivedType(typeof(FighterRebuilt), "FighterRebuilt")]
[JsonDerivedType(typeof(Friends), "Friends")]
[JsonDerivedType(typeof(FuelScoop), "FuelScoop")]
[JsonDerivedType(typeof(JetConeBoost), "JetConeBoost")]
[JsonDerivedType(typeof(JetConeDamage), "JetConeDamage")]
[JsonDerivedType(typeof(JoinACrew), "JoinACrew")]
[JsonDerivedType(typeof(KickCrewMember), "KickCrewMember")]
[JsonDerivedType(typeof(LaunchDrone), "LaunchDrone")]
[JsonDerivedType(typeof(LaunchFighter), "LaunchFighter")]
[JsonDerivedType(typeof(LaunchSRV), "LaunchSRV")]
[JsonDerivedType(typeof(ModuleInfo), "ModuleInfo")]
[JsonDerivedType(typeof(Music), "Music")]
[JsonDerivedType(typeof(NpcCrewPaidWage), "NpcCrewPaidWage")]
[JsonDerivedType(typeof(NpcCrewRank), "NpcCrewRank")]
[JsonDerivedType(typeof(Promotion), "Promotion")]
[JsonDerivedType(typeof(ProspectedAsteroid), "ProspectedAsteroid")]
[JsonDerivedType(typeof(QuitACrew), "QuitACrew")]
[JsonDerivedType(typeof(RebootRepair), "RebootRepair")]
[JsonDerivedType(typeof(ReceiveText), "ReceiveText")]
[JsonDerivedType(typeof(RepairDrone), "RepairDrone")]
[JsonDerivedType(typeof(ReservoirReplenished), "ReservoirReplenished")]
[JsonDerivedType(typeof(Resurrect), "Resurrect")]
[JsonDerivedType(typeof(Scanned), "Scanned")]
[JsonDerivedType(typeof(SelfDestruct), "SelfDestruct")]
[JsonDerivedType(typeof(SendText), "SendText")]
[JsonDerivedType(typeof(Shutdown), "Shutdown")]
[JsonDerivedType(typeof(Synthesis), "Synthesis")]
[JsonDerivedType(typeof(SystemsShutdown), "SystemsShutdown")]
[JsonDerivedType(typeof(USSDrop), "USSDrop")]
[JsonDerivedType(typeof(VehicleSwitch), "VehicleSwitch")]
[JsonDerivedType(typeof(WingAdd), "WingAdd")]
[JsonDerivedType(typeof(WingInvite), "WingInvite")]
[JsonDerivedType(typeof(WingJoin), "WingJoin")]
[JsonDerivedType(typeof(WingLeave), "WingLeave")]
[JsonDerivedType(typeof(PowerplayCollect), "PowerplayCollect")]
[JsonDerivedType(typeof(PowerplayDefect), "PowerplayDefect")]
[JsonDerivedType(typeof(PowerplayDeliver), "PowerplayDeliver")]
[JsonDerivedType(typeof(PowerplayFastTrack), "PowerplayFastTrack")]
[JsonDerivedType(typeof(PowerplayJoin), "PowerplayJoin")]
[JsonDerivedType(typeof(PowerplayLeave), "PowerplayLeave")]
[JsonDerivedType(typeof(PowerplaySalary), "PowerplaySalary")]
[JsonDerivedType(typeof(PowerplayVote), "PowerplayVote")]
[JsonDerivedType(typeof(PowerplayVoucher), "PowerplayVoucher")]
[JsonDerivedType(typeof(AppliedToSquadron), "AppliedToSquadron")]
[JsonDerivedType(typeof(DisbandedSquadron), "DisbandedSquadron")]
[JsonDerivedType(typeof(InvitedToSquadron), "InvitedToSquadron")]
[JsonDerivedType(typeof(JoinedSquadron), "JoinedSquadron")]
[JsonDerivedType(typeof(KickedFromSquadron), "KickedFromSquadron")]
[JsonDerivedType(typeof(LeftSquadron), "LeftSquadron")]
[JsonDerivedType(typeof(SharedBookmarkToSquadron), "SharedBookmarkToSquadron")]
[JsonDerivedType(typeof(SquadronCreated), "SquadronCreated")]
[JsonDerivedType(typeof(SquadronDemotion), "SquadronDemotion")]
[JsonDerivedType(typeof(SquadronPromotion), "SquadronPromotion")]
[JsonDerivedType(typeof(SquadronStartup), "SquadronStartup")]
[JsonDerivedType(typeof(WonATrophyForSquadron), "WonATrophyForSquadron")]
[JsonDerivedType(typeof(Cargo), "Cargo")]
[JsonDerivedType(typeof(ClearSavedGame), "ClearSavedGame")]
[JsonDerivedType(typeof(Commander), "Commander")]
[JsonDerivedType(typeof(FileHeader), "Fileheader")]
[JsonDerivedType(typeof(LoadGame), "LoadGame")]
[JsonDerivedType(typeof(Loadout), "Loadout")]
[JsonDerivedType(typeof(Materials), "Materials")]
[JsonDerivedType(typeof(Missions), "Missions")]
[JsonDerivedType(typeof(NewCommander), "NewCommander")]
[JsonDerivedType(typeof(Passengers), "Passengers")]
[JsonDerivedType(typeof(Startup.Powerplay), "Powerplay")]
[JsonDerivedType(typeof(Progress), "Progress")]
[JsonDerivedType(typeof(Rank), "Rank")]
[JsonDerivedType(typeof(Reputation), "Reputation")]
[JsonDerivedType(typeof(Statistics), "Statistics")]
[JsonDerivedType(typeof(BuyAmmo), "BuyAmmo")]
[JsonDerivedType(typeof(BuyDrones), "BuyDrones")]
[JsonDerivedType(typeof(CargoDepot), "CargoDepot")]
[JsonDerivedType(typeof(ClearImpound), "ClearImpound")]
[JsonDerivedType(typeof(CommunityGoal), "CommunityGoal")]
[JsonDerivedType(typeof(CommunityGoalDiscard), "CommunityGoalDiscard")]
[JsonDerivedType(typeof(CommunityGoalJoin), "CommunityGoalJoin")]
[JsonDerivedType(typeof(CommunityGoalReward), "CommunityGoalReward")]
[JsonDerivedType(typeof(CrewAssign), "CrewAssign")]
[JsonDerivedType(typeof(CrewFire), "CrewFire")]
[JsonDerivedType(typeof(CrewHire), "CrewHire")]
[JsonDerivedType(typeof(EngineerApply), "EngineerApply")]
[JsonDerivedType(typeof(EngineerContribution), "EngineerContribution")]
[JsonDerivedType(typeof(EngineerCraft), "EngineerCraft")]
[JsonDerivedType(typeof(EngineerLegacyConvert), "EngineerLegacyConvert")]
[JsonDerivedType(typeof(EngineerProgress), "EngineerProgress")]
[JsonDerivedType(typeof(FetchRemoteModule), "FetchRemoteModule")]
[JsonDerivedType(typeof(Market), "Market")]
[JsonDerivedType(typeof(MassModuleStore), "MassModuleStore")]
[JsonDerivedType(typeof(MaterialTrade), "MaterialTrade")]
[JsonDerivedType(typeof(MissionAbandoned), "MissionAbandoned")]
[JsonDerivedType(typeof(MissionAccepted), "MissionAccepted")]
[JsonDerivedType(typeof(MissionCompleted), "MissionCompleted")]
[JsonDerivedType(typeof(MissionFailed), "MissionFailed")]
[JsonDerivedType(typeof(MissionRedirected), "MissionRedirected")]
[JsonDerivedType(typeof(ModuleBuy), "ModuleBuy")]
[JsonDerivedType(typeof(ModuleRetrieve), "ModuleRetrieve")]
[JsonDerivedType(typeof(ModuleSell), "ModuleSell")]
[JsonDerivedType(typeof(ModuleSellRemote), "ModuleSellRemote")]
[JsonDerivedType(typeof(ModuleStore), "ModuleStore")]
[JsonDerivedType(typeof(ModuleSwap), "ModuleSwap")]
[JsonDerivedType(typeof(Outfitting), "Outfitting")]
[JsonDerivedType(typeof(PayBounties), "PayBounties")]
[JsonDerivedType(typeof(PayFines), "PayFines")]
[JsonDerivedType(typeof(PayLegacyFines), "PayLegacyFines")]
[JsonDerivedType(typeof(RedeemVoucher), "RedeemVoucher")]
[JsonDerivedType(typeof(RefuelAll), "RefuelAll")]
[JsonDerivedType(typeof(RefuelPartial), "RefuelPartial")]
[JsonDerivedType(typeof(Repair), "Repair")]
[JsonDerivedType(typeof(RepairAll), "RepairAll")]
[JsonDerivedType(typeof(RestockVehicle), "RestockVehicle")]
[JsonDerivedType(typeof(ScientificResearch), "ScientificResearch")]
[JsonDerivedType(typeof(SearchAndRescue), "SearchAndRescue")]
[JsonDerivedType(typeof(SellDrones), "SellDrones")]
[JsonDerivedType(typeof(SellShipOnRebuy), "SellShipOnRebuy")]
[JsonDerivedType(typeof(SetUserShipName), "SetUserShipName")]
[JsonDerivedType(typeof(Shipyard), "Shipyard")]
[JsonDerivedType(typeof(ShipyardBuy), "ShipyardBuy")]
[JsonDerivedType(typeof(ShipyardNew), "ShipyardNew")]
[JsonDerivedType(typeof(ShipyardSell), "ShipyardSell")]
[JsonDerivedType(typeof(ShipyardSwap), "ShipyardSwap")]
[JsonDerivedType(typeof(ShipyardTransfer), "ShipyardTransfer")]
[JsonDerivedType(typeof(StoredModules), "StoredModules")]
[JsonDerivedType(typeof(StoredShips), "StoredShips")]
[JsonDerivedType(typeof(TechnologyBroker), "TechnologyBroker")]
[JsonDerivedType(typeof(AsteroidCracked), "AsteroidCracked")]
[JsonDerivedType(typeof(BuyTradeData), "BuyTradeData")]
[JsonDerivedType(typeof(CollectCargo), "CollectCargo")]
[JsonDerivedType(typeof(EjectCargo), "EjectCargo")]
[JsonDerivedType(typeof(MarketBuy), "MarketBuy")]
[JsonDerivedType(typeof(MarketSell), "MarketSell")]
[JsonDerivedType(typeof(MiningRefined), "MiningRefined")]
[JsonDerivedType(typeof(ApproachBody), "ApproachBody")]
[JsonDerivedType(typeof(Docked), "Docked")]
[JsonDerivedType(typeof(DockingCancelled), "DockingCancelled")]
[JsonDerivedType(typeof(DockingDenied), "DockingDenied")]
[JsonDerivedType(typeof(DockingGranted), "DockingGranted")]
[JsonDerivedType(typeof(DockingRequested), "DockingRequested")]
[JsonDerivedType(typeof(DockingTimeout), "DockingTimeout")]
[JsonDerivedType(typeof(FSDJump), "FSDJump")]
[JsonDerivedType(typeof(FSDTarget), "FSDTarget")]
[JsonDerivedType(typeof(LeaveBody), "LeaveBody")]
[JsonDerivedType(typeof(Liftoff), "Liftoff")]
[JsonDerivedType(typeof(Location), "Location")]
[JsonDerivedType(typeof(NavRoute), "NavRoute")]
[JsonDerivedType(typeof(NavRouteClear), "NavRouteClear")]
[JsonDerivedType(typeof(StartJump), "StartJump")]
[JsonDerivedType(typeof(SupercruiseDestinationDrop), "SupercruiseDestinationDrop")]
[JsonDerivedType(typeof(SupercruiseEntry), "SupercruiseEntry")]
[JsonDerivedType(typeof(SupercruiseExit), "SupercruiseExit")]
[JsonDerivedType(typeof(Touchdown), "Touchdown")]
[JsonDerivedType(typeof(Undocked), "Undocked")]
[JsonDerivedType(typeof(Status), "Status")]
public abstract class JournalBase
{
[JsonPropertyName("timestamp")]
public DateTimeOffset Timestamp { get; init; }
[JsonPropertyName("event")]
public string Event { get; init; }
[JsonExtensionData]
public Dictionary<string, object> AdditionalProperties { get; init; }
}

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>Observatory.Framework</RootNamespace>
<Configurations>Debug;Release;Portable</Configurations>