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(); }
public TriangleController(ITriangleFactory factory) { this.triangleFactory = factory; }
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(); }
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)); }
public TriangleNameController(ITriangleFactory factory) { _TriangleFactory = factory; }