Example #1
0
        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;
                }
            }
        }
Example #2
0
        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]);
                    }
                }    
            }
        }