protected override void AddDoor(Vector3Int from, Vector3Int to)
        {
            var newDoor = new DoorGrid2D()
            {
                From = from,
                To   = to,
            };

            if (!doors.ManualDoorModeData.DoorsList.Contains(newDoor))
            {
                Undo.RecordObject(doors, "Added door position");

                doors.ManualDoorModeData.DoorsList.Add(newDoor);

                EditorUtility.SetDirty(doors);
            }
        }
Ejemplo n.º 2
0
        public IDoorModeGrid2D GetDoorMode()
        {
            if (SelectedMode == DoorMode.Manual)
            {
                var doors = new List <DoorGrid2D>();

                foreach (var door in DoorsList)
                {
                    var doorLine = new DoorGrid2D(door.From.RoundToUnityIntVector3().ToCustomIntVector2(),
                                                  door.To.RoundToUnityIntVector3().ToCustomIntVector2()); // TODO: ugly

                    doors.Add(doorLine);
                }

                return(new ManualDoorModeGrid2D(doors));
            }

            if (SelectedMode == DoorMode.Simple)
            {
                return(new SimpleDoorModeGrid2D(DoorLength - 1, DistanceFromCorners));
            }

            throw new ArgumentException("Invalid door mode selected");
        }