public GridCell(ITriangleFactory triangleFactory, IGrid parentGrid, Coordinates cellCoordinates)
        {
            _triangleFactory = triangleFactory ?? throw new ArgumentException(nameof(triangleFactory));
            Coordinates      = cellCoordinates ?? throw new ArgumentException(nameof(cellCoordinates));
            if (parentGrid == null)
            {
                throw new ArgumentException(nameof(parentGrid));
            }

            ParentGrid = parentGrid;

            GenerateTriangles();
        }
Beispiel #2
0
 public TriangleController(ITriangleFactory factory)
 {
     this.triangleFactory = factory;
 }
Beispiel #3
0
        public RenderMap(uint numColumns, uint numRows, Map map,
                         ITriangleFactory triangleFactory, ISpriteFactory spriteFactory,
                         ITextureAtlas textureAtlasTiles, ITextureAtlas textureAtlasWaves,
                         DataSource dataSource)
        {
            CoordinateSpace = new CoordinateSpace(map, this);

            columnRowFactor = (map.Size % 2 == 0) ? 4 : 2;

            ScrollX                = 0;
            ScrollY                = 0;
            this.numColumns        = numColumns;
            this.numRows           = numRows;
            this.map               = map;
            this.textureAtlasTiles = textureAtlasTiles;
            this.textureAtlasWaves = textureAtlasWaves;

            // store map sprite offsets
            for (uint i = 0; i < 81; ++i)
            {
                var spriteInfo = dataSource.GetSpriteInfo(Data.Resource.MapMaskUp, i);

                if (spriteInfo != null)
                {
                    maskOffsets.Add(i, new Position(spriteInfo.OffsetX, spriteInfo.OffsetY));
                }

                spriteInfo = dataSource.GetSpriteInfo(Data.Resource.MapMaskDown, i);

                if (spriteInfo != null)
                {
                    maskOffsets.Add(81u + i, new Position(spriteInfo.OffsetX, spriteInfo.OffsetY));
                }
            }

            uint numTriangles = (numColumns + ADDITIONAL_X_TILES) * (numRows + ADDITIONAL_Y_TILES) * 2u;

            triangles = new List <ITriangle>((int)numTriangles);
            waves     = new List <IMaskedSprite>((int)numTriangles / 2);

            for (uint column = 0; column < numColumns + ADDITIONAL_X_TILES; ++column)
            {
                for (int i = 0; i < 2; ++i) // up and down row
                {
                    for (uint row = 0; row < numRows + ADDITIONAL_Y_TILES; ++row)
                    {
                        // the triangles are created with the max mask height of 41.
                        // also see comments in TextureAtlasManager.AddAll for further details.

                        var triangle = triangleFactory.Create(TILE_WIDTH, TILE_RENDER_MAX_HEIGHT, 0, 0);

                        triangle.X       = (int)(column * TILE_WIDTH) - TILE_WIDTH / 2 + i * TILE_WIDTH / 2;
                        triangle.Y       = (int)(row * TILE_HEIGHT);
                        triangle.Visible = true;

                        triangles.Add(triangle);
                    }
                }
            }

            for (uint column = 0; column < numColumns + ADDITIONAL_X_TILES; ++column)
            {
                for (uint row = 0; row < numRows + ADDITIONAL_Y_TILES; ++row)
                {
                    var wave = spriteFactory.Create(48, 19, 0, 0, true, false) as IMaskedSprite;

                    wave.X       = (int)(column * TILE_WIDTH) - TILE_WIDTH / 2;
                    wave.Y       = (int)(row * TILE_HEIGHT);
                    wave.Visible = false;

                    waves.Add(wave);
                }
            }

            UpdatePosition();
        }
Beispiel #4
0
 public StructureProvider(IJointFactory jointFactory, IElementFactory elementFactory, ITriangleFactory triangleFactory)
 {
     this.jointFactory    = jointFactory;
     this.elementFactory  = elementFactory;
     this.triangleFactory = triangleFactory;
 }
 public GridCellFactory(ITriangleFactory triangleFactory)
 {
     _triangleFactory = triangleFactory ?? throw new ArgumentException(nameof(triangleFactory));
 }
Beispiel #6
0
 public TriangleNameController(ITriangleFactory factory)
 {
     _TriangleFactory = factory;
 }