Exemple #1
0
 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]);
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public void ClearData(TransformationAction owner, string key)
 {
     savedData.Find(sd => sd.owner == owner)?.data?.Remove(key);
 }
Exemple #5
0
        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;
 }