Exemple #1
0
        public void Connect(uint UID, VMEntity invoker, VMEntity obj, VMAvatar avatar, bool joinable, VM vm)
        {
            if (InvokerToEOD.ContainsKey(invoker.ObjectID)) return; //uh, what?

            VMEODServer server = null;
            if (avatar != null && AvatarToEOD.ContainsKey(avatar.PersistID))
            {
                //avatar already using an EOD... quickly abort this attempt with the stub EOD.
                joinable = false;
                UID = 0;
                avatar = null;
            }

            if (joinable)
            {
                if (!JoinableEODs.TryGetValue(obj.ObjectID, out server))
                {
                    server = new VMEODServer(UID, obj, joinable, vm);
                    JoinableEODs[obj.ObjectID] = server;
                    Servers.Add(server);
                }
            }
            else
            {
                server = new VMEODServer(UID, obj, joinable, vm);
                Servers.Add(server);
            }

            if (avatar != null) RegisterAvatar(avatar, server);
            RegisterInvoker(invoker, server);
            server.Connect(new VMEODClient(invoker, avatar, vm, UID));
        }
 public void RegisterInvoker(VMEntity invoker, VMEODServer server)
 {
     if (invoker == null)
     {
         return;
     }
     InvokerToEOD.Add(invoker.ObjectID, server);
 }
 public void RegisterAvatar(VMAvatar avatar, VMEODServer server)
 {
     if (avatar == null)
     {
         return;
     }
     AvatarToEOD.Add(avatar.PersistID, server);
 }
        public void SimanticsDeliver(short evt, VMEntity invoker)
        {
            VMEODServer server = null;

            if (InvokerToEOD.TryGetValue(invoker.ObjectID, out server))
            {
                var invokerClient = server.Clients.FirstOrDefault(x => x.Invoker == invoker);
                if (invokerClient != null)
                {
                    server.SimanticsDeliver(evt, invokerClient);
                }
            }
        }
        public void Deliver(VMNetEODMessageCmd msg, VMAvatar avatar)
        {
            VMEODServer server = null;

            if (AvatarToEOD.TryGetValue(avatar.PersistID, out server))
            {
                var avatarClient = server.Clients.FirstOrDefault(x => x.Avatar == avatar);
                if (avatarClient != null)
                {
                    server.Deliver(msg, avatarClient);
                }
            }
        }
        public void ForceDisconnect(VMAvatar avatar)
        {
            VMEODServer server = null;

            if (AvatarToEOD.TryGetValue(avatar.PersistID, out server))
            {
                var avatarClient = server.Clients.FirstOrDefault(x => x.Avatar == avatar);
                if (avatarClient != null)
                {
                    server.Disconnect(avatarClient);
                }
            }
        }
        public void ForceDisconnectObj(VMEntity invoker)
        {
            VMEODServer server = null;

            if (InvokerToEOD.TryGetValue(invoker.ObjectID, out server))
            {
                var invokerClient = server.Clients.FirstOrDefault(x => x.Invoker == invoker);
                if (invokerClient != null)
                {
                    server.Disconnect(invokerClient);
                }
            }
        }
Exemple #8
0
        public void ActionCancelDisconnect(VMAvatar avatar)
        {
            VMEODServer server = null;

            if (AvatarToEOD.TryGetValue(avatar.ObjectID, out server))
            {
                if (!server.CanBeActionCancelled)
                {
                    return;
                }
                var avatarClient = server.Clients.FirstOrDefault(x => x.Avatar == avatar);
                if (avatarClient != null)
                {
                    server.Disconnect(avatarClient);
                }
            }
        }
        public void Connect(uint UID, VMEntity invoker, VMEntity obj, VMAvatar avatar, bool joinable, VM vm)
        {
            if (InvokerToEOD.ContainsKey(invoker.ObjectID))
            {
                return;                                             //uh, what?
            }
            VMEODServer server = null;

            if (avatar != null && AvatarToEOD.ContainsKey(avatar.PersistID))
            {
                //avatar already using an EOD... quickly abort this attempt with the stub EOD.
                joinable = false;
                UID      = 0;
                avatar   = null;
            }

            if (joinable)
            {
                if (!JoinableEODs.TryGetValue(obj.ObjectID, out server))
                {
                    server = new VMEODServer(UID, obj, joinable, vm);
                    JoinableEODs[obj.ObjectID] = server;
                    Servers.Add(server);
                }
            }
            else
            {
                server = new VMEODServer(UID, obj, joinable, vm);
                Servers.Add(server);
            }

            if (avatar != null)
            {
                RegisterAvatar(avatar, server);
            }
            RegisterInvoker(invoker, server);
            server.Connect(new VMEODClient(invoker, avatar, vm, UID));
        }
Exemple #10
0
 public void RegisterInvoker(VMEntity invoker, VMEODServer server)
 {
     if (invoker == null) return;
     InvokerToEOD.Add(invoker.ObjectID, server);
 }
Exemple #11
0
 public void RegisterAvatar(VMAvatar avatar, VMEODServer server)
 {
     if (avatar == null) return;
     AvatarToEOD.Add(avatar.PersistID, server);
 }