protected override void OnSystemAdd() { physicsSystem = (Bullet2PhysicsSystem)Services.GetServiceAs <IPhysicsSystem>(); if (physicsSystem == null) { physicsSystem = new Bullet2PhysicsSystem(Services); Services.AddService(typeof(IPhysicsSystem), physicsSystem); var gameSystems = Services.GetServiceAs <IGameSystemCollection>(); gameSystems.Add(physicsSystem); } ((IReferencable)physicsSystem).AddReference(); debugShapeRendering = Services.GetServiceAs <PhysicsShapesRenderingService>(); if (debugShapeRendering == null) { debugShapeRendering = new PhysicsShapesRenderingService(Services); var gameSystems = Services.GetServiceAs <IGameSystemCollection>(); gameSystems.Add(debugShapeRendering); } Simulation = physicsSystem.Create(this); sceneSystem = Services.GetSafeServiceAs <SceneSystem>(); }
protected override void OnSystemAdd() { physicsSystem = (Bullet2PhysicsSystem)Services.GetServiceAs <IPhysicsSystem>(); if (physicsSystem == null) { physicsSystem = new Bullet2PhysicsSystem(Services); var game = Services.GetServiceAs <IGame>(); game?.GameSystems.Add(physicsSystem); } debugShapeRendering = Services.GetServiceAs <PhysicsShapesRenderingService>(); if (debugShapeRendering == null) { debugShapeRendering = new PhysicsShapesRenderingService(Services); var game = Services.GetServiceAs <IGame>(); game?.GameSystems.Add(debugShapeRendering); } Simulation = physicsSystem.Create(this); sceneSystem = Services.GetSafeServiceAs <SceneSystem>(); }
protected override void OnSystemAdd() { try { physicsSystem = (Bullet2PhysicsSystem)Services.GetSafeServiceAs <IPhysicsSystem>(); } catch (ServiceNotFoundException) { physicsSystem = new Bullet2PhysicsSystem(Services); var game = Services.GetSafeServiceAs <IGame>(); game.GameSystems.Add(physicsSystem); } simulation = physicsSystem.Create(this); var gfxDevice = Services.GetSafeServiceAs <IGraphicsDeviceService>()?.GraphicsDevice; if (gfxDevice != null) { debugShapeRendering = new PhysicsDebugShapeRendering(gfxDevice); } }