private void DrawBuildingChoices(RenderWindow window, Font font) { _sprites.Clear(); _buildingTypeSprites.Clear(); //_tab1Sprite.Clear(); //_tab2Sprite.Clear(); //_tab3Sprite.Clear(); _buildingTypeSprites.Add(_hutSprite, _mapCtx.BuildingTypes[5]); _buildingTypeSprites.Add(_houseSprite, _mapCtx.BuildingTypes[4]); _buildingTypeSprites.Add(_flatSprite, _mapCtx.BuildingTypes[2]); _buildingTypeSprites.Add(_cityHall, _mapCtx.BuildingTypes[0]); _buildingTypeSprites.Add(_fireStation, _mapCtx.BuildingTypes[1]); _buildingTypeSprites.Add(_hospital, _mapCtx.BuildingTypes[3]); _buildingTypeSprites.Add(_police, _mapCtx.BuildingTypes[8]); _buildingTypeSprites.Add(_spaceStation, _mapCtx.BuildingTypes[12]); _buildingTypeSprites.Add(_warehouse, _mapCtx.BuildingTypes[13]); _buildingTypeSprites.Add(_sawMill, _mapCtx.BuildingTypes[11]); _buildingTypeSprites.Add(_oreMine, _mapCtx.BuildingTypes[7]); _buildingTypeSprites.Add(_powerPlant, _mapCtx.BuildingTypes[9]); _buildingTypeSprites.Add(_metalMine, _mapCtx.BuildingTypes[6]); _buildingTypeSprites.Add(_pumpingStation, _mapCtx.BuildingTypes[10]); if (IsTab1Active == true) { _drawUIctx.RenderSprite(_hutSprite, window, _resolution.X - _boxSize * 10, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_houseSprite, window, _resolution.X - _boxSize * 8, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_flatSprite, window, _resolution.X - _boxSize * 6, _resolution.Y / 2, 0, 0, 64, 64); _sprites.Add(_hutSprite, "HUT"); _sprites.Add(_houseSprite, "HOUSE"); _sprites.Add(_flatSprite, "FLAT"); } else if (IsTab2Active) { _drawUIctx.RenderSprite(_cityHall, window, _resolution.X - _boxSize * 2, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_fireStation, window, _resolution.X - _boxSize * 4, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_hospital, window, _resolution.X - _boxSize * 6, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_police, window, _resolution.X - _boxSize * 8, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_spaceStation, window, _resolution.X - _boxSize * 10, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_warehouse, window, _resolution.X - _boxSize * 12, _resolution.Y / 2, 0, 0, 32, 32); _sprites.Add(_cityHall, "CITY HALL"); _sprites.Add(_fireStation, "FIRE STATION"); _sprites.Add(_hospital, "HOSPITAL"); _sprites.Add(_police, "POLICE DEPARTMENT"); _sprites.Add(_spaceStation, "SPACE STATION"); _sprites.Add(_warehouse, "WAREHOUSE"); } else if (IsTab3Active) { _drawUIctx.RenderSprite(_sawMill, window, _resolution.X - _boxSize * 6, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_oreMine, window, _resolution.X - _boxSize * 4, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_metalMine, window, _resolution.X - _boxSize * 2, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_powerPlant, window, _resolution.X - _boxSize * 10, _resolution.Y / 2, 0, 0, 32, 32); _drawUIctx.RenderSprite(_pumpingStation, window, _resolution.X - _boxSize * 8, _resolution.Y / 2, 0, 0, 32, 32); _sprites.Add(_sawMill, "SAWMILL"); _sprites.Add(_oreMine, "ORE MINE"); _sprites.Add(_metalMine, "METAL MINE"); _sprites.Add(_powerPlant, "POWER PLANT"); _sprites.Add(_pumpingStation, "PUMPING STATION"); } foreach (Sprite sprite in _sprites.Keys) { if (sprite.GetGlobalBounds().Contains((float)Mouse.GetPosition(window).X, (float)Mouse.GetPosition(window).Y)) { _sprites.TryGetValue(sprite, out _buildingSelected); _spriteSelected = sprite; } } }
public void DrawMapTile(RenderWindow window, Building[,] boxes, Font font) { //RectangleShape rec = new RectangleShape(); //rec.OutlineColor = new Color(Color.Transparent); //rec.OutlineThickness = 3.0f; //rec.FillColor = new Color(253, 254, 254); //rec.Size = new Vector2f(32 * 8, 32 * 4); //_mapSprites = new Sprite[Height, Width]; Vector2i pixelPos = Mouse.GetPosition(window); Vector2f worldPos = window.MapPixelToCoords(pixelPos, _gameCtx._windowEvents.View); int k = 0; for (uint x = 0; x < Width; x++) { for (uint y = 0; y < Height; y++) { _bgSprite.Position = new Vector2f(y, x); _drawUIctx.RenderSprite(_bgSprite, window, (x * 32), (y * 32), 0, 0, 32, 32); //_mapSprites[y, x] = _bgSprite; _cases[k++] = new Case(_bgSprite.GetGlobalBounds(), x, y); } } for (int i = 0; i < (boxes.Length / Height); i++) { for (int j = 0; j < (boxes.Length / Width); j++) { if (!object.Equals(boxes[i, j], null)) { foreach (KeyValuePair<Sprite, BuildingType> buildingType in _ui.Tab1Sprite) { if (boxes[i, j].Type == buildingType.Value) { _drawUIctx.RenderSprite(buildingType.Key, window, (uint)(j * 32), (uint)(i * 32), 0, 0, 32, 32); } } foreach (KeyValuePair<Sprite, BuildingType> buildingType in _ui.Tab2Sprite) { if (boxes[i, j].Type == buildingType.Value) { _drawUIctx.RenderSprite(buildingType.Key, window, (uint)(j * 32), (uint)(i * 32), 0, 0, 32, 32); } } foreach (KeyValuePair<Sprite, BuildingType> buildingType in _ui.Tab3Sprite) { if (boxes[i, j].Type == buildingType.Value) { _drawUIctx.RenderSprite(buildingType.Key, window, (uint)(j * 32), (uint)(i * 32), 0, 0, 32, 32); } } } } } for(int a = 0; a < _cases.Length; a++) { if (_cases[a].Contains((int)worldPos.X, (int)worldPos.Y)) { if (!object.Equals(boxes[_cases[a].X, _cases[a].Y], null)) { _ui.DrawBuildingInformations(window, font, boxes[_cases[a].X, _cases[a].Y]); } } } }