public void Update(IGameTimeService gameTime) { if (KeyboardManager.PlaceTurret.IsBindTapped()) { if (PlayerShip != null && PlayerShip.Cargo.IsCargoInHolds(StatefulCargoTypes.LaserTurret, 1) && TimeKeeper.MsSinceInitialization - _lastRequestTime > _minimumRequestPeriod) { PlayerShip.EnterMode = false; _messageService.SendStructurePlacementRequest(StructureTypes.LaserTurret, PlayerShip.Position, PlayerShip.Id); _lastRequestTime = TimeKeeper.MsSinceInitialization; } } if (KeyboardManager.PlaceMine.IsBindTapped()) { if (PlayerShip != null && PlayerShip.Cargo.IsCargoInHolds(StatefulCargoTypes.DefensiveMine, 1) && TimeKeeper.MsSinceInitialization - _lastRequestTime > _minimumRequestPeriod) { PlayerShip.EnterMode = false; _messageService.SendStructurePlacementRequest(StructureTypes.DefensiveMine, PlayerShip.Position, PlayerShip.Id); _lastRequestTime = TimeKeeper.MsSinceInitialization; } } }
protected void SendStructurePlacementRequest(JSMarshallContainer request) { var req = request as StructurePlacementRequest;//Hmmm...would be nice to come up with a way to avoid this. _messageService.SendStructurePlacementRequest(req.StructureType, new Vector2(req.PosX, req.PosY), _playerShipManager.PlayerShip.Id); }