public override void OnInspectorGUI() { DrawDefaultInspector(); var node = (NodeBehaviour)this.target; GUIHelper.HorizontalLine(); var dataChanged = node.NodeState.StateChanged(); GUI.enabled = !node.noJson; if (GUILayout.Button("Save Node" + (dataChanged ? " *" : ""))) { var json = node.ToJson();//need to add as well?? NodeDataManager.AddNode(json); NodeDataLoader.SaveAll(NodeDataManager.SaveFilePath(), NodeDataManager.SaveDataHolder()); node.NodeState.UpdateState(); } GUI.enabled = true; changeParentMenu(node); if (GUILayout.Button("Normalise direct children")) { NodeHelper.NormaliseScale(node); } GUIHelper.HorizontalLine(); GUI.enabled = false; EditorGUILayout.Vector3Field("Position", node.GetPosition()); EditorGUILayout.Vector3Field("Scale", node.GetScale()); GUI.enabled = true; }
private IEnumerator nodeEnabledCoroutine() { while (!NodeDataManager.IsLoaded) { yield return(null); } NodeDataManager.NodeEnabled(this); }
private void acceptNode() { NodeDataManager.AddNode(this.node); if (this.node.behaviour == null) { this.createNodeBehaviour(); } this.accepted = true; this.Close(); }
public void OnGUI() { this.container = EditorGUILayout.ObjectField("container", this.container, typeof(Transform), true) as Transform; NodeDataName.DataFileName = EditorGUILayout.TextField("Data File Name", NodeDataName.DataFileName); GUI.enabled = this.container != null && !NodeDataManager.IsLoaded && !this.hasCreated; if (GUILayout.Button("Create")) { Debug.Log("Creating new room layout from cubes, old data will be deleted"); var data = NodeDataLoader.LoadAll(NodeDataName.DataFileName); NodeDataManager.Load(NodeDataName.DataFileName, data); NodeDataManager.DeleteAll(); var cubes = this.container.GetComponentsInChildren <Transform>(); foreach (var cube in cubes) { if (cube == this.container) { continue; } if (cube.parent != this.container) { Debug.LogWarning("Container has 2nd level a child that will be ignored"); continue; } var node = new NodeJson(NodeDataManager.NextName(NodeType.CUBE), cube.position, cube.localScale, "", NodeType.CUBE); NodeDataManager.AddNode(node); } NodeFactory.CreateNodes(NodeDataManager.NodeJsons); this.container.gameObject.SetActive(false); this.hasCreated = true; } GUI.enabled = true; if (NodeDataManager.IsLoaded) { GUILayout.Label("Please Unload first"); } GUIHelper.HorizontalLine(); GUI.skin.label.wordWrap = true; GUILayout.Label("** This Action will overrite current data **"); GUILayout.Label("If you dont want to lose any data please change the data file that is being used"); GUI.enabled = this.hasCreated; if (GUILayout.Button("Save")) { NodeDataLoader.SaveAll(NodeDataManager.SaveFilePath(), NodeDataManager.SaveDataHolder()); } GUI.enabled = true; }
private void finishNodeEditing() { NodeDataManager.Finish(); destroyAllBehaviours <NodeBehaviour>(); destroyAllGameObjects <HoleCutterBehaviour>(); destroyAllGameObjects <NodeBehaviour>(); closeAllOtherNodeWindows(); this.Close(); }
public void OnDisable() { if (NodeDataManager.Finished) { return; } if (NodeDataManager.IsLoaded) { NodeDataManager.NodeDisabled(this); } }
public void Load() { Debug.Log("Loading Nodes"); this.sceneChanged = false; NodeDataManager.Unload(); var data = NodeDataLoader.LoadAll(NodeDataName.DataFileName); NodeDataManager.Load(NodeDataName.DataFileName, data); NodeFactory.CreateRootParent(); NodeFactory.CreateNodes(NodeDataManager.NodeJsons); }
private static void cutHole(Vector3 pos, Vector3 sca, Transform wall) { var position = calculateHolePosition(pos, wall); var scale = calculateHoleScale(sca, wall); var parentScale = getParentScale(wall); var scaledPos = NodeHelper.InverseScale(position, parentScale); var scaledSca = NodeHelper.InverseScale(scale, parentScale); var hole = new NodeJson(wall.name, scaledPos, scaledSca, "", NodeType.HOLE); NodeDataManager.AddNode(hole); NodeFactory.CreateNode(hole); }
public static void SaveAll(string fileName, NodeJsonHolder data) { backup(GetFullPath(fileName)); var text = JsonUtility.ToJson(data, true); createFolders(GetFullPath(fileName)); var steam = new StreamWriter(GetFullPath(fileName)); steam.Write(text); steam.Close(); AssetDatabase.Refresh(); NodeDataManager.AfterSave(); }
public void OnDestroy() { if (NodeDataManager.Finished) { return; } if (this.HasParent) { this.RemoveParent(); } if (!this.noJson && this.json != null && NodeDataManager.IsLoaded) { NodeDataManager.RemoveNode(this.json); } }
public void Save() { Debug.Log("Save Nodes"); this.savingNodeData = true; this.sceneChanged = false; foreach (var node in NodeDataManager.NodeBehaviours) { if (node.nodeType == NodeType.HOLE) { continue; /* dont save hole? */ } node.UpdateJson(); // updates json node.NodeState.UpdateState(); } NodeDataLoader.SaveAll(NodeDataManager.SaveFilePath(), NodeDataManager.SaveDataHolder()); }
public void UpdateFromJson(NodeJson updatedJson) { if (updatedJson == null) { return; } this.name = updatedJson.name; this.transform.localPosition = updatedJson.position; if (this.GetScale() != updatedJson.scale) { var newScale = NodeHelper.InverseScale(updatedJson.scale, this.GetScale()); this.transform.localScale = newScale; NodeHelper.NormaliseScale(this); } var parentName = this.HasParent ? this.parent.name : ""; if (updatedJson.parentName != parentName) { var newParent = updatedJson.parentName == "" ? RootParent : NodeDataManager.FindNode(updatedJson.parentName); this.ChangeParent(newParent); } }
public QuadCreator(Vector3 position, Vector3 scale) : base(NodeDataManager.NextName("Quad"), position, scale) { }
public void UnLoad() { NodeDataManager.Unload(); }
public CubeCreator(Vector3 position, Vector3 scale) : base(NodeDataManager.NextName("cube"), position, scale) { }
public static void Load(string fileName, NodeJsonHolder data) { _instance = new NodeDataManager(fileName); _instance.loadData(data); // maybe need this line }
public static void Unload() { _instance = null; DeleteAutoGenObjects(); }
public static void Finish() { _instance = null; _finished = true; }
private void createNewNode(string nodeType) { this.node = new NodeJson(NodeDataManager.NextName(nodeType), Vector3.zero, Vector3.one, "", nodeType); }
private NodeBehaviour getOldWall() { return(NodeDataManager.FindNode(this.name)); }
public EmptyCreator(Vector3 position, Vector3 scale) : base(NodeDataManager.NextName("empty"), position, scale) { }