Exemple #1
0
        public void Setup()
        {
            _defaultWorld                      = new DefaultWorld(EntityCount);
            _defaultEntitySet                  = _defaultWorld.GetEntities().With <DefaultComponent>().AsSet();
            _defaultRunner                     = new DefaultParallelRunner(Environment.ProcessorCount);
            _defaultSystem                     = new DefaultEcsSystem(_defaultWorld);
            _defaultMultiSystem                = new DefaultEcsSystem(_defaultWorld, _defaultRunner);
            _defaultEntityComponentSystem      = new DefaultEcsEntityComponentSystem(_defaultWorld);
            _defaultMultiEntityComponentSystem = new DefaultEcsEntityComponentSystem(_defaultWorld, _defaultRunner);
            _defaultComponentSystem            = new DefaultEcsComponentSystem(_defaultWorld);
            _defaultComponentMultiSystem       = new DefaultEcsComponentSystem(_defaultWorld, _defaultRunner);

            _entitasWorld       = new Context <EntitasEntity>(1, () => new EntitasEntity());
            _entitasSystem      = new EntitasSystem(_entitasWorld);
            _entitasMultiSystem = new EntitasSystem(_entitasWorld, Environment.ProcessorCount);

            _monoWorld = new WorldBuilder().AddSystem(new MonoSystem()).Build();
            _time      = new GameTime();

            for (int i = 0; i < EntityCount; ++i)
            {
                DefaultEntity defaultEntity = _defaultWorld.CreateEntity();
                defaultEntity.Set <DefaultComponent>();

                EntitasEntity entitasEntity = _entitasWorld.CreateEntity();
                entitasEntity.AddComponent(0, new EntitasComponent());

                MonoEntity monoEntity = _monoWorld.CreateEntity();
                monoEntity.Attach(new MonoComponent());
            }
        }
        public void Setup()
        {
            _defaultWorld                      = new DefaultWorld(EntityCount);
            _defaultEntitySet                  = _defaultWorld.GetEntities().With <DefaultComponent>().AsSet();
            _defaultRunner                     = new DefaultParallelRunner(Environment.ProcessorCount);
            _defaultSystem                     = new DefaultEcsSystem(_defaultWorld);
            _defaultMultiSystem                = new DefaultEcsSystem(_defaultWorld, _defaultRunner);
            _defaultEntityComponentSystem      = new DefaultEcsEntityComponentSystem(_defaultWorld);
            _defaultMultiEntityComponentSystem = new DefaultEcsEntityComponentSystem(_defaultWorld, _defaultRunner);
            _defaultComponentSystem            = new DefaultEcsComponentSystem(_defaultWorld);
            _defaultComponentMultiSystem       = new DefaultEcsComponentSystem(_defaultWorld, _defaultRunner);
            _defaultGeneratorSystem            = new DefaultEcsGeneratorSystem(_defaultWorld);
            _defaultGeneratorMultiSystem       = new DefaultEcsGeneratorSystem(_defaultWorld, _defaultRunner);

            _entitasWorld       = new Context <EntitasEntity>(1, () => new EntitasEntity());
            _entitasSystem      = new EntitasSystem(_entitasWorld);
            _entitasMultiSystem = new EntitasSystem(_entitasWorld, Environment.ProcessorCount);

            _monoWorld = new WorldBuilder().AddSystem(new MonoSystem()).Build();
            _time      = new GameTime();

            _leoWorld   = new LeoWorld();
            _leoSystem  = new LeoSystem();
            _leoSystems = new LeoSystems(_leoWorld).Add(_leoSystem);
            _leoSystems.ProcessInjects().Init();

            SimpleEntitiesSubmissionScheduler sveltoScheduler = new SimpleEntitiesSubmissionScheduler();

            _sveltoWorld  = new EnginesRoot(sveltoScheduler);
            _sveltoSystem = new SveltoSystem();
            _sveltoWorld.AddEngine(_sveltoSystem);
            IEntityFactory sveltoFactory = _sveltoWorld.GenerateEntityFactory();

            for (int i = 0; i < EntityCount; ++i)
            {
                DefaultEntity defaultEntity = _defaultWorld.CreateEntity();
                defaultEntity.Set <DefaultComponent>();

                EntitasEntity entitasEntity = _entitasWorld.CreateEntity();
                entitasEntity.AddComponent(0, new EntitasComponent());

                MonoEntity monoEntity = _monoWorld.CreateEntity();
                monoEntity.Attach(new MonoComponent());

                LeoEntity leoEntity = _leoWorld.NewEntity();
                leoEntity.Get <LeoComponent>();

                sveltoFactory.BuildEntity <SveltoEntity>((uint)i, _sveltoGroup);
            }

            sveltoScheduler.SubmitEntities();
        }
Exemple #3
0
        public override void LoadContent()
        {
            var camera = new OrthographicCamera(_sceneHandler._graphicsDevice);

            world = new WorldBuilder()
                    .AddSystem(new RenderSystem(new SpriteBatch(_sceneHandler._graphicsDevice), camera))
                    .Build();

            _sceneHandler._gameComponents.Add(world);

            var entityFactory = new EntityFactory(world, _sceneHandler._content, _sceneHandler._graphicsDevice);

            entityFactory.CreateText(new Vector2(100, 100), "MenuScene", 100);

            LoadGui();
        }
