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 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 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); }