private SatelliteBuildData(SatelliteBuildSerializable serializable, Database database) { ItemId = new ItemId <SatelliteBuildData>(serializable.Id, serializable.FileName); SatelliteId = database.GetSatelliteId(serializable.SatelliteId); NotAvailableInGame = serializable.NotAvailableInGame; DifficultyClass = serializable.DifficultyClass; Components = serializable.Components?.Select(item => InstalledComponentData.Deserialize(item, database)).ToArray(); }
public SatelliteBuildSerializable Serialize() { var serializable = new SatelliteBuildSerializable(); serializable.Id = ItemId.Id; serializable.FileName = ItemId.Name; serializable.ItemType = (int)ItemType.SatelliteBuild; serializable.SatelliteId = SatelliteId.Id; serializable.NotAvailableInGame = NotAvailableInGame; serializable.DifficultyClass = DifficultyClass; serializable.Components = Components?.Select(item => item.Serialize()).ToArray(); return(serializable); }
public SatelliteBuild(SatelliteBuildSerializable serializable, Database database) { Id = new ItemId <SatelliteBuild>(serializable.Id, serializable.FileName); Satellite = database.GetSatelliteId(serializable.SatelliteId); if (Satellite.IsNull) { throw new DatabaseException(this.GetType().Name + ".Satellite cannot be null"); } NotAvailableInGame = serializable.NotAvailableInGame; DifficultyClass = serializable.DifficultyClass; Components = serializable.Components?.Select(item => new InstalledComponent(item, database)).ToArray(); OnDataDeserialized(serializable, database); }
public void Save(SatelliteBuildSerializable serializable) { serializable.SatelliteId = Satellite.Value; serializable.NotAvailableInGame = NotAvailableInGame; serializable.DifficultyClass = DifficultyClass; if (Components == null || Components.Length == 0) { serializable.Components = null; } else { serializable.Components = Components.Select(item => item.Serialize()).ToArray(); } OnDataSerialized(ref serializable); }
private SatelliteBuild(SatelliteBuildSerializable serializable, Database.Loader loader) { Id = new ItemId <SatelliteBuild>(serializable.Id); loader.AddSatelliteBuild(serializable.Id, this); Satellite = loader.GetSatellite(new ItemId <Satellite>(serializable.SatelliteId)); if (Satellite == null) { throw new DatabaseException(this.GetType().Name + ".Satellite cannot be null - " + serializable.SatelliteId); } NotAvailableInGame = serializable.NotAvailableInGame; DifficultyClass = serializable.DifficultyClass; Components = new ImmutableCollection <InstalledComponent>(serializable.Components?.Select(item => InstalledComponent.Create(item, loader))); OnDataDeserialized(serializable, loader); }
partial void OnDataSerialized(ref SatelliteBuildSerializable serializable);
partial void OnDataDeserialized(SatelliteBuildSerializable serializable, Database database);
public static SatelliteBuildData Deserialize(SatelliteBuildSerializable serializable, Database database) { return(new SatelliteBuildData(serializable, database)); }
public static SatelliteBuild Create(SatelliteBuildSerializable serializable, Database.Loader loader) { return(new SatelliteBuild(serializable, loader)); }
partial void OnDataDeserialized(SatelliteBuildSerializable serializable, Database.Loader loader);