public void Update(GameTime gameTime) { #if ADMIN foreach (GravityObject g in _gravityObjects) // Testing stuff { g.Gravitate(_shipManager.ShipList.Values, _shipManager.PlayerShip); } #endif if (KeyboardManager.ColonizeMode.IsBindTapped() && !ColonizeMode) { ColonizeMode = true; } else if (KeyboardManager.ColonizeMode.IsBindTapped() && ColonizeMode) { ColonizeMode = false; } level.Update(gameTime, _shipManager.PlayerShip.Position, _shipManager.GetPlayerShipDifference()); Camera.Pos = ConvertUnits.ToDisplayUnits(_shipManager.PlayerShip.Position); if (MouseManager.ScrolledUp) { Camera.Zoom += .1f; } if (MouseManager.ScrolledDown) { Camera.Zoom -= .1f; } MathHelper.Clamp(Camera.Zoom, 0.1f, 1f); if (ColonizeMode) { if (MouseManager.RightMouseClicked) { ColonizeMode = false; } // Temporary, send colonize request if (MouseManager.LeftMouseClicked) { Vector2 buildingPos = MousePosToSimUnits(_shipManager.PlayerShip, _spriteBatch); _bus.Publish(new MSendStructurePlacementRequest(buildingPos, StructureTypes.CommandCenter)); } } if (StructurePlacementMode) { // Cancel with right click if (MouseManager.RightMouseClicked) { StructurePlacementMode = false; } // Temporary, send turret placement request if (MouseManager.LeftMouseClicked) { var buildingPos = MousePosToSimUnits(_shipManager.PlayerShip, _spriteBatch); var c = _shipManager.PlayerShip.Cargo.GetAnyStatefulCargo(StatefulCargoTypes.LaserTurret); if (c != null) { var ms = new MSendStructurePlacementRequest(buildingPos, StructureTypes.LaserTurret); ms.Id = c.Id; _bus.Publish(ms); } } } foreach (var s in _structures) { switch (s.buildingType) { case StructureTypes.LaserTurret: ((Turret)s).Update(gameTime, _bus); break; default: s.Update(); break; } } _debugTextManager.Update(gameTime); _UI.Update(gameTime); _lastTimeStamp = gameTime.TotalGameTime.TotalMilliseconds; }