Beispiel #1
0
 public FixedOffsetRotationGridNavigator(IMapNavigator <GridDirection> parent, int rotationSteps)
 {
     this.parent     = parent ?? throw new ArgumentNullException(nameof(parent));
     this.directions = new GridDirection[9];
     for (var i = 0; i < directions.Length; i += 1)
     {
         directions[i] = RotationGridNavigator.RotateBy((GridDirection)i, rotationSteps);
     }
 }
Beispiel #2
0
 public static void RotateMultiple()
 {
     RotationGridNavigator.RotateBy(GridDirection.None, 8).Should().Be(GridDirection.None);
     RotationGridNavigator.RotateBy(GridDirection.North, 8).Should().Be(GridDirection.North);
     RotationGridNavigator.RotateBy(GridDirection.None, 16).Should().Be(GridDirection.None);
     RotationGridNavigator.RotateBy(GridDirection.North, 16).Should().Be(GridDirection.North);
     RotationGridNavigator.RotateBy(GridDirection.None, 17).Should().Be(GridDirection.None);
     RotationGridNavigator.RotateBy(GridDirection.North, 17).Should().Be(GridDirection.NorthEast);
 }
Beispiel #3
0
 public static void RotateCounterClockWise()
 {
     RotationGridNavigator.RotateBy(GridDirection.None, -1).Should().Be(GridDirection.None);
     RotationGridNavigator.RotateBy(GridDirection.North, -1).Should().Be(GridDirection.NorthWest);
     RotationGridNavigator.RotateBy(GridDirection.NorthWest, -1).Should().Be(GridDirection.West);
     RotationGridNavigator.RotateBy(GridDirection.West, -1).Should().Be(GridDirection.SouthWest);
     RotationGridNavigator.RotateBy(GridDirection.SouthWest, -1).Should().Be(GridDirection.South);
     RotationGridNavigator.RotateBy(GridDirection.South, -1).Should().Be(GridDirection.SouthEast);
     RotationGridNavigator.RotateBy(GridDirection.SouthEast, -1).Should().Be(GridDirection.East);
     RotationGridNavigator.RotateBy(GridDirection.East, -1).Should().Be(GridDirection.NorthEast);
     RotationGridNavigator.RotateBy(GridDirection.NorthEast, -1).Should().Be(GridDirection.North);
 }
Beispiel #4
0
        public GameRenderingConfig(RenderType renderType,
            Range? wrapAroundX = null,
            Range? wrapAroundY = null,
            Range? limitX = null,
            Range? limitY = null)
        {
            WrapAroundX = wrapAroundX;
            WrapAroundY = wrapAroundY;
            LimitX = limitX;
            LimitY = limitY;
            RenderType = renderType;

            viewport = new MapViewport(RenderType)
            {
                SizeInTiles = new IntDimension(10, 10),
                Overdraw = new IntInsets(0, 0, 1, 0)
            };

            transformingMapViewport = new TransformingMapViewport(viewport);
            transformingMapViewport.PropertyChanged += OnViewportPropertyChanged;
            navigator = CreateNavigator(renderType, true);
            NonWrapAroundNavigator = CreateNavigator(renderType, false);
            MatcherNavigator = CreateMatcherNavigator();
        }
Beispiel #5
0
 public static void RotateZero()
 {
     RotationGridNavigator.RotateBy(GridDirection.None, 0).Should().Be(GridDirection.None);
     RotationGridNavigator.RotateBy(GridDirection.North, 0).Should().Be(GridDirection.North);
 }