public void StartCoreActors() { // Actors that come with GameMachine Messenger messenger = new Messenger(); messenger.AddComponentSet("ChatMessage"); messenger.AddComponentSet("ChatChannels"); messenger.AddComponentSet("ChatInvite"); ActorSystem.instance.RegisterActor(messenger); EntityTracking entityTracking = new EntityTracking(); entityTracking.AddComponentSet("Neighbors"); actorSystem.RegisterActor(entityTracking); remoteEcho = new RemoteEcho(); remoteEcho.AddComponentSet("EchoTest"); actorSystem.RegisterActor(remoteEcho); RemoteEcho.EchoReceived callback = OnEchoReceived; remoteEcho.OnEchoReceived(callback); running = true; RunOnRunningCallbacks(); Debug.Log("App running - waiting to verify connection"); }
private void DeliverQueuedMessages() { if (entityTracking == null) { if (actors.ContainsKey("EntityTracking")) { entityTracking = actors["EntityTracking"] as EntityTracking; } } Entity entity; for (int i = 0; i < ClientMessageQueue.entityQueue.Count; i++) { if (ClientMessageQueue.entityQueue.TryDequeue(out entity)) { if (entity.neighbors != null || entity.trackDataResponse != null) { entityTracking.OnReceive(entity); continue; } if (entity.gameMessages != null) { GameMessageHandler.Instance.DeliverMessages(entity.gameMessages); continue; } // entities with a destination get routed directly if (!String.IsNullOrEmpty(entity.destination)) { DeliverByDestination(entity); } else { DeliverByComponent(entity); } } else { break; } } }