示例#1
0
        public static Node GetNode(CRD crd, int floornumber)// возвращает узел
        {
            Stage stage = Stage.GetStage();
            Floor floor = stage.floors.Find(x => x.number == floornumber);

            if (floor != null)
            {
                return(floor.GetNode(crd.x, crd.z));
            }
            return(new Node());
        }
示例#2
0
        public Node GetSibling(string direction)
        {
            Node node;

            switch (direction)
            {
            case "r":
                node = floor.GetNode(crd.x, crd.z + 1);
                break;

            case "l":
                node = floor.GetNode(crd.x, crd.z - 1);
                break;

            case "t":
                node = floor.GetNode(crd.x - 1, crd.z);
                break;

            case "b":
                node = floor.GetNode(crd.x + 1, crd.z);
                break;

            case "lt":
                node = floor.GetNode(crd.x - 1, crd.z - 1);
                break;

            case "rt":
                node = floor.GetNode(crd.x - 1, crd.z + 1);
                break;

            case "lb":
                node = floor.GetNode(crd.x + 1, crd.z - 1);
                break;

            case "rb":
                node = floor.GetNode(crd.x + 1, crd.z + 1);
                break;

            default:
                node = new Node();
                break;
            }
            return(node);
        }