Пример #1
0
        public void TryEnterReturnsTrueWhenUnlocked()
        {
            var gate = new AccessGate {
                IsLocked = false
            };

            gate.TryEnter().ShouldBeTrue();
        }
Пример #2
0
        public void TryEnterReturnsFalseWhenLocked()
        {
            var gate = new AccessGate {
                IsLocked = true
            };

            gate.TryEnter().ShouldBeFalse();
        }
Пример #3
0
        public void GateDoesNotThrowWhenUnlocked()
        {
            var gate = new AccessGate {
                IsLocked = false
            };

            Should.NotThrow(() => gate.Enter());
        }
Пример #4
0
        public void GateThrowsWhenLocked()
        {
            var gate = new AccessGate {
                IsLocked = true
            };

            Should.Throw <InvalidOperationException>(() => gate.Enter());
        }
Пример #5
0
        public RuntimeEngine(RuntimeEntityService entityService, ISystemManager systemManager, EventQueue eventQueue,
                             ILogger logger)
        {
            AddEntityAccessGate = new AccessGate();
            EventQueue          = eventQueue;
            _logger             = logger;
            EntityService       = entityService;
            EntityService.AddEntityAccessGate = AddEntityAccessGate;
            SystemManager         = systemManager;
            SystemUpdateScheduler = new SystemUpdateScheduler(SystemManager.Systems);

            foreach (var updateBurst in SystemUpdateScheduler.UpdateBursts)
            {
                _logger.Info($"Update Burst: {string.Join(", ", updateBurst.Systems.Select(p => p.System.Name))}");
            }

            // Add any entities that are already loaded into the engine.
            SystemManager.AddEntities(entityService.Entities);
        }