public PlayableGameStateClient(MessageHandlerID messageHandlerId,
                                IClientPlayerInfoManager clientPlayerInfoManager,
                                CollisionManager collisionManager,
                                IGlobalGameUISingleton globalGameUiSingleton,
                                INetworkingService networkingService,
                                PhysicsManager physicsManager,
                                PlayerShipManager playerShipManager,
                                ProjectileManager projectileManager,
                                SelectionManager selectionManager,
                                ClientShipManager clientShipManager,
                                SimulationManager simulationManager,
                                StructureFactoryManager structureFactoryManager,
                                WarpHoleManager warpholeManager,
                                TeamManager teamManager,
                                TargetingService targetingService,
                                FloatyAreaObjectManager floatyAreaObjectManager,
                                MessageService_ToServer messageService,
                                GameStateType stateType,
                                TViewModel viewModel
                                )
     : base(messageHandlerId, clientPlayerInfoManager, networkingService, collisionManager, physicsManager, playerShipManager, projectileManager, selectionManager, clientShipManager, simulationManager, structureFactoryManager, warpholeManager, teamManager, targetingService, floatyAreaObjectManager, messageService, viewModel, stateType)
 {
     ViewModel = viewModel;
     WebView   = (TWebView)Activator.CreateInstance(typeof(TWebView), globalGameUiSingleton, ViewModel);
     SetupUpdateList(_synchronousUpdateList);
 }
        public DrawablePortStateManager(
            MessageHandlerID messageHandlerId,
            IClientPlayerInfoManager clientPlayerInfoManager,
            LidgrenNetworkingService networkingService,
            GlobalGameUISingleton globalGameUiSingleton,
            SpriteBatch spriteBatch,
            MessageService_ToServer messageService
            )
            : base(messageHandlerId, clientPlayerInfoManager, networkingService, messageService, GameStateType.Port)
        {
            _drawList = new HashSet <IDraw>();

            // Todo: Make this class use a ViewModel
            WebView      = new PortWebView(globalGameUiSingleton, null);
            _spriteBatch = spriteBatch;

            OutfitForSale = new Dictionary <byte, PortService>(5);

            ShipsInPort = new Dictionary <int, PortShip>(5);

            _synchronousUpdateList.Add(this);
            _messageService = messageService;
            _drawList.Add(this);
            networkingService.RegisterMessageHandler(this, DrawablePortStateManager_ProcessMessage);
        }
        public PlayableGameState(MessageHandlerID messageHandlerId, IClientPlayerInfoManager clientPlayerInfoManager,
                                 INetworkingService networkingService,
                                 CollisionManager collisionManager,
                                 PhysicsManager physicsManager,
                                 PlayerShipManager playerShipManager,
                                 ProjectileManager projectileManager,
                                 SelectionManager selectionManager,
                                 ClientShipManager clientShipManager,
                                 SimulationManager simulationManager,
                                 StructureFactoryManager structureFactoryManager,
                                 WarpHoleManager warpholeManager,
                                 TeamManager teamManager,
                                 TargetingService targetingService,
                                 FloatyAreaObjectManager floatyAreaObjectManager,
                                 MessageService_ToServer messageService,
                                 IStructureManager structureManager,
                                 GameStateType stateType
                                 )
            : base(messageHandlerId, clientPlayerInfoManager, networkingService, messageService, playerShipManager, stateType)
        {
            _collisionManager        = collisionManager;
            _physicsManager          = physicsManager;
            _projectileManager       = projectileManager;
            _selectionManager        = selectionManager;
            _clientShipManager       = clientShipManager;
            _simulationManager       = simulationManager;
            _structureFactory        = structureFactoryManager;
            _warpholeManager         = warpholeManager;
            _teamManager             = teamManager;
            _targetingService        = targetingService;
            _floatyAreaObjectManager = floatyAreaObjectManager;
            StructureManager         = structureManager;

            _networkingService.RegisterMessageHandler(this, _playableStateManager_MessageReceived);
        }
 public SpaceStateManager(
     MessageHandlerID messageHandlerId,
     IClientPlayerInfoManager clientPlayerInfoManager,
     IGlobalGameUISingleton globalGameUiSingleton,
     CollisionManager collisionManager,
     INetworkingService networkingService,
     PhysicsManager physicsManager,
     PlayerShipManager playerShipManager,
     ProjectileManager projectileManager,
     SelectionManager selectionManager,
     SimulationManager simulationManager,
     ClientShipManager clientShipManager,
     SpaceManager spaceManager,
     StructureFactoryManager structureFactoryManager,
     TargetingService targetingService,
     TeamManager teamManager,
     WarpHoleManager warpHoleManager,
     MessageService_ToServer messageService,
     FloatyAreaObjectManager floatyAreaObjectManager)
     : base(messageHandlerId, clientPlayerInfoManager, collisionManager, globalGameUiSingleton, networkingService, physicsManager, playerShipManager,
            projectileManager, selectionManager, clientShipManager, simulationManager, structureFactoryManager,
            warpHoleManager, teamManager, targetingService, floatyAreaObjectManager, messageService, GameStateType.Space, new SpaceViewModel(clientShipManager)
            )
 {
     _spaceManager = spaceManager;
     _synchronousUpdateList.Add(_playerShipManager);
 }
