public override void InvokeOnAuthorityLostCallbacks(Dictionary <Unity.Entities.Entity, InjectableStore> entityToInjectableStore) { if (AuthorityLostComponentGroup.IsEmptyIgnoreFilter) { return; } var entities = AuthorityLostComponentGroup.GetEntityArray(); var changeOpsLists = AuthorityLostComponentGroup.GetComponentDataArray <AuthorityChanges <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(); // Call once on all entities unless they flip-flopped back into the state they started in for (var i = 0; i < entities.Length; i++) { var injectableStore = entityToInjectableStore[entities[i]]; if (!injectableStore.TryGetInjectablesForComponent(readerWriterInjectableId, out var readersWriters)) { continue; } if (IsFirstAuthChange(Authority.NotAuthoritative, changeOpsLists[i])) { foreach (Requirable.ReaderWriterImpl readerWriter in readersWriters) { readerWriter.OnAuthorityChange(Authority.NotAuthoritative); } } } }
public override void MarkAuthorityLostForDeactivation(Dictionary <Unity.Entities.Entity, MonoBehaviourActivationManager> entityToManagers) { if (AuthorityLostComponentGroup.IsEmptyIgnoreFilter) { return; } var authoritiesChangedTags = AuthorityLostComponentGroup.GetComponentDataArray <AuthorityChanges <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(); var entities = AuthorityLostComponentGroup.GetEntityArray(); for (var i = 0; i < entities.Length; i++) { var activationManager = entityToManagers[entities[i]]; // Call once except if flip-flopped back to starting state if (IsFirstAuthChange(Authority.NotAuthoritative, authoritiesChangedTags[i])) { activationManager.ChangeAuthority(componentId, Authority.NotAuthoritative); } } }