示例#1
0
        protected override void Update(GameTime gameTime)
        {
            float deltaTime = gameTime.ElapsedGameTime.Ticks * SecondsPerTick;

            stats.OnUpdate(deltaTime);

            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }

            base.Update(gameTime);

            inputSystem.Update();

            foreach (SystemUpdateTask sut in systemUpdateTasks)
            {
                sut.DeltaTime = deltaTime;
                ITaskCallback callback = Tasks.Enqueue(sut);
                taskCallbacks.Add(callback);
            }
            foreach (ITaskCallback callback in taskCallbacks)
            {
                callback.Wait();
            }
            taskCallbacks.Clear();

            eventBus.Update();
            entityWorld.Commit();
        }
示例#2
0
        public static void Register(ITaskCallback taskCallback)
        {
            lock (LockObj)
            {
                var cache = Hash.GetOrAdd(taskCallback.Name, (name) => new List <ITaskCallback>());
                cache.Add(taskCallback);

                _clearNum = 0;
                Timer.Change(1000, Timeout.Infinite);
            }
        }
示例#3
0
        public static bool RegisterSingle(ITaskCallback taskCallback)
        {
            var cache = Hash.GetOrAdd(taskCallback.Name, (name) => new List <ITaskCallback>());

            if (cache.Count > 0)
            {
                return(false);
            }

            lock (LockObj)
            {
                if (cache.Count > 0)
                {
                    return(false);
                }

                cache.Add(taskCallback);
                _clearNum = 0;
                Timer.Change(1000, Timeout.Infinite);
                return(true);
            }
        }
示例#4
0
 public TaskConfig(TaskId taskId, ITaskCallback callback)
 {
     this.taskId   = taskId;
     this.callback = callback;
 }
示例#5
0
 public TaskCompletionProxy(ITaskCallback proxy)
 {
     this.proxy = proxy;
 }
示例#6
0
 public TaskConfig(TaskId taskId, ITaskCallback callback, User user)
 {
     this.taskId   = taskId;
     this.callback = callback;
     this.user     = user;
 }