public static void Look(ref TransformationAction value, string label) { if (Scribe.mode == LoadSaveMode.Saving) { string text = value == null ? Null : value.GetUniqueLoadID(); Scribe_Values.Look(ref text, label, Null); } else if (Scribe.mode == LoadSaveMode.LoadingVars) { value = MyExtractor(Scribe.loader.curXmlParent[label]); } }
private static TransformationAction MyExtractor(XmlNode subNode) { if (subNode == null || subNode.InnerText == null || subNode.InnerText == Null) { return(null); } TransformationAction result = TFActs.Find(act => act.GetUniqueLoadID() == subNode.InnerText); if (result == null) { Log.Error($"Could not load reference to {typeof(TransformationAction)} named {subNode.InnerText}"); } return(result); }
public void SaveData(TransformationAction owner, string key, object value) { if (owner.refName.NullOrEmpty()) { string def = owner.Transformation.Def.defName; string tf = owner.Transformation.Def.transformations.IndexOf(owner.Transformation).ToString(); string act = owner.Transformation.actions.IndexOf(owner).ToString(); Log.Warning($"TransformationAction of type {owner.GetType()} at position {def}.transformations[{tf}].actions[{act}] is saving data but has no refName. This will cause errors during loading."); } TFDataObject dataObject = savedData.Find(sd => sd.owner == owner); if (dataObject == null) { dataObject = new TFDataObject(owner); } dataObject.data.Add(key, value); }
public void ClearData(TransformationAction owner, string key) { savedData.Find(sd => sd.owner == owner)?.data?.Remove(key); }
public T LoadData <T>(TransformationAction owner, string key) { Dictionary <string, object> data = savedData.Find(sd => sd.owner == owner)?.data; return((data != null) && data.TryGetValue(key, out object value) ? (T)value : default(T)); }
public TFDataObject(TransformationAction owner) { this.owner = owner; }