31 lines
920 B
C#
31 lines
920 B
C#
using EDPlayerJournal.Entries;
|
|
|
|
namespace EDPlayerJournal.BGS.Parsers;
|
|
|
|
internal class CarrierJumpParser : ITransactionParserPart {
|
|
public void Parse(Entry entry, TransactionParserContext context, TransactionParserOptions options, TransactionList transactions) {
|
|
CarrierJump? jump = entry as CarrierJump;
|
|
|
|
if (jump == null) {
|
|
return;
|
|
}
|
|
|
|
if (!jump.Docked) {
|
|
return;
|
|
}
|
|
|
|
context.CurrentSystem = jump.StarSystem;
|
|
context.CurrentSystemAddress = jump.SystemAddress;
|
|
|
|
context.SystemsByID.TryAdd(jump.SystemAddress, jump.StarSystem);
|
|
|
|
if (!string.IsNullOrEmpty(jump.SystemFaction)) {
|
|
context.ControllingFaction = jump.SystemFaction;
|
|
}
|
|
|
|
if (jump.SystemFactions != null && jump.SystemFactions.Count > 0) {
|
|
context.SystemFactions[jump.StarSystem] = jump.SystemFactions;
|
|
}
|
|
}
|
|
}
|