Пример #1
0
        public void Action()
        {
            structureModule.AddNode(nameObject.text);
            string typeObject = null;

            switch (typebject.value)
            {
            case 0:
                if (metabject.isOn)
                {
                    typeObject = "Metavertex";
                }
                else
                {
                    typeObject = "Vertex";
                }
                break;

            case 1:
                if (metabject.isOn)
                {
                    typeObject = "Metagraph";
                }
                else
                {
                    typeObject = "Graph";
                }
                break;
            }
            structureModule.AddNodeData(nameObject.text, objectType: typeObject);
            SetStandartStartPosition();
            predicateModule.TactBuild(nameObject.text, typeObject);
        }
Пример #2
0
        // Пересобирает окружение в зависимости от режима (удаление части или перестройка), требуется имя части.
        public void RebuildObject(string typeRebuild, string name = null)
        {
            Structure target = (name != null) ? structureM.structure[name] : interactionM.targetObject;

            // Пересоздаём всех детей.
            //foreach (var part in target.ChildStructures)
            //{
            //    DeleteObject(part.Value.gameObject);
            //    if (typeRebuild == "rebuild")
            //    {
            //        predicateM.TactBuild(part.Value.Name, part.Value.ObjectType);
            //    }
            //}

            // Пересоздаём всех детей.
            foreach (var part in target.ChildStructures)
            {
                DeleteObject(part.Value.gameObject);
                if (typeRebuild == "delete")
                {
                    part.Value.ParentStructures.Remove(target.Name);
                }
                predicateM.TactBuild(part.Value.Name, part.Value.ObjectType);
            }

            // Пересоздаём всех родителей.
            foreach (var part in target.ParentStructures)
            {
                DeleteObject(part.Value.gameObject);
                if (typeRebuild == "delete")
                {
                    part.Value.ChildStructures.Remove(target.Name);
                }
                predicateM.TactBuild(part.Value.Name, part.Value.ObjectType);
            }

            DeleteObject(target.gameObject);
            if (typeRebuild == "delete")
            {
                structureM.structure.Remove(target.Name);
            }
            if (typeRebuild == "rebuild")
            {
                predicateM.TactBuild(saveSelectName, target.ObjectType);
            }
        }
Пример #3
0
        // Если сделали двойной клик в пустоту.
        public void DoubleTapToNull()
        {
            //Debug.Log("Я кликнул два раза в пустоту");

            isConnection = false;
            SelectActive(startConnectionObject, false);
            startConnectionObject = null;

            string name = PredicateModule.NameSystem.GetName("Vertex");

            Vector3[] position = new Vector3[1];

            // 5f - расстояние создания.
            Vector3 mousePosFar = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 5f);

            position[0] = Camera.main.ScreenToWorldPoint(mousePosFar);
            structureM.AddNode(name);
            structureM.AddNodeData(name, position, "Vertex");
            predicateM.TactBuild(name, "Vertex");
            changeM.ResetChange();
            isNowSelected             = true;
            freeCamera.selectedObject = name;
            changeM.ShowChangeMenu(name);
        }