Exemple #1
0
        private void CreateSystems()
        {
            ISystem newSystem;

            newSystem = new SystemRender();
            systemManager.AddSystem(newSystem);
            //adding the physics
            newSystem = new SystemPhysics();
            systemManager.AddSystem(newSystem);
            //adding the audio
            newSystem = new SystemAudio();
            systemManager.AddSystem(newSystem);

            //Adding the collision system(s)
            newSystem = new SystemCameraSphereCollision(ref camera);
            systemManager.AddSystem(newSystem);

            newSystem = new SystemCameraLineCollision(ref camera);
            systemManager.AddSystem(newSystem);

            newSystem = new SystemSkybox(ref camera);
            systemManager.AddSystem(newSystem);

            newSystem = new SystemBumpRender();
            systemManager.AddSystem(newSystem);

            newSystem = new SystemEnemyNodeTraversal(ref camera);
            systemManager.AddSystem(newSystem);

            newSystem = new SystemPatrolNodeTraversal(ref camera);
            systemManager.AddSystem(newSystem);
        }
        private void CreateSystems()
        {
            ISystem newSystem;

            newSystem = new SystemRender();
            systemManager.AddSystem(newSystem);

            newSystem = new SystemPhysics();
            systemManager.AddSystem(newSystem);

            newSystem = new SystemAudio();
            systemManager.AddSystem(newSystem);
        }
Exemple #3
0
        private void CreateSystems()
        {
            ISystem newSystem;

            ComponentPosition pos = (ComponentPosition)entityManager.FindEntity("Banana").FindComponent(ComponentTypes.COMPONENT_POSITION);

            newSystem = new SystemRender();
            systemManager.AddSystem(newSystem);
            newSystem = new SystemCollision(pos.Position);
            systemManager.AddSystem(newSystem);
            newSystem = new SystemPhysics(ref sceneManager.cam);
            systemManager.AddSystem(newSystem);
            newSystem = new SystemSkyBox(ref sceneManager.cam);
            systemManager.AddSystem(newSystem);
        }
Exemple #4
0
    public static async Task Init(InitCallback initCallback, params Func <Task>[] initTasks)
    {
        if (null != Instance)
        {
            throw new ApplicationException("SystemManager already exsited, can't run Init more than once!");
        }

        var go = new GameObject("Systems", typeof(SystemManager));

        DontDestroyOnLoad(go);

        SystemInitLog.Log("----------Initialize Game----------");
        for (int i = 0; i < initTasks.Length; ++i)
        {
            var    func    = initTasks[i];
            string sysName = GetName(func);
            initCallback(0, sysName, (float)i / initTasks.Length);
            SystemInitLog.Log(sysName);
            await func();

            Instance.AddSystem(func);
            initCallback(0, sysName, (float)(i + 1) / initTasks.Length);
        }
        SystemInitLog.Log("----------Initialize Finished----------");
    }
        private void CreateSystems()
        {
            SystemBase newSystem;

            systemManager.InitializeSystem();

            newSystem = new SystemPlayerController();
            systemManager.AddSystem(newSystem);

            newSystem = new SystemTimedDestroy();
            systemManager.AddSystem(newSystem);

            newSystem = new SystemAI();
            systemManager.AddSystem(newSystem);

            newSystem = new SystemFollow();
            systemManager.AddSystem(newSystem);
        }
        private void TestStateComponent()
        {
            var           context                = ContextFactory.CreateEntitiesContext();
            EntityManager entityManager          = context.GetManager <EntityManager>();
            SystemManager systemManager          = context.GetManager <SystemManager>();
            var           componentAddTestSystem = new ComponentAddTestSystem();

            systemManager.AddSystem(componentAddTestSystem);
            systemManager.AddSystem(new ComponentAddProgressTestSystem());
            for (int i = 0; i < entityCount; i++)
            {
                entityManager.CreateEntity(ComponentType.Create <Progress>());
            }
            for (int i = 0; i < updateCount; i++)
            {
                context.Update();
            }
//            Console.WriteLine("State: " + componentAddTestSystem.updatedSystems);
        }
Exemple #7
0
        public void StartMainMenu()
        {
            gameState      = GameState.MainMenu;
            stateEnterTime = Time.timeSinceGameStarted;
            CursorVisible  = true;

            entityManager.DeleteAllEntities();
            entity = new Entity("Main Menu Background", new ComponentUI("MainMenu.png"));
            entity.transform.scale    = new Vector3(1280, 760, 0);
            entity.transform.position = new Vector3(Width / 2, Height / 2, 0);
            entityManager.AddEntity(entity);

            entity = new Entity("Click To Start", new ComponentUI("Click To Start.png"));
            entity.transform.scale    = new Vector3(491, 70, 0);
            entity.transform.position = new Vector3(Width / 2, Height / 3f, 0f);
            entityManager.AddEntity(entity);

            systemManager.DeleteAllSystems();
            systemManager.AddSystem(new SystemRenderUI(Width, Height));
        }
