mirror of
https://github.com/9ParsonsB/Pulsar.git
synced 2025-07-01 16:33:43 -04:00
Reorganize all observatory core projects into monorepo (#25)
* chore: move all observatory repos to core * only save journal folder on change, don't constantly re-check during monitoring * chore: monorepo project changes * chore: monorepo migration
This commit is contained in:
@ -0,0 +1,8 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class BuyExplorationData : JournalBase
|
||||
{
|
||||
public string System { get; init; }
|
||||
public int Cost { get; init; }
|
||||
}
|
||||
}
|
27
ObservatoryFramework/Files/Journal/Exploration/CodexEntry.cs
Normal file
27
ObservatoryFramework/Files/Journal/Exploration/CodexEntry.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class CodexEntry : JournalBase
|
||||
{
|
||||
public long EntryID { get; init; }
|
||||
public string Name { get; init; }
|
||||
public string Name_Localised { get; init; }
|
||||
public string SubCategory { get; init; }
|
||||
public string SubCategory_Localised { get; init; }
|
||||
public string Category { get; init; }
|
||||
public string Category_Localised { get; init; }
|
||||
public string Region { get; init; }
|
||||
public string Region_Localised { get; init; }
|
||||
public string System { get; init; }
|
||||
public ulong SystemAddress { get; init; }
|
||||
public string NearestDestination { get; init; }
|
||||
public string NearestDestination_Localised { get; init; }
|
||||
public bool IsNewEntry { get; init; }
|
||||
public bool NewTraitsDiscovered { get; init; }
|
||||
public ImmutableList<string> Traits { get; init; }
|
||||
public int VoucherAmount { get; init; }
|
||||
public float Latitude { get; init; }
|
||||
public float Longitude { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class DiscoveryScan : JournalBase
|
||||
{
|
||||
public ulong SystemAddress { get; init; }
|
||||
public int Bodies { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class FSSAllBodiesFound : JournalBase
|
||||
{
|
||||
public string SystemName { get; init; }
|
||||
public ulong SystemAddress { get; init; }
|
||||
public int Count { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class FSSBodySignals : SAASignalsFound
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class FSSDiscoveryScan : JournalBase
|
||||
{
|
||||
public string SystemName { get; init; }
|
||||
public ulong SystemAddress { get; init; }
|
||||
public float Progress { get; init; }
|
||||
public int BodyCount { get; init; }
|
||||
public int NonBodyCount { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class FSSSignalDiscovered : JournalBase
|
||||
{
|
||||
public string SignalName { get; init; }
|
||||
public string SignalName_Localised { get; init; }
|
||||
public string SpawningState { get; init; }
|
||||
public string SpawningState_Localised { get; init; }
|
||||
public string SpawningFaction { get; init; }
|
||||
public string SpawningFaction_Localised { get; init; }
|
||||
public float TimeRemaining { get; init; }
|
||||
public ulong SystemAddress { get; init; }
|
||||
public int ThreatLevel { get; init; }
|
||||
public string USSType { get; init; }
|
||||
public string USSType_Localised { get; init; }
|
||||
public bool IsStation { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class MaterialCollected : JournalBase
|
||||
{
|
||||
public string Category { get; init; }
|
||||
public string Name { get; init; }
|
||||
public string Name_Localised { get; init; }
|
||||
public int Count { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class MaterialDiscarded : MaterialCollected
|
||||
{
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class MaterialDiscovered : JournalBase
|
||||
{
|
||||
public string Category { get; init; }
|
||||
public string Name { get; init; }
|
||||
public string Name_Localised { get; init; }
|
||||
public int DiscoveryNumber { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
using Observatory.Framework.Files.ParameterTypes;
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class MultiSellExplorationData : JournalBase
|
||||
{
|
||||
public ImmutableList<Discovered> Discovered { get; init; }
|
||||
public long BaseValue { get; init; }
|
||||
public long Bonus { get; init; }
|
||||
public long TotalEarnings { get; init; }
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class NavBeaconScan : JournalBase
|
||||
{
|
||||
public int NumBodies { get; init; }
|
||||
public ulong SystemAddress { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class SAAScanComplete : JournalBase
|
||||
{
|
||||
public ulong SystemAddress { get; init; }
|
||||
public string BodyName { get; init; }
|
||||
public int BodyID { get; init; }
|
||||
/// <summary>
|
||||
/// This property is indicated with strikethrough in Frontier's documentation and may be deprecated.
|
||||
/// </summary>
|
||||
public ImmutableList<string> Discoverers { get; init; }
|
||||
/// <summary>
|
||||
/// This property is indicated with strikethrough in Frontier's documentation and may be deprecated.
|
||||
/// </summary>
|
||||
public ImmutableList<string> Mappers { get; init; }
|
||||
public int ProbesUsed { get; init; }
|
||||
public int EfficiencyTarget { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
using Observatory.Framework.Files.ParameterTypes;
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class SAASignalsFound : JournalBase
|
||||
{
|
||||
public ulong SystemAddress { get; init; }
|
||||
public string BodyName { get; init; }
|
||||
public int BodyID { get; init; }
|
||||
public ImmutableList<Signal> Signals { get; init; }
|
||||
}
|
||||
}
|
168
ObservatoryFramework/Files/Journal/Exploration/Scan.cs
Normal file
168
ObservatoryFramework/Files/Journal/Exploration/Scan.cs
Normal file
@ -0,0 +1,168 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Observatory.Framework.Files.ParameterTypes;
|
||||
using Observatory.Framework.Files.Converters;
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
/// <summary>
|
||||
/// Journal "Scan" event generated when directly FSS scanning, from automatic proximity scans, or nav beacon data.
|
||||
/// </summary>
|
||||
public class Scan : ScanBaryCentre
|
||||
{
|
||||
/// <summary>
|
||||
/// Type of scan which generated the event. Possible options include "Detailed", "AutoScan", and "NavBeaconDetail" (non-exhaustive).
|
||||
/// </summary>
|
||||
public string ScanType { get; init; }
|
||||
/// <summary>
|
||||
/// Name of scanned body.
|
||||
/// </summary>
|
||||
public string BodyName { get; init; }
|
||||
/// <summary>
|
||||
/// List which reflects Frontier's JSON structure for the "Parents" object. Use of Parent property is recommended instead.
|
||||
/// </summary>
|
||||
public ImmutableList<Parent> Parents {
|
||||
get => _Parents;
|
||||
init
|
||||
{
|
||||
_Parents = value;
|
||||
var ParentList = new System.Collections.Generic.List<(ParentType ParentType, int Body)>();
|
||||
foreach (var parent in value)
|
||||
{
|
||||
if (parent.Null != null)
|
||||
{
|
||||
ParentList.Add((ParentType.Null, parent.Null.GetValueOrDefault(0)));
|
||||
}
|
||||
else if (parent.Planet != null)
|
||||
{
|
||||
ParentList.Add((ParentType.Planet, parent.Planet.GetValueOrDefault(0)));
|
||||
}
|
||||
else if (parent.Star != null)
|
||||
{
|
||||
ParentList.Add((ParentType.Star, parent.Star.GetValueOrDefault(0)));
|
||||
}
|
||||
}
|
||||
Parent = ParentList.ToImmutableList();
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// "Parents" object rearranged into more intuitive structure for ease of use.
|
||||
/// </summary>
|
||||
[JsonIgnore]
|
||||
public ImmutableList<(ParentType ParentType, int Body)> Parent { get; init; }
|
||||
private ImmutableList<Parent> _Parents;
|
||||
/// <summary>
|
||||
/// Body distance from system arrival point in light-seconds.
|
||||
/// </summary>
|
||||
public double DistanceFromArrivalLS { get; init; }
|
||||
/// <summary>
|
||||
/// Indicates if body is tidally locked to another body (parent, child, or binary partner).
|
||||
/// </summary>
|
||||
public bool TidalLock { get; init; }
|
||||
/// <summary>
|
||||
/// Whether the planet can be or has been terraformed. Options include "Terraformable", "Terraformed", or "" (non-terraformable or naturally earth-like).
|
||||
/// </summary>
|
||||
public string TerraformState { get; init; }
|
||||
/// <summary>
|
||||
/// Class of planet. Consult your preferred source of journal documentation for all possible values.
|
||||
/// </summary>
|
||||
public string PlanetClass { get; init; }
|
||||
/// <summary>
|
||||
/// Descriptive string for body atmosphere, e.g. "hot thick sulfur dioxide atmosphere".
|
||||
/// </summary>
|
||||
public string Atmosphere { get; init; }
|
||||
/// <summary>
|
||||
/// Simple string indicating dominant atmosphere type, e.g. "SulfurDioxide".
|
||||
/// </summary>
|
||||
public string AtmosphereType { get; init; }
|
||||
/// <summary>
|
||||
/// List containing full breakdown of atmospheric components and their relative percentages.
|
||||
/// </summary>
|
||||
public ImmutableList<MaterialComposition> AtmosphereComposition { get; init; }
|
||||
/// <summary>
|
||||
/// Descriptive string for type of volcanism present, or an empty string for none, e.g. "major silicate vapour geysers volcanism".
|
||||
/// </summary>
|
||||
public string Volcanism { get; init; }
|
||||
/// <summary>
|
||||
/// Mass of body in multiples of Earth's mass (5.972e24 kg).
|
||||
/// </summary>
|
||||
public float MassEM { get; init; }
|
||||
/// <summary>
|
||||
/// Radius of body in metres.
|
||||
/// </summary>
|
||||
public float Radius { get; init; }
|
||||
/// <summary>
|
||||
/// Surface gravity in m/s².
|
||||
/// </summary>
|
||||
public float SurfaceGravity { get; init; }
|
||||
/// <summary>
|
||||
/// Average surface temperature in Kelvin.
|
||||
/// </summary>
|
||||
public float SurfaceTemperature { get; init; }
|
||||
/// <summary>
|
||||
/// Average surface pressure in Pascals.
|
||||
/// </summary>
|
||||
public float SurfacePressure { get; init; }
|
||||
/// <summary>
|
||||
/// Whether the body in landable in the player's current version of Elite Dangerous.
|
||||
/// </summary>
|
||||
public bool Landable { get; init; }
|
||||
/// <summary>
|
||||
/// List containing full breakdown of prospectable surface materials and their relative percentages.
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(MaterialCompositionConverter))]
|
||||
public ImmutableList<MaterialComposition> Materials { get; init; }
|
||||
/// <summary>
|
||||
/// Overall composition of body, expressed as percentages of ice, rock, and metal.
|
||||
/// </summary>
|
||||
public Composition Composition { get; init; }
|
||||
/// <summary>
|
||||
/// Rotation period of body in seconds.
|
||||
/// </summary>
|
||||
public float RotationPeriod { get; init; }
|
||||
/// <summary>
|
||||
/// Axial tilt of body in radians.
|
||||
/// </summary>
|
||||
public float AxialTilt { get; init; }
|
||||
/// <summary>
|
||||
/// List of all planetary or stellar ring systems around the body.
|
||||
/// </summary>
|
||||
public ImmutableList<Ring> Rings { get; init; }
|
||||
/// <summary>
|
||||
/// Description of the minable material abundance.<br/>Possible values inclue "PristineResources", "MajorResources", "CommonResources", "LowResources", and "DepletedResources".
|
||||
/// </summary>
|
||||
public string ReserveLevel { get; init; }
|
||||
/// <summary>
|
||||
/// Type of star. Consult your preferred source of journal documentation for all possible values.
|
||||
/// </summary>
|
||||
public string StarType { get; init; }
|
||||
/// <summary>
|
||||
/// Subclass of star. Consult your preferred source of journal documentation for all possible values.
|
||||
/// </summary>
|
||||
public int Subclass { get; init; }
|
||||
/// <summary>
|
||||
/// Mass of star in multiples of The Sun's mass (1.989e30 kg).
|
||||
/// </summary>
|
||||
public float StellarMass { get; init; }
|
||||
/// <summary>
|
||||
/// Absolute magnitude of star.
|
||||
/// </summary>
|
||||
public float AbsoluteMagnitude { get; init; }
|
||||
/// <summary>
|
||||
/// Age of body in millions of years.
|
||||
/// </summary>
|
||||
public int Age_MY { get; init; }
|
||||
/// <summary>
|
||||
/// Yerkes luminosity class of star.
|
||||
/// </summary>
|
||||
public string Luminosity { get; init; }
|
||||
/// <summary>
|
||||
/// Whether the body has been previously discovered by a player.
|
||||
/// </summary>
|
||||
public bool WasDiscovered { get; init; }
|
||||
/// <summary>
|
||||
/// Whether the body has been previously mapped by a player.
|
||||
/// </summary>
|
||||
public bool WasMapped { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
/// <summary>
|
||||
/// Barycentre orbital properties, automatically recorded when any member of a multiple-body orbital arrangement is first scanned.
|
||||
/// </summary>
|
||||
public class ScanBaryCentre : JournalBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Name of star system containing scanned body.
|
||||
/// </summary>
|
||||
public string StarSystem { get; init; }
|
||||
/// <summary>
|
||||
/// 64-bit unique identifier for the current star system. Also known as the system's "ID64".
|
||||
/// </summary>
|
||||
public ulong SystemAddress { get; init; }
|
||||
/// <summary>
|
||||
/// Id number of body within a system.
|
||||
/// </summary>
|
||||
public int BodyID { get; init; }
|
||||
/// <summary>
|
||||
/// Orbital semi-major axis in metres.<br/>Distance from the body's centre of gravity to the parent's centre of gravity at the most distant point in the orbit.
|
||||
/// </summary>
|
||||
public float SemiMajorAxis { get; init; }
|
||||
/// <summary>
|
||||
/// Orbital eccentricity.<br/>0: perfectly circular, 0 > x > 1: eccentric, 1: parabolic (escape) trajectory.<br/>(You should not ever see 1 or 0.)
|
||||
/// </summary>
|
||||
public float Eccentricity { get; init; }
|
||||
/// <summary>
|
||||
/// Orbital inclination in degrees.
|
||||
/// </summary>
|
||||
public float OrbitalInclination { get; init; }
|
||||
/// <summary>
|
||||
/// Argument of periapsis in degrees.
|
||||
/// </summary>
|
||||
public float Periapsis { get; init; }
|
||||
/// <summary>
|
||||
/// Orbital period in seconds.
|
||||
/// </summary>
|
||||
public float OrbitalPeriod { get; init; }
|
||||
/// <summary>
|
||||
/// Longitude of the ascending node in degrees.
|
||||
/// </summary>
|
||||
public float AscendingNode { get; init; }
|
||||
/// <summary>
|
||||
/// Mean anomaly in degrees.
|
||||
/// </summary>
|
||||
public float MeanAnomaly { get; init; }
|
||||
|
||||
}
|
||||
}
|
15
ObservatoryFramework/Files/Journal/Exploration/Screenshot.cs
Normal file
15
ObservatoryFramework/Files/Journal/Exploration/Screenshot.cs
Normal file
@ -0,0 +1,15 @@
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class Screenshot : JournalBase
|
||||
{
|
||||
public string Filename { get; init; }
|
||||
public int Width { get; init; }
|
||||
public int Height { get; init; }
|
||||
public string System { get; init; }
|
||||
public string Body { get; init; }
|
||||
public float Latitude { get; init; }
|
||||
public float Longitude { get; init; }
|
||||
public float Altitude { get; init; }
|
||||
public int Heading { get; init; }
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
using System.Collections.Immutable;
|
||||
|
||||
namespace Observatory.Framework.Files.Journal
|
||||
{
|
||||
public class SellExplorationData : JournalBase
|
||||
{
|
||||
public ImmutableList<string> Systems { get; init; }
|
||||
public ImmutableList<string> Discovered { get; init; }
|
||||
public long BaseValue { get; init; }
|
||||
public long Bonus { get; init; }
|
||||
public long TotalEarnings { get; init; }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user