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