Exemple #8
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>

        protected override void Initialize()
        {
            ComponentManager cm = ComponentManager.GetInstance();

            basicEffect = new BasicEffect(GraphicsDevice)
            {
                Alpha = 1f,
                // Want to see the colors of the vertices, this needs to be on
                VertexColorEnabled = true,
                //Lighting requires normal information which VertexPositionColor does not have
                //If you want to use lighting and VPC you need to create a  custom def
                LightingEnabled = false
            };

            //Create all systems
            sm.AddSystem(new TransformSystem());
            sm.AddSystem(new CameraSystem());
            sm.AddSystem(new HeightMapSystem());
            sm.AddSystem(new ModelSystem());
            sm.AddSystem(new TrackingCameraSystem());
            sm.AddSystem(new RectangleSystem());
            sm.AddSystem(new AnimationSystem());
            sm.AddSystem(new PlayerSystem());
            sm.AddSystem(new ModelInstanceSystem());
            sm.AddSystem(new BoundingBoxSystem());

            //Create all entities
            int heightmap = EntityFactory.CreateTerrain(GraphicsDevice, "US_Canyon", "checkerboard");
            int apa1      = EntityFactory.CreateModel("column");
            int apa2      = EntityFactory.CreateModel("roger");


            EntityFactory.CreateVeggies(GraphicsDevice, apa1, 200);
            EntityFactory.CreateVeggies(GraphicsDevice, apa2, 200);

            int player = EntityFactory.CreatePlayerBodyLegs(GraphicsDevice, Vector3.One * 0.05f);

            EntityFactory.CreateTrackingCamera(GraphicsDevice, player);

            base.Initialize();
        }
Exemple #9
0
        private void CreateSystems()
        {
            ISystem newSystem;

            newSystem = new SystemRender(shaderManager.FindShader("pbrShader"));
            systemManager.AddSystem(newSystem);

            newSystem = new SystemPhysics(entityManager.Entities());
            systemManager.AddSystem(newSystem);

            newSystem = new SystemBox(entityManager.Entities());
            systemManager.AddSystem(newSystem);

            newSystem = new SystemDoomSphere(entityManager.Entities());
            systemManager.AddSystem(newSystem);

            newSystem = new SystemCollsion(entityManager.Entities());
            systemManager.AddSystem(newSystem);

            systemManager.StartTimer();
        }
Exemple #10
0
        /// <summary>
        /// Init game engine
        /// </summary>
        public void InitForXml(string gameName)
        {
            is_running = true;

            // Init managers
            _xmlManager.Init(this);
            _inputManager.Init(this);
            _displayWindow.Init(this);
            _soundManager.Init(this);
            _sceneManager.Init(this);
            _eventManager.Init(this);
            _actionManager.Init(this);

            // Load game file
            _xmlManager.LoadGameFile(gameName);

            // Get properties from game data file.
            GameProperties gameProperties = _xmlManager.LoadGameProperties();

            _displayWindow.InitFormProperties(gameProperties.GameName, gameProperties.ScreenWidth, gameProperties.ScreenHeight);

            // Loas all the scenes and set the current scene
            _sceneManager.InitScenes(0);

            _systemManager.Init(this);
            // Need to add them in the order they will be executed

            _systemManager.AddSystem(new EventSystem());
            _systemManager.AddSystem(new ScriptSystem());
            _systemManager.AddSystem(new MoveSystem());
            _systemManager.AddSystem(new PhysicsSystem());
            _systemManager.AddSystem(new CollisionSystem());
            _systemManager.AddSystem(new RenderSystem());
        }
Exemple #11
0
        public void AddSystem()
        {
            var system = Substitute.For <ISystem>();

            systemManager.AddSystem(system);
            Assert.That(systemManager.Systems.Count == 1);
        }
