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;
        }
Exemple #2
0
 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);
        }