Example #1
0
        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());
        }
Example #2
0
        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);
        }