public override void GizmoDrawings(beMobileMaze maze, GizmoType type) { var pathController = backend.selectedMaze.GetComponent <PathController>(); if (!pathController.Paths.Any()) { return; } if (!pathController.Paths.Any(p => p.ID == selected)) { return; } var pathToRender = pathController.Paths.First(p => p.ID == selected); var hoveringDistance = new Vector3(0, maze.RoomDimension.y * 0.9f, 0); var temp = Gizmos.color; Gizmos.color = tilePositionIsValid ? Color.green : Color.red; Gizmos.DrawCube( backend.visual.MarkerPosition + new Vector3(0, maze.RoomDimension.y * 0.5f, 0), maze.RoomDimension * 0.4f); Gizmos.color = temp; PathEditorUtils.RenderPathElements(maze, pathToRender, hoveringDistance, GetPrimaryColor()); }
private void Add(MazeUnit newUnit) { var newElement = new PathElement(newUnit); newElement = PathEditorUtils.GetElementType(newElement); var nr_el = pathToEdit.PathAsLinkedList.Count; // count all elements in the path to get the second last for turning calculation if (nr_el >= 1) { var previousElement = pathToEdit.PathAsLinkedList.Last.Value; if (nr_el >= 2) { var secpreviousElement = pathToEdit.PathAsLinkedList.Last.Previous.Value; newElement = PathEditorUtils.GetTurnType(newElement, previousElement, secpreviousElement); } else { newElement.Turn = TurnType.STRAIGHT; } } pathToEdit.PathAsLinkedList.AddLast(newElement); }