private GalaxySettings(GalaxySettingsSerializable serializable, Database.Loader loader) { AbandonedStarbaseFaction = loader.GetFaction(new ItemId <Faction>(serializable.AbandonedStarbaseFaction)); StartingShipBuilds = new ImmutableCollection <ShipBuild>(serializable.StartingShipBuilds?.Select(item => loader.GetShipBuild(new ItemId <ShipBuild>(item), true))); OnDataDeserialized(serializable, loader); }
private GalaxySettingsData(GalaxySettingsSerializable serializable, Database database) { ItemId = new ItemId <GalaxySettingsData>(serializable.Id, serializable.FileName); AbandonedStarbaseFaction = database.GetFactionId(serializable.AbandonedStarbaseFaction); StartingShipBuilds = serializable.StartingShipBuilds?.Select(item => new Wrapper <ShipBuildData> { Item = database.GetShipBuildId(item) }).ToArray(); }
public GalaxySettings(GalaxySettingsSerializable serializable, Database database) { AbandonedStarbaseFaction = database.GetFactionId(serializable.AbandonedStarbaseFaction); StartingShipBuilds = serializable.StartingShipBuilds?.Select(id => new Wrapper <ShipBuild> { Item = database.GetShipBuildId(id) }).ToArray(); OnDataDeserialized(serializable, database); }
public GalaxySettingsSerializable Serialize() { var serializable = new GalaxySettingsSerializable(); serializable.Id = ItemId.Id; serializable.FileName = ItemId.Name; serializable.ItemType = (int)ItemType.GalaxySettings; serializable.AbandonedStarbaseFaction = AbandonedStarbaseFaction.Id; serializable.StartingShipBuilds = StartingShipBuilds?.Select(item => item.Item.Id).ToArray(); return(serializable); }
public void Save(GalaxySettingsSerializable serializable) { serializable.AbandonedStarbaseFaction = AbandonedStarbaseFaction.Value; if (StartingShipBuilds == null || StartingShipBuilds.Length == 0) { serializable.StartingShipBuilds = null; } else { serializable.StartingShipBuilds = StartingShipBuilds.Select(wrapper => wrapper.Item.Value).ToArray(); } OnDataSerialized(ref serializable); }
partial void OnDataSerialized(ref GalaxySettingsSerializable serializable);
partial void OnDataDeserialized(GalaxySettingsSerializable serializable, Database database);
public static GalaxySettings Create(GalaxySettingsSerializable serializable, Database.Loader loader) { return(new GalaxySettings(serializable, loader)); }
partial void OnDataDeserialized(GalaxySettingsSerializable serializable, Database.Loader loader);
public static GalaxySettingsData Deserialize(GalaxySettingsSerializable serializable, Database database) { return(new GalaxySettingsData(serializable, database)); }