Esempio n. 1
0
        public Game Create()
        {
            var gameTimeService        = new GameTimeService(30);
            var gameLoop               = new GameEventQueueService(gameTimeService);
            var terrainServiceStore    = new SectorGraphDescriptionStore();
            var terrainSnapshotBuilder = new TerrainSnapshotCompiler(terrainServiceStore);
            var terrainService         = new TerrainService(terrainServiceStore, terrainSnapshotBuilder);
            var entityService          = new EntityService();
            var statsCalculator        = new StatsCalculator();
            var pathfinderCalculator   = new PathfinderCalculator(terrainService, statsCalculator);
            var movementSystemService  = new MovementSystemService(entityService, gameTimeService, statsCalculator, terrainService, pathfinderCalculator);

            entityService.AddEntitySystem(movementSystemService);
            var gameLogicFacade = new GameLogicFacade(terrainService, movementSystemService);
            var gameInstance    = new Game {
                GameTimeService       = gameTimeService,
                GameEventQueueService = gameLoop,
                TerrainService        = terrainService,
                EntityService         = entityService,
                PathfinderCalculator  = pathfinderCalculator,
                MovementSystemService = movementSystemService,
                GameLogicFacade       = gameLogicFacade
            };

            gameInstance.Initialize();
            GameCreated?.Invoke(this, gameInstance);
            return(gameInstance);
        }
 public MovementSystemService(
     EntityService entityService,
     GameTimeService gameTimeService,
     StatsCalculator statsCalculator,
     TerrainService terrainService,
     PathfinderCalculator pathfinderCalculator
     ) : base(entityService, kComponentMask)
 {
     this.gameTimeService      = gameTimeService;
     this.statsCalculator      = statsCalculator;
     this.terrainService       = terrainService;
     this.pathfinderCalculator = pathfinderCalculator;
 }
Esempio n. 3
0
        public void Tick()
        {
            DebugProfiler.EnterTick(GameTimeService.Ticks);

            GameEventQueueService.ProcessPendingGameEvents(out var eventsProcessed);

            EntityService.ProcessSystems();

            DebugProfiler.LeaveTick();

            foreach (var debugger in Debuggers)
            {
                debugger.HandleFrameEnd(new FrameEndStatistics {
                    EventsProcessed = eventsProcessed
                });
            }

            GameTimeService.IncrementTicks();
        }
 public GameEventQueueService(GameTimeService gameTimeService)
 {
     this.gameTimeService = gameTimeService;
 }