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); }
public static JobGroup StartNewGroup() { DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread()); return(JobManager.StartJobGroup()); }
public static void CompleteAllJobs() { DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread()); JobManager.CompleteAll(); }
public static JobHandle QueueJob <T>(T job, JobGroup group) where T : struct, IJob { DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread()); return(JobManager.QueueJob(job, group)); }
public static JobGroup StartNewGroup(ComponentQuery dependencies) { DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread()); return(JobManager.StartJobGroup(dependencies)); }
public bool IsComplete() { DebugHelper.AssertThrow <ThreadAccessException>(ECSWorld.CheckThreadIsMainThread()); return(JobManager.IsGroupComplete(this)); }