private void ApplyAuthorityChange(Unity.Entities.Entity entity, Authority authority, global::Improbable.Worker.EntityId entityId) { switch (authority) { case Authority.Authoritative: if (!entityManager.HasComponent <NotAuthoritative <SpatialOSExhaustiveBlittableSingular> >(entity)) { LogInvalidAuthorityTransition(Authority.Authoritative, Authority.NotAuthoritative, entityId); return; } entityManager.RemoveComponent <NotAuthoritative <SpatialOSExhaustiveBlittableSingular> >(entity); entityManager.AddComponentData(entity, new Authoritative <SpatialOSExhaustiveBlittableSingular>()); // Add event senders break; case Authority.AuthorityLossImminent: if (!entityManager.HasComponent <Authoritative <SpatialOSExhaustiveBlittableSingular> >(entity)) { LogInvalidAuthorityTransition(Authority.AuthorityLossImminent, Authority.Authoritative, entityId); return; } entityManager.AddComponentData(entity, new AuthorityLossImminent <SpatialOSExhaustiveBlittableSingular>()); break; case Authority.NotAuthoritative: if (!entityManager.HasComponent <Authoritative <SpatialOSExhaustiveBlittableSingular> >(entity)) { LogInvalidAuthorityTransition(Authority.NotAuthoritative, Authority.Authoritative, entityId); return; } if (entityManager.HasComponent <AuthorityLossImminent <SpatialOSExhaustiveBlittableSingular> >(entity)) { entityManager.RemoveComponent <AuthorityLossImminent <SpatialOSExhaustiveBlittableSingular> >(entity); } entityManager.RemoveComponent <Authoritative <SpatialOSExhaustiveBlittableSingular> >(entity); entityManager.AddComponentData(entity, new NotAuthoritative <SpatialOSExhaustiveBlittableSingular>()); // Remove event senders break; } List <Authority> authorityChanges; if (entityManager.HasComponent <AuthorityChanges <SpatialOSExhaustiveBlittableSingular> >(entity)) { authorityChanges = entityManager.GetComponentData <AuthorityChanges <SpatialOSExhaustiveBlittableSingular> >(entity).Changes; } else { var changes = new AuthorityChanges <SpatialOSExhaustiveBlittableSingular> { Handle = AuthorityChangesProvider.Allocate(World) }; AuthorityChangesProvider.Set(changes.Handle, new List <Authority>()); authorityChanges = changes.Changes; entityManager.AddComponentData(entity, changes); } authorityChanges.Add(authority); }
private void ApplyAuthorityChange(Unity.Entities.Entity entity, Authority authority, global::Improbable.Worker.EntityId entityId) { switch (authority) { case Authority.Authoritative: if (!entityManager.HasComponent <NotAuthoritative <SpatialOSComponentWithNoFieldsWithEvents> >(entity)) { LogInvalidAuthorityTransition(Authority.Authoritative, Authority.NotAuthoritative, entityId); return; } entityManager.RemoveComponent <NotAuthoritative <SpatialOSComponentWithNoFieldsWithEvents> >(entity); entityManager.AddComponentData(entity, new Authoritative <SpatialOSComponentWithNoFieldsWithEvents>()); // Add event senders { var eventSender = new EventSender.Evt() { handle = ReferenceTypeProviders.EvtProvider.Allocate(World) }; ReferenceTypeProviders.EvtProvider.Set(eventSender.handle, new List <global::Generated.Improbable.Gdk.Tests.ComponentsWithNoFields.Empty>()); entityManager.AddComponentData(entity, eventSender); } break; case Authority.AuthorityLossImminent: if (!entityManager.HasComponent <Authoritative <SpatialOSComponentWithNoFieldsWithEvents> >(entity)) { LogInvalidAuthorityTransition(Authority.AuthorityLossImminent, Authority.Authoritative, entityId); return; } entityManager.AddComponentData(entity, new AuthorityLossImminent <SpatialOSComponentWithNoFieldsWithEvents>()); break; case Authority.NotAuthoritative: if (!entityManager.HasComponent <Authoritative <SpatialOSComponentWithNoFieldsWithEvents> >(entity)) { LogInvalidAuthorityTransition(Authority.NotAuthoritative, Authority.Authoritative, entityId); return; } if (entityManager.HasComponent <AuthorityLossImminent <SpatialOSComponentWithNoFieldsWithEvents> >(entity)) { entityManager.RemoveComponent <AuthorityLossImminent <SpatialOSComponentWithNoFieldsWithEvents> >(entity); } entityManager.RemoveComponent <Authoritative <SpatialOSComponentWithNoFieldsWithEvents> >(entity); entityManager.AddComponentData(entity, new NotAuthoritative <SpatialOSComponentWithNoFieldsWithEvents>()); // Remove event senders { var eventSender = entityManager.GetComponentData <EventSender.Evt>(entity); ReferenceTypeProviders.EvtProvider.Free(eventSender.handle); entityManager.RemoveComponent <EventSender.Evt>(entity); } break; } List <Authority> authorityChanges; if (entityManager.HasComponent <AuthorityChanges <SpatialOSComponentWithNoFieldsWithEvents> >(entity)) { authorityChanges = entityManager.GetComponentData <AuthorityChanges <SpatialOSComponentWithNoFieldsWithEvents> >(entity).Changes; } else { var changes = new AuthorityChanges <SpatialOSComponentWithNoFieldsWithEvents> { Handle = AuthorityChangesProvider.Allocate(World) }; AuthorityChangesProvider.Set(changes.Handle, new List <Authority>()); authorityChanges = changes.Changes; entityManager.AddComponentData(entity, changes); } authorityChanges.Add(authority); }
private void ApplyAuthorityChange(Unity.Entities.Entity entity, Authority authority, global::Improbable.Worker.EntityId entityId) { switch (authority) { case Authority.Authoritative: if (!entityManager.HasComponent <NotAuthoritative <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity)) { LogInvalidAuthorityTransition(Authority.Authoritative, Authority.NotAuthoritative, entityId); return; } entityManager.RemoveComponent <NotAuthoritative <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity); entityManager.AddComponent(entity, ComponentType.Create <Authoritative <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >()); // Add event senders { var eventSender = new EventSender.MyEvent() { handle = ReferenceTypeProviders.MyEventProvider.Allocate(World) }; ReferenceTypeProviders.MyEventProvider.Set(eventSender.handle, new List <global::Improbable.Gdk.Tests.AlternateSchemaSyntax.RandomDataType>()); entityManager.AddComponentData(entity, eventSender); } break; case Authority.AuthorityLossImminent: if (!entityManager.HasComponent <Authoritative <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity)) { LogInvalidAuthorityTransition(Authority.AuthorityLossImminent, Authority.Authoritative, entityId); return; } entityManager.AddComponent(entity, ComponentType.Create <AuthorityLossImminent <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >()); break; case Authority.NotAuthoritative: if (!entityManager.HasComponent <Authoritative <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity)) { LogInvalidAuthorityTransition(Authority.NotAuthoritative, Authority.Authoritative, entityId); return; } if (entityManager.HasComponent <AuthorityLossImminent <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity)) { entityManager.RemoveComponent <AuthorityLossImminent <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity); } entityManager.RemoveComponent <Authoritative <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity); entityManager.AddComponent(entity, ComponentType.Create <NotAuthoritative <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >()); // Remove event senders { var eventSender = entityManager.GetComponentData <EventSender.MyEvent>(entity); ReferenceTypeProviders.MyEventProvider.Free(eventSender.handle); entityManager.RemoveComponent <EventSender.MyEvent>(entity); } break; } List <Authority> authorityChanges; if (entityManager.HasComponent <AuthorityChanges <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity)) { authorityChanges = entityManager.GetComponentData <AuthorityChanges <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> >(entity).Changes; } else { var changes = new AuthorityChanges <Improbable.Gdk.Tests.AlternateSchemaSyntax.Connection.Component> { Handle = AuthorityChangesProvider.Allocate(World) }; AuthorityChangesProvider.Set(changes.Handle, new List <Authority>()); authorityChanges = changes.Changes; entityManager.AddComponentData(entity, changes); } authorityChanges.Add(authority); }
private void ApplyAuthorityChange(Unity.Entities.Entity entity, Authority authority, global::Improbable.Worker.EntityId entityId) { switch (authority) { case Authority.Authoritative: if (!entityManager.HasComponent <NotAuthoritative <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity)) { LogInvalidAuthorityTransition(Authority.Authoritative, Authority.NotAuthoritative, entityId); return; } entityManager.RemoveComponent <NotAuthoritative <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity); entityManager.AddComponent(entity, ComponentType.Create <Authoritative <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >()); // Add event senders break; case Authority.AuthorityLossImminent: if (!entityManager.HasComponent <Authoritative <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity)) { LogInvalidAuthorityTransition(Authority.AuthorityLossImminent, Authority.Authoritative, entityId); return; } entityManager.AddComponent(entity, ComponentType.Create <AuthorityLossImminent <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >()); break; case Authority.NotAuthoritative: if (!entityManager.HasComponent <Authoritative <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity)) { LogInvalidAuthorityTransition(Authority.NotAuthoritative, Authority.Authoritative, entityId); return; } if (entityManager.HasComponent <AuthorityLossImminent <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity)) { entityManager.RemoveComponent <AuthorityLossImminent <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity); } entityManager.RemoveComponent <Authoritative <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity); entityManager.AddComponent(entity, ComponentType.Create <NotAuthoritative <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >()); // Remove event senders break; } List <Authority> authorityChanges; if (entityManager.HasComponent <AuthorityChanges <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity)) { authorityChanges = entityManager.GetComponentData <AuthorityChanges <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> >(entity).Changes; } else { var changes = new AuthorityChanges <Improbable.Gdk.Tests.ComponentsWithNoFields.ComponentWithNoFieldsWithCommands.Component> { Handle = AuthorityChangesProvider.Allocate(World) }; AuthorityChangesProvider.Set(changes.Handle, new List <Authority>()); authorityChanges = changes.Changes; entityManager.AddComponentData(entity, changes); } authorityChanges.Add(authority); }