private SatelliteData(SatelliteSerializable serializable, Database database) { ItemId = new ItemId <SatelliteData>(serializable.Id, serializable.FileName); Name = serializable.Name; ModelImage = new SpriteId(serializable.ModelImage); ModelScale = new NumericValue <float>(serializable.ModelScale, 0.1f, 100f); SizeClass = serializable.SizeClass; Layout = new Layout(serializable.Layout); Barrels = serializable.Barrels?.Select(item => BarrelData.Deserialize(item, database)).ToArray(); }
public Satellite(SatelliteSerializable serializable, Database database) { Id = new ItemId <Satellite>(serializable.Id, serializable.FileName); Name = serializable.Name; ModelImage = serializable.ModelImage; ModelScale = new NumericValue <float>(serializable.ModelScale, 0.1f, 100f); SizeClass = serializable.SizeClass; Layout = new Layout(serializable.Layout); Barrels = serializable.Barrels?.Select(item => new Barrel(item, database)).ToArray(); OnDataDeserialized(serializable, database); }
private Satellite(SatelliteSerializable serializable, Database.Loader loader) { Id = new ItemId <Satellite>(serializable.Id); loader.AddSatellite(serializable.Id, this); Name = serializable.Name; ModelImage = new SpriteId(serializable.ModelImage, SpriteId.Type.Satellite); ModelScale = UnityEngine.Mathf.Clamp(serializable.ModelScale, 0.1f, 100f); SizeClass = serializable.SizeClass; Layout = new Layout(serializable.Layout); Barrels = new ImmutableCollection <Barrel>(serializable.Barrels?.Select(item => Barrel.Create(item, loader))); OnDataDeserialized(serializable, loader); }
public SatelliteSerializable Serialize() { var serializable = new SatelliteSerializable(); serializable.Id = ItemId.Id; serializable.FileName = ItemId.Name; serializable.ItemType = (int)ItemType.Satellite; serializable.Name = Name; serializable.ModelImage = ModelImage.ToString(); serializable.ModelScale = ModelScale.Value; serializable.SizeClass = SizeClass; serializable.Layout = Layout.Data; serializable.Barrels = Barrels?.Select(item => item.Serialize()).ToArray(); return(serializable); }
public void Save(SatelliteSerializable serializable) { serializable.Name = Name; serializable.ModelImage = ModelImage; serializable.ModelScale = ModelScale.Value; serializable.SizeClass = SizeClass; serializable.Layout = Layout.Data; if (Barrels == null || Barrels.Length == 0) { serializable.Barrels = null; } else { serializable.Barrels = Barrels.Select(item => item.Serialize()).ToArray(); } OnDataSerialized(ref serializable); }
partial void OnDataSerialized(ref SatelliteSerializable serializable);
partial void OnDataDeserialized(SatelliteSerializable serializable, Database database);
public static SatelliteData Deserialize(SatelliteSerializable serializable, Database database) { return(new SatelliteData(serializable, database)); }
public static Satellite Create(SatelliteSerializable serializable, Database.Loader loader) { return(new Satellite(serializable, loader)); }
partial void OnDataDeserialized(SatelliteSerializable serializable, Database.Loader loader);