Beispiel #5
0
 /// <summary>
 /// Synchronously processes all pending messages for the corresponding areaID
 /// </summary>
 /// <param name="areaID"></param>
 public void FlushMessages(MessageHandlerID messageHandlerID)
 {
     foreach (var message in _pendingMessages)
     {
         _messageReceived(this, message);
     }
     _pendingMessages.Clear();
 }
 public ActivePlayerGameState(MessageHandlerID messageHandlerId,
                              IClientPlayerInfoManager clientPlayerInfoManager,
                              INetworkingService networkingService,
                              MessageService_ToServer messageService,
                              PlayerShipManager playerShipManager,
                              GameStateType stateType)
     : base(messageHandlerId, clientPlayerInfoManager, networkingService, messageService, stateType)
 {
     _playerShipManager = playerShipManager;
 }
        /// <summary>
        /// Synchronously processes all pending messages for the corresponding areaID
        /// </summary>
        /// <param name="areaID"></param>
        public void FlushMessages(MessageHandlerID messageHandlerID)
        {
            for (int i = 0; i < _pendingMessages[messageHandlerID.Value].Count; i++)
            {
                var message = _pendingMessages[messageHandlerID.Value][i];

                _areaIDToHandlerMethod[(int)message.TargetAreaId](this, message);
            }

            _pendingMessages[messageHandlerID.Value].Clear();
        }
Beispiel #8
0
 public NetworkedGameState(MessageHandlerID messageHandlerId,
                           IClientPlayerInfoManager playerInfoManager,
                           INetworkingService networkingService,
                           MessageService_ToServer messageService,
                           GameStateType stateType)
     : base(stateType)
 {
     _clientPlayerInfoManager = playerInfoManager;
     _messageHandlerID        = messageHandlerId;
     _networkingService       = networkingService;
     _synchronousUpdateList.Add(this);
     _networkingService.RegisterMessageHandler(this, _networkedGameState_MessageReceived);
     _MessageService = messageService;
 }
        public GameStateNetworkingManager(
            int managerID,
            IGameStateManager gameStateManager,
            LidgrenNetworkingService networkingService,
            MessageService_ToServer messageManager
            )
        {
            _gameStateManager  = gameStateManager;
            _networkingService = networkingService;
            _messageManager    = messageManager;

            _messageHandlerID = new MessageHandlerID(managerID);


            _networkingService.RegisterMessageHandler(this, _GameStateNetworkingManager_MessageReceived);
        }
Beispiel #10
0
 /// <summary>
 /// Manages all aspects of Planetary Invasion.
 /// </summary>
 /// <param name="Content">Content Manager</param>
 /// <param name="planetLevel">Level to play on.</param>
 public PlanetStateManager(MessageHandlerID messageHandlerId,
                           IClientPlayerInfoManager clientPlayerInfoManager,
                           IGlobalGameUISingleton globalGameUiSingleton,
                           CollisionManager collisionManager,
                           PhysicsManager physicsManager,
                           PlayerShipManager playerShipManager,
                           ProjectileManager projectileManager,
                           ClientShipManager clientShipManager,
                           StructureFactoryManager structureFactoryManager,
                           WarpHoleManager warpholeManager,
                           INetworkingService networkingService,
                           SelectionManager selectionManager,
                           SimulationManager simulationManager,
                           TargetingService targetService,
                           TeamManager teamManager,
                           GameStateType stateType,//Should be moon or planet
                           FloatyAreaObjectManager floatyAreaObjectManager,
                           MessageService_ToServer messageService,
                           int wallTexWidth, int wallTexHeight)
     : base(messageHandlerId,
            clientPlayerInfoManager,
            collisionManager,
            globalGameUiSingleton,
            networkingService,
            physicsManager,
            playerShipManager,
            projectileManager,
            selectionManager,
            clientShipManager,
            simulationManager,
            structureFactoryManager,
            warpholeManager,
            teamManager,
            targetService,
            floatyAreaObjectManager,
            messageService,
            stateType,
            new PlanetViewModel(clientShipManager)
            )
 {
     _wallWidth  = wallTexWidth;
     _wallHeight = wallTexHeight;
     _synchronousUpdateList.Add(_playerShipManager);
     _messageService = messageService;
 }
        public DrawableColonyStateManager(MessageHandlerID messageHandlerId,
                                          GlobalGameUISingleton globalGameUiSingleton,
                                          LidgrenNetworkingService networkingService,
                                          IClientPlayerInfoManager clientPlayerInfoManager,
                                          SpriteBatch spriteBatch,
                                          MessageService_ToServer messageService,
                                          GameWindow gameWindow
                                          )
            : base(messageHandlerId, clientPlayerInfoManager, networkingService, messageService, GameStateType.Colony)
        {
            _drawList    = new HashSet <IDraw>();
            _spriteBatch = spriteBatch;
            Camera       = new Camera2D(gameWindow);
            WebView      = new ColonyWebView(globalGameUiSingleton, null);

            _synchronousUpdateList.Add(this);
            _messageService = messageService;
            _drawList.Add(this);
            networkingService.RegisterMessageHandler(this, DrawableColonyStateManager_ProcessMessage);
        }