Exemple #1
0
        /// <summary>
        /// Adds the components.
        /// </summary>
        public void Initialize()
        {
            _assetManager = new AssetManager(Game);
            _assetManager.Initialize();

            _frameRateCounter = new FrameRateCounter(_assetManager, _spriteBatch);

            _camera = new Camera(Game);

            _chunkManager = new ChunkManager(Game, _spriteBatch, _camera, _assetManager);


            _mouseManager = new MouseManager(_camera);

            _playingStateInterface = new PlayingStateInterface(Game, _assetManager, _spriteBatch);
            _playingStateInterface.Initialize();

            _terrainManager = new TerrainManager(_spriteBatch, _camera, _assetManager);
            _chunkManager.Initialize();

            _jobManager = new JobManager(_terrainManager);

            _buildMenuManager = new BuildMenuManager(_spriteBatch, _camera, _playingStateInterface, _assetManager, _terrainManager, _jobManager);

            _npcManager = new NPCManager(_camera, _assetManager, _spriteBatch);
            _npcManager.Initialize();

            _graph = new Graph();
        }
Exemple #2
0
        /// <summary>
        /// Keeping up to date with the mouse clicks.
        /// </summary>
        /// <param name="currentMouseState">State of the current mouse.</param>
        public static void UpdateMouseClicks(MouseState currentMouseState)
        {
            if (currentMouseState.LeftButton == ButtonState.Pressed && _previousMouseState.LeftButton == ButtonState.Released)
            {
                // Only display info when not selecting/building stuff
                if (!IsMouseOverMenu() && GameState.State == GameStateType.PLAYING)
                {
                    SelectionInfo selection = SelectedTileInfo(GetWorldMousePosition());

                    if (selection != null)
                    {
                        PlayingStateInterface.SelectedTileInfo(selection);
                    }
                    else
                    {
                        _playerSelection = null;
                    }
                }
            }

            if (currentMouseState.RightButton == ButtonState.Pressed && _previousMouseState.RightButton == ButtonState.Released)
            {
                if (!IsMouseOverMenu() && GameState.State == GameStateType.PLAYING)
                {
                    if (_playerSelection != null)
                    {
                        if (_playerSelection.Entities.Count != 0)
                        {
                            // Create an array where all items should fit in
                            Minion[] minions = new Minion[_playerSelection.Entities.Count];
                            int      count   = 0;

                            foreach (ISelectableInterface item in _playerSelection.Entities)
                            {
                                // Check if the item is a minion
                                if (item.GetType() == typeof(Minion))
                                {
                                    minions[count] = (Minion)item;
                                    count++;
                                }
                            }

                            // Check if minions were added to the array
                            if (count > 0)
                            {
                                Vector2 position = GetWorldMousePosition();
                                Tile    tile     = ChunkManager.TileAtWorldPosition((int)position.X, (int)position.Y);

                                if (tile != null)
                                {
                                    // Move the last (visible) minion to the clicked tile
                                    NPCManager.MoveTo(minions.ElementAt(count - 1), tile); // TODO: Check if fully visible minion is the last one in the list
                                }
                            }
                        }
                    }
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// Determines whether [is mouse over menu].
 /// </summary>
 /// <returns>
 ///   <c>true</c> if [is mouse over menu]; otherwise, <c>false</c>.
 /// </returns>
 public static bool IsMouseOverMenu()
 {
     return(PlayingStateInterface.IsMouseOverMenu());
 }