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

Export version fixes (#83)

* Add file association for .eop, prompt for install dir

* Handle .eop or .aip file passed as arg.

* VS2022 version bump

* Filter neutron stars and black holes from fast spinning criteria.

* Adjustments for new "high value" check

* Refactor herald cache

* Fix element order and namespaces for voice moods.

* Add explicit .Stop() between audio player calls.

* Use nullsafe member access instead of skipping

* Don't queue up a title that's already queued.

* Improve body ordinal handling for explorer speech titles.

* Escape strings being inserted into xml

* Handle flip-flopping JSON type

* Converter for flip-flopping property type

* Use the converter

* Escape characters *before* we wrap it in xml.

* Give Eahlstan his clear button. :D

* Exclude all stars from fast rotation check.

* Close outstanding popup notifications on exit.

* TO DONE

* [Herald] Suppress duplicate notification titles for spoken notifications

If you have notifications from multiple plugins producing notifications with the same title in quick succession (ie. "Body A 1 e" from both Explorer and BioInsights), the title on successive notifications will not be spoken again to save the breath of our friendly Azure speakers.

* Doc update

* Remove unintended member hiding

* Fix export errors when exporting BioInsights data, cleanup

Discovered a couple issues with exporting BioInsights data resulting from using two different types of objects in the data grid; improved error handling as well.

Also cleaned up some old-style read all code.

* Add read-all on launch setting

* Updated framework xml

* Improve high-value body description text

Co-authored-by: Fred Kuipers <mr.fredk@gmail.com>
This commit is contained in:
Jonathan Miller
2022-05-21 13:00:47 -02:30
committed by GitHub
parent 921f3867fa
commit 8de34a141c
31 changed files with 495 additions and 216 deletions

View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Immutable;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Observatory.Framework.Files.Converters
{
class MutableStringDoubleConverter : JsonConverter<object>
{
public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
return reader.GetString();
else
return reader.GetDouble();
}
public override void Write(Utf8JsonWriter writer, object value, JsonSerializerOptions options)
{
throw new NotImplementedException();
}
}
}

View File

@ -3,6 +3,5 @@
public class CrewLaunchFighter : CrewMemberJoins
{
public ulong ID { get; init; }
public bool Telepresence { get; init; }
}
}

View File

@ -1,7 +1,5 @@
namespace Observatory.Framework.Files.Journal
{
public class CrewMemberQuits : CrewMemberJoins
{
public bool Telepresence { get; init; }
}
{ }
}

View File

@ -3,6 +3,5 @@
public class CrewMemberRoleChange : CrewMemberJoins
{
public string Role { get; init; }
public bool Telepresence { get; init; }
}
}

View File

@ -1,7 +1,5 @@
namespace Observatory.Framework.Files.Journal
{
public class QuitACrew : JoinACrew
{
public bool Telepresence { get; init; }
}
{ }
}

View File

@ -6,11 +6,32 @@ namespace Observatory.Framework.Files.ParameterTypes
{
public string Label { get; init; }
public double Value { get; init; }
[JsonConverter(typeof(Converters.MutableStringDoubleConverter))]
public object Value
{
get
{
if (!string.IsNullOrEmpty(ValueString))
return ValueString;
else
return ValueNumeric;
}
init
{
if (value.GetType() == typeof(string))
ValueString = value.ToString();
else
ValueNumeric = (double)value;
}
}
public double OriginalValue { get; init; }
[JsonConverter(typeof(Converters.IntBoolConverter))]
public bool LessIsGood { get; init; }
private double ValueNumeric;
private string ValueString;
}
}