public void OneTimeSetup()
        {
            world         = new World("test-world");
            entityManager = world.GetOrCreateManager <EntityManager>();
            logDispatcher = new TestLogDispatcher();

            worker = world.CreateManager <WorkerSystem>(null, logDispatcher, TestWorkerType, Vector3.zero);

            firstComponentDispatcher  = new FirstComponentDispatcher(worker, world);
            secondComponentDispatcher = new SecondComponentDispatcher(worker, world);

            receiveSystem = world.GetOrCreateManager <SpatialOSReceiveSystem>();

            // Do not add command components from any generated code.
            receiveSystem.AddAllCommandComponents.Clear();
            receiveSystem.AddDispatcherHandler(firstComponentDispatcher);
            receiveSystem.AddDispatcherHandler(secondComponentDispatcher);

            var requestTracker = world.GetOrCreateManager <CommandRequestTrackerSystem>();

            createEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.CreateEntity.Storage>();
            deleteEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.DeleteEntity.Storage>();
            reserveEntityIdsStorage = requestTracker.GetCommandStorageForType <WorldCommands.ReserveEntityIds.Storage>();
            entityQueryStorage      = requestTracker.GetCommandStorageForType <WorldCommands.EntityQuery.Storage>();
        }
예제 #2
0
        protected override void OnCreateManager()
        {
            base.OnCreateManager();
            connection = World.GetExistingManager <WorkerSystem>().Connection;

            var requestTracker = World.GetOrCreateManager <CommandRequestTrackerSystem>();

            createEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.CreateEntity.Storage>();
            deleteEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.DeleteEntity.Storage>();
            reserveEntityIdsStorage = requestTracker.GetCommandStorageForType <WorldCommands.ReserveEntityIds.Storage>();
            entityQueryStorage      = requestTracker.GetCommandStorageForType <WorldCommands.EntityQuery.Storage>();
        }
예제 #3
0
        protected override void OnCreateManager(int capacity)
        {
            base.OnCreateManager(capacity);
            worker = Worker.GetWorkerFromWorld(World);

            var requestTracker = World.GetOrCreateManager <CommandRequestTrackerSystem>();

            createEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.CreateEntity.Storage>();
            deleteEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.DeleteEntity.Storage>();
            reserveEntityIdsStorage = requestTracker.GetCommandStorageForType <WorldCommands.ReserveEntityIds.Storage>();
            entityQueryStorage      = requestTracker.GetCommandStorageForType <WorldCommands.EntityQuery.Storage>();
        }
예제 #4
0
        protected override void OnCreateManager()
        {
            base.OnCreateManager();

            worker     = World.GetExistingManager <WorkerSystem>();
            Dispatcher = new Dispatcher();
            SetupDispatcherHandlers();

            var requestTracker = World.GetOrCreateManager <CommandRequestTrackerSystem>();

            createEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.CreateEntity.Storage>();
            deleteEntityStorage     = requestTracker.GetCommandStorageForType <WorldCommands.DeleteEntity.Storage>();
            reserveEntityIdsStorage = requestTracker.GetCommandStorageForType <WorldCommands.ReserveEntityIds.Storage>();
            entityQueryStorage      = requestTracker.GetCommandStorageForType <WorldCommands.EntityQuery.Storage>();
        }