コード例 #1
0
        public IDoorModeGrid2D GetDoorMode(DoorsGrid2D doors)
        {
            var transformedDoorLines = DoorLines
                                       .Select(x => x.ToInternal())
                                       .ToList();

            return(new ManualDoorModeGrid2D(transformedDoorLines));
        }
コード例 #2
0
        public List <DoorLineGrid2D> GetDoorLines(DoorsGrid2D doors)
        {
            var doorLines = new List <DoorLineGrid2D>();

            try
            {
                var polygon = RoomTemplateLoaderGrid2D.GetPolygonFromRoomTemplate(doors.gameObject);

                if (polygon == null)
                {
                    return(null);
                }

                foreach (var originalLine in polygon.GetLines())
                {
                    var line     = originalLine;
                    var settings = GetSettings(line);

                    if (line.Length - settings.Margin1 - settings.Margin2 < settings.Length - 1)
                    {
                        continue;
                    }

                    if (!settings.Enabled)
                    {
                        continue;
                    }

                    if (line.GetDirection() == OrthogonalLineGrid2D.Direction.Bottom ||
                        line.GetDirection() == OrthogonalLineGrid2D.Direction.Left)
                    {
                        line = line.SwitchOrientation();
                    }

                    var doorLineTemp = line.Shrink(settings.Margin1, settings.Margin2);
                    var doorLine     = new DoorLineGrid2D()
                    {
                        From   = doorLineTemp.From.ToUnityIntVector3(),
                        To     = doorLineTemp.To.ToUnityIntVector3(),
                        Length = settings.Length,
                    };
                    doorLines.Add(doorLine);
                }
            }
            catch (ArgumentException)
            {
            }

            return(doorLines);
        }
コード例 #3
0
        public IDoorModeGrid2D GetDoorMode(DoorsGrid2D doors)
        {
            var doorLines = GetDoorLines(doors);

            if (doorLines == null)
            {
                throw new ArgumentException("The provided simple door mode is incorrect.");
            }

            var transformedDoorLines = doorLines
                                       .Select(x => x.ToInternal())
                                       .ToList();

            return(new ManualDoorModeGrid2D(transformedDoorLines));
        }
コード例 #4
0
        public IDoorModeGrid2D GetDoorMode(DoorsGrid2D doorsComponent)
        {
            var doors = new List <GraphBasedGenerator.Grid2D.DoorGrid2D>();

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

                doors.Add(doorLine);
            }

            return(new ManualDoorModeGrid2D(doors));
        }
コード例 #5
0
 public HybridDoorModeInspector(SerializedObject serializedObject, DoorsGrid2D doors, SerializedProperty serializedProperty) : base(serializedObject, doors, serializedProperty)
 {
 }
コード例 #6
0
 protected ManualDoorModeInspectorBase(SerializedObject serializedObject, DoorsGrid2D doors, SerializedProperty serializedProperty)
 {
     this.serializedObject   = serializedObject;
     this.doors              = doors;
     this.serializedProperty = serializedProperty;
 }
コード例 #7
0
 public SimpleDoorModeInspector(SerializedObject serializedObject, DoorsGrid2D doors)
 {
     this.serializedObject = serializedObject;
     this.doors            = doors;
 }