public CollisionResponseSystem(EntityWorld entityWorld, EntityFactory entityFactory, SignalManager signalManager) : base(entityWorld,
                                                                                                                          entityWorld.ComponentManager.GetComponentId <CollidableComponent>())
 {
     this.entityFactory = entityFactory;
     this.signalManager = signalManager;
     this.layerManager  = entityFactory.LayerManager;
 }
示例#2
0
        public SingleplayerGameScene(Game game) : base(game)
        {
            this.Camera.SetBounds(Vector2.Zero, (GameConfig.WorldSize - WindowSettings.RenderArea.Size + WindowSettings.RenderArea.Location).ToVector2());
            this.background = new Background(Assets.Get <Texture2D>(GameConfig.Folders.Particles, "circle"), new Rectangle(Point.Zero, GameConfig.WorldSize));

            this.signalManager = new SignalManager();
            this.intentManager = new IntentManager();
            this.inputManager  = new InputManager(this.intentManager);
            this.scene         = new GUIScene();

            List <Texture2D> list = new List <Texture2D>
            {
                Assets.Get <Texture2D>(GameConfig.Folders.Particles, "circle")
            };

            this.particleEngine = new ParticleEngine(list, Vector2.Zero, 0, 50, false);

            this.scoreboardUI = new Scoreboard(GameConfig.Fonts.Medium, false);
            this.scoreboardUI.Hide();
            this.scene.AddChild(scoreboardUI);

            this.spaceShipSpawnPosition = GameConfig.PlayArea.Center.ToVector2();
            this.entityWorld            = new EntityWorld();
            this.entityFactory          = new ClientEntityFactory(this.entityWorld);

            this.entityWorld.SystemManager.AddSystem(new MotionControlSystem(this.entityWorld));
            this.entityWorld.SystemManager.AddSystem(new LifetimeSystem(this.entityWorld, this.signalManager));
            this.entityWorld.SystemManager.AddSystem(new ShootSystem(this.entityWorld, this.entityFactory));
            this.entityWorld.SystemManager.AddSystem(new MotionSystem(this.entityWorld));
            this.entityWorld.SystemManager.AddSystem(new CollisionDetectionSystem(this.entityWorld));
            this.entityWorld.SystemManager.AddSystem(new CollisionResponseSystem(this.entityWorld, this.entityFactory, this.signalManager));
            this.entityWorld.SystemManager.AddSystem(new RespawnTimeoutSystem(this.entityWorld));
            this.entityWorld.SystemManager.AddSystem(new TargetingSystem(this.entityWorld));
            this.entityWorld.SystemManager.AddSystem(new TextureRenderSystem(this.entityWorld));
            //this.entityWorld.SystemManager.AddSystem(new ParticleSystem(this.entityWorld, this.particleEngine));
            this.entityWorld.SystemManager.AddSystem(new ScoreboardSystem(this.entityWorld, scoreboardUI));
            this.entityWorld.SystemManager.AddSystem(new SpriteAnimationRenderSystem(this.entityWorld));
            this.tagCountSystem = (TagCountSystem)this.entityWorld.SystemManager.AddSystem(new TagCountSystem(this.entityWorld));

            this.CreateScene();

            this.CreatePauseMenu();
        }
示例#3
0
 public LifetimeSystem(EntityWorld entityWorld, SignalManager signalManager) : base(entityWorld,
                                                                                    entityWorld.ComponentManager.GetComponentId <LifetimeComponent>())
 {
     this.signalManager = signalManager;
 }