internal SavedGameInfo(string title, IkonBaseObject previewData, FileInfo fileInfo) { this.Title = title; this.PreviewData = previewData; this.FileInfo = fileInfo; }
public object Deserialize(IkonBaseObject data, LoadSession session) { if (this.deserializationMethod == null) { throw new InvalidOperationException("No deserialization method defined for " + data.Tag); } return(this.deserializationMethod(data, session)); }
public static AConstructionSite Load(IkonBaseObject rawData, LoadSession session) { if (rawData.Tag.Equals(Colony.Tag)) { return(session.Load <Colony>(rawData)); } else { return(session.Load <StellarisAdmin>(rawData)); } }
public void NewSave(string title, IkonBaseObject previewData) { string fileName = SaveNamePrefix + this.nextSaveNumber + "." + SaveNameExtension; var saveFile = new FileInfo(this.saveFolderPath + fileName); saveFile.Directory.Create(); save(saveFile, title, previewData); this.nextSaveNumber++; }
internal IkonReference SaveReference(object originalValue, IkonBaseObject serializedValue, string namePrefix) { if (!this.nextReference.ContainsKey(namePrefix)) { this.nextReference[namePrefix] = 0; } var referenceName = namePrefix + this.nextReference[namePrefix].ToString(); this.referencedData[originalValue] = serializedValue; this.nextReference[namePrefix]++; serializedValue.ReferenceNames.Add(referenceName); return(new IkonReference(referenceName)); }
public static IEnumerable <Tuple <PointF, Color> > StarsOf(IkonBaseObject previewData) { var starData = previewData.To <IkonComposite>()[StarsKey].To <IkonArray>(); foreach (var item in starData.Select(x => x.To <IkonComposite>())) { var colorData = item[ColorKey].To <int[]>(); yield return(new Tuple <PointF, Color>( new PointF( item["x"].To <float>(), -item["y"].To <float>() ), Color.FromArgb(colorData[0], colorData[1], colorData[2]) )); } }
public void NewSave(string title, IkonBaseObject previewData) { if (previewData == null) { throw new ArgumentNullException(nameof(previewData)); } string fileName = SaveNamePrefix + this.nextSaveNumber + "." + SaveNameExtension; var saveFile = new FileInfo(this.saveFolderPath + fileName); saveFile.Directory.Create(); save(saveFile, title, previewData); this.nextSaveNumber++; }
public void OverwriteSave(SavedGameInfo savedGameData, string title, IkonBaseObject previewData) { if (savedGameData == null) { throw new ArgumentNullException(nameof(savedGameData)); } if (title == null) { throw new ArgumentNullException(nameof(title)); } if (previewData == null) { throw new ArgumentNullException(nameof(previewData)); } save(savedGameData.FileInfo, title, previewData); }
private void save(FileInfo saveFile, string title, IkonBaseObject previewData) { using (var output = new StreamWriter(saveFile.Create())) { var version = System.Reflection.Assembly.GetEntryAssembly().GetName().Version; var versionData = new IkonArray(); versionData.Add(new IkonInteger(version.Major)); versionData.Add(new IkonInteger(version.Minor)); versionData.Add(new IkonInteger(version.Revision)); versionData.Add(new IkonInteger(version.Build)); var writer = new IkadnWriter(output); versionData.Compose(writer); new IkonText(title).Compose(writer); previewData.Compose(writer); gameController.Save().Compose(writer); } }
public object Deserialize(IkonBaseObject rawData, LoadSession session) { var loadedValue = this.constructor(); var saveData = rawData.To <IkonComposite>(); foreach (var property in this.properties.Where(x => x.Attribute.DoSave)) { if (saveData.Keys.Contains(property.Name)) { property.Deserialize(loadedValue, saveData[property.Name].To <IkonBaseObject>(), session); } else { property.SetNull(loadedValue); } } return(loadedValue); }
public T Load <T>(IkonBaseObject data) { if (deserialized.ContainsKey(data)) { return((T)deserialized[data]); } if (this.Deindexer.HasType(typeof(T))) { return(this.Deindexer.Get <T>(data.To <int>())); } var expert = this.expertGetter(typeof(T)); var result = expert.Deserialize(data, this); if (postLoadActions.ContainsKey(typeof(T))) { postLoadActions[typeof(T)](result); } this.deserialized[data] = result; return((T)result); }
public T Load <T>(IkonBaseObject data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (deserialized.ContainsKey(data)) { return((T)deserialized[data]); } if (this.Deindexer.HasType(typeof(T))) { return(this.Deindexer.Get <T>(data.To <string>())); } var expert = this.expertGetter(typeof(T)); var result = expert.Deserialize(data, this); this.deserialized[data] = result; return((T)result); }
public object Deserialize(IkonBaseObject data, LoadSession session) { return(this.deserializeChildrenInvoker(this, data, session)); }
public static int TurnOf(IkonBaseObject previewData) { return(previewData.To <IkonComposite>()[TurnKey].To <int>()); }
public static bool IsAutosave(IkonBaseObject previewData) { return(previewData.To <IkonComposite>().Keys.Contains(AutosaveKey)); }
public void OverwriteSave(SavedGameInfo savedGameData, string title, IkonBaseObject previewData) { save(savedGameData.FileInfo, title, previewData); }
public void Deserialize(object parentObject, IkonBaseObject rawData, LoadSession session) { this.deserializer(parentObject, rawData, session); }