Example #1
0
        public void QueueEvent <T>(T _event) where T : struct, IEvent
        {
            DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread());
            int hash = TypeHelper <T> .hashCode;

            if (!eventManagers.TryGetValue(hash, out IEventManager manager))
            {
                manager = new EventManager <T>();
                if (systems != null)
                {
                    manager.UpdateSubscribers(systems);
                }
                eventManagers.Add(hash, manager);
                allEventManagers.Add(manager);
            }
            ((EventManager <T>)manager).QueueEvent(_event);
        }
Example #2
0
 public static JobGroup StartNewGroup()
 {
     DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread());
     return(JobManager.StartJobGroup());
 }
Example #3
0
 public static void CompleteAllJobs()
 {
     DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread());
     JobManager.CompleteAll();
 }
Example #4
0
 public static JobHandle QueueJob <T>(T job, JobGroup group) where T : struct, IJob
 {
     DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread());
     return(JobManager.QueueJob(job, group));
 }
Example #5
0
 public static JobGroup StartNewGroup(ComponentQuery dependencies)
 {
     DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread());
     return(JobManager.StartJobGroup(dependencies));
 }
Example #6
0
 public bool IsComplete()
 {
     DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread());
     return(JobManager.IsGroupComplete(this));
 }