Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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;
                }
            }
        }