public static void ShowWindow(GameObject obj) { identifier = obj.GetComponent <Iidentifier>(); components = new List <Component>(); componentSaves = new List <ComponentSave>(); foreach (Component c in obj.GetComponents <Component>()) { if (c.GetType() != typeof(SaveableIdentifier)) { components.Add(c); } } GetWindow <SaveSpecificEditor>(true, "Save specific", true); if (identifier.componentSaves == null) { for (int i = 0; i < components.Count; i++) { if (components[i].GetType() != typeof(SaveableIdentifier)) { List <bool> refVarList = new List <bool>(); for (int v = 0; v < ScriptReflector.GetVariableNames(components[i]).Count; v++) { refVarList.Add(false); } componentSaves.Add(new ComponentSave(components[i].GetType().Name, false, refVarList)); } } } else { componentSaves = identifier.componentSaves; } }
public static void ShowWindow(GameObject obj) { identifier = obj.GetComponent <Iidentifier>(); components = new List <Component>(); componentSaves = new List <ComponentSave>(); foreach (Component c in obj.GetComponents <Component>()) { if (c.GetType() != typeof(SaveableIdentifier)) { components.Add(c); } } GetWindow <FancySaveWindow>(true, "Save Window", true); }
private static void MakeSaveable(MenuCommand command) { GameObject obj = (GameObject)command.context; Iidentifier identifier = obj.GetComponent <SaveableIdentifier>(); if (identifier == null) { identifier = obj.AddComponent <SaveableIdentifier>(); identifier.id = SaveLoadSystem.GetXMLid(); SaveSpecificEditor.ShowWindow(obj); } else { Object.DestroyImmediate((SaveableIdentifier)identifier); SaveLoadSystem.Save(); } }
private static void AddToSave(GameObject obj, int id) { XmlNode idNode = GetCreateIdNode(id); Iidentifier identifier = obj.GetComponent <Iidentifier>(); List <ComponentSave> cSave = identifier.componentSaves; foreach (Component component in obj.GetComponents <Component>()) { ComponentSave componentSave = cSave.Find(x => x.componentTypeName == component.GetType().Name); if ( component.GetType() != typeof(SaveableIdentifier) && (GetChildNodeFromName(idNode, component.GetType().AssemblyQualifiedName) == null || identifier.hasChanged) && componentSave.boolItem == true ) { MakeVariableNodes(component, MakeComponentNode(component, idNode), componentSave); } } }