Exemple #12
0
        /// <summary>
        /// Allows the game to perform any initialization it needs to before starting to run.
        /// This is where it can query for any required services and load any non-graphic
        /// related content.  Calling base.Initialize will enumerate through any components
        /// and initialize them as well.
        /// </summary>

        protected override void Initialize()
        {
            ComponentManager cm = ComponentManager.GetInstance();

            basicEffect = new BasicEffect(GraphicsDevice)
            {
                Alpha = 1f,

                // Want to see the colors of the vertices, this needs to be on
                VertexColorEnabled = true,

                //Lighting requires normal information which VertexPositionColor does not have
                //If you want to use lighting and VPC you need to create a  custom def
                LightingEnabled = false
            };

            //Create all systems
            sm.AddSystem(new TransformSystem());
            sm.AddSystem(new CameraSystem());
            sm.AddSystem(new HeightMapSystem());
            sm.AddSystem(new ModelSystem());
            sm.AddSystem(new ChopperSystem());
            sm.AddSystem(new TrackingCameraSystem());

            //Create all entities
            int chopperId = EntityFactory.CreateChopper(GraphicsDevice, "Chopper");
            int c         = EntityFactory.CreateCamera(GraphicsDevice, chopperId);

            EntityFactory.CreateHeightMap(GraphicsDevice, "US_Canyon");

            //cm.AddEntityWithComponents(new TrackingCameraComponent(chopperId, new Vector3(10)));

            base.Initialize();
        }
        private void Test10Events()
        {
            var           context       = ContextFactory.CreateEntitiesContext();
            EntityManager entityManager = context.GetManager <EntityManager>();
            SystemManager systemManager = context.GetManager <SystemManager>();

            systemManager.AddSystem(new EventUpdateTestSystem());
            EventTestSystem eventTestSystem = null;

            for (int i = 0; i < 10; i++)
            {
                eventTestSystem = new EventTestSystem();
                systemManager.AddSystem(eventTestSystem);
            }
            for (int i = 0; i < entityCount; i++)
            {
                entityManager.CreateEntity(ComponentType.Create <Progress>());
            }
            for (int i = 0; i < updateCount; i++)
            {
                context.Update();
            }
//            Console.WriteLine("Event: " + eventTestSystem.updatedSystems);
        }
Exemple #14
0
        private void CreateSystems()
        {
            ISystem newSystem;

            newSystem = new SystemMinimap(minimap);
            systemManager.AddSystem(newSystem);
            newSystem = new SystemRender();
            systemManager.AddSystem(newSystem);
            newSystem = new SystemLighting();
            systemManager.AddSystem(newSystem);
            newSystem = new SystemInput();
            systemManager.AddSystem(newSystem);
            newSystem = new SystemPhysics();
            systemManager.AddSystem(newSystem);
            newSystem = new SystemAI();
            systemManager.AddSystem(newSystem);
            newSystem = new SystemPickUp();
            systemManager.AddSystem(newSystem);
            newSystem = new SystemAudio();
            systemManager.AddSystem(newSystem);
        }
Exemple #15
0
        /// <summary>
        /// Creates the used <see cref="Mortar.Core.Systems.SystemManager"/> and add certain core systems.
        /// </summary>
        private void PrepareSystemManager()
        {
            SystemManager = new SystemManager();

            SystemManager.AddSystem(new EntitySystem(this));
            SystemManager.AddSystem(new InputSystem(this));
            SystemManager.AddSystem(new TimerSystem(this));
            SystemManager.AddSystem(new ConsoleSystem(this));
            SystemManager.AddSystem(new SceneSystem(this));
            SystemManager.AddSystem(new HotspotSystem(this));
        }
Exemple #16
0
 public void AddSystem(System system)
 {
     systemManager.AddSystem(system);
     system.AddedToEngine(this);
 }
Exemple #17
0
        private void InitializeSystems(SpriteMapper spriteMapper)
        {
            // Prepare the systems
            SystemManager systemManager = new SystemManager(entityManager);

            systemManager.AddSystem(new RenderSystem(this, camera, spriteBatch, spriteMapper));
            systemManager.AddSystem(new InputSystem());
            GridSystem gridSystem = new GridSystem();

            entityGrid = gridSystem.EntityGrid;
            systemManager.AddSystem(gridSystem);
#if DEBUG
            systemManager.AddSystem(new CollisionSystem(GraphicsDevice, Content, camera));
#else
            systemManager.AddSystem(new CollisionSystem());
#endif
            systemManager.AddSystem(new PowerUpSystem(entityGrid));
            systemManager.AddSystem(new ExplosionSystem(entityGrid));
            systemManager.AddSystem(new BombSystem());
            systemManager.AddSystem(new MessageHandlerSystem());
            systemManager.AddSystem(new SoundSystem(Content));
            systemManager.AddSystem(new ScriptsSystem());
            systemManager.AddSystem(new FrameAnimationSystem(spriteMapper));
            systemManager.AddSystem(new GameStateSystem(this, entityGrid, spriteBatch, Content.Load <SpriteFont>("GUI")));
            systemManager.AddSystem(new PlayerSystem());
        }
Exemple #18
0
 public T AddSystem <T>() where T : ProvenceSystem, new()
 {
     return(systemManager.AddSystem <T>());
 }
Exemple #19
0
 public void AddSystem(Systems.System system)
 {
     systemManager.AddSystem(system);
 }