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