Exemple #4
0
        public GameWorld(Game1 game, ContentManager contentManager, GraphicsDevice graphicsDevice)
        {
            EntityFactory = new EntityFactory();

            //Camera
            AddSystem(new CameraSystem());

            //Models
            AddSystem(new ModelLoaderSystem(graphicsDevice, contentManager));
            AddSystem(new ModelRenderSystem(graphicsDevice));

            //Physics
            var physicsSystem = new PhysicsSystem();

            AddSystem(physicsSystem);
            AddSystem(new PhysicsSyncSystem(physicsSystem.GetSimulation()));
            AddSystem(new PhysicsMouseObjectDetectSystem(physicsSystem.GetSimulation()));

            //Lighting
            AddSystem(new LightingRenderSystem(graphicsDevice));

            //Water
            AddSystem(new WaterRenderSystem(graphicsDevice));

#if EDITOR
            var viewportRenderSystem = new ViewportRenderSystem(graphicsDevice);
            AddSystem(viewportRenderSystem);
#endif

            AddSystem(new FinalRenderSystem(graphicsDevice));

#if EDITOR
            AddSystem(new DebugUIRenderSystem(game, graphicsDevice, physicsSystem, viewportRenderSystem));
#endif

            World = Build();
            EntityFactory.World = World;
        }
Exemple #5
0
 public EntityFactory(World world, ContentManager contentManager)
 {
     _world          = world;
     _contentManager = contentManager;
 }
Exemple #6
0
        public Entity CreateEntity()
        {
            var entity = SceneWorld.CreateEntity();

            return(entity);
        }
Exemple #7
0
        public override void Initialize()
        {
            base.Initialize();
            viewport    = GraphicsDevice.Viewport;
            spriteBatch = new SpriteBatch(GraphicsDevice);
            var viewportAdapter = new BoxingViewportAdapter(Game.Window, GraphicsDevice, viewport.Width, viewport.Height);

            orthographicCamera    = new OrthographicCamera(viewportAdapter);
            gameplayScreenContent = new ContentManager(Game.Services, "Content");

            Font = gameplayScreenContent.Load <BitmapFont>("Fonts/fixedsys");
            MusicPlayer.LoadSong(0, true);
            //DotPlayerSystem dotPlayerSystem = new DotPlayerSystem();
            world = new WorldBuilder()
                    .AddSystem(new WorldSystem())
                    .AddSystem(new PlayerSystem(orthographicCamera))
                    .AddSystem(new CameraSystem(orthographicCamera))
                    .AddSystem(new EnemySystem())
                    //.AddSystem(dotPlayerSystem)
                    //.AddSystem(new MapRenderSystem(spriteBatch, gameplayScreenContent))
                    //.AddSystem(new DotPlayerRenderSystem(spriteBatch))
                    .AddSystem(new BackgroundSystem(spriteBatch, gameplayScreenContent))
                    .AddSystem(new RenderSystem(spriteBatch, orthographicCamera, gameplayScreenContent))
                    .AddSystem(new TilesRenderSystem(spriteBatch, orthographicCamera))
                    .AddSystem(new HUDRenderSystem(spriteBatch, gameplayScreenContent))
                    .Build();
            world.DrawOrder = 0;
            Game.Components.Add(world);

            entityFactory = new EntityFactory(world, gameplayScreenContent);


            var scaleRocks = 4;

            for (int i = 0; i < 30; i++)
            {
                entityFactory.CreateRocksBackground(new Vector2(i * (448 * scaleRocks), 0), scaleRocks);
            }

            entityFactory.CreateWall(new Vector2(0, viewport.Height / 2), 50);
            for (int i = 0; i < 200; i++)
            {
                entityFactory.CreatePath(new Vector2(i * 32, viewport.Height / 2));
                for (int j = 2; j < 10; j++)
                {
                    entityFactory.CreateUnderground(new Vector2(i * 32, (j * 32) + (viewport.Height / 2)));
                }
            }

            TextureRegion2D shadow_wall = new TextureRegion2D(gameplayScreenContent.Load <Texture2D>("Graphics/tile_cave_platform"), new Rectangle(125, 182, 32, 32));

            for (int i = 2; i < 30; i++)
            {
                entityFactory.CreateWall(new Vector2(i * -32, viewport.Height), 50, shadow_wall);
            }

            if (!isEnding)
            {
                player       = entityFactory.CreatePlayer(new Vector2(64, (viewport.Height / 2) - 32));
                enemies      = new List <Entity>();
                EnemiesCount = 10;
                for (int i = 0; i < EnemiesCount; i++)
                {
                    enemies.Add(entityFactory.CreateEnemy(new Vector2(256 + (i * 512), (viewport.Height / 2) - 64)));
                }
            }
            else
            {
                player = entityFactory.CreatePlayer(new Vector2(1024, (viewport.Height / 2) - 32));

                enemies      = new List <Entity>();
                EnemiesCount = 1;
                enemies.Add(entityFactory.CreateNecromancer(new Vector2(1024 + 256, (viewport.Height / 2) - 64)));
            }
        }