public static bool TryFindRootAgent(this SceneList list, UUID regionid, UUID agentId, out IAgent agent)
        {
            agent = null;
            SceneInterface scene;

            return(list.TryGetValue(regionid, out scene) && scene.RootAgents.TryGetValue(agentId, out agent));
        }
        public static bool SendIM(this SceneList list, GridInstantMessage gim)
        {
            IAgent agent;
            UUID   sceneID;
            bool   result = false;

            if (list.TryFindRootAgent(gim.ToAgent.ID, out agent, out sceneID))
            {
                result = agent.IMSend(gim);
            }
            return(result);
        }
        public static void SendMoneyBalance(this SceneList list, UUID agentId, int moneyBalance)
        {
            IAgent agent;
            UUID   sceneID;

            if (list.TryFindRootAgent(agentId, out agent, out sceneID))
            {
                agent.SendMessageIfRootAgent(new MoneyBalanceReply
                {
                    AgentID      = agentId,
                    MoneyBalance = moneyBalance
                }, sceneID);
            }
        }
 public static bool TryFindRootAgent(this SceneList list, UUID agentId, out IAgent agent, out UUID regionid)
 {
     agent    = null;
     regionid = default(UUID);
     foreach (SceneInterface scene in list.Values)
     {
         if (scene.RootAgents.TryGetValue(agentId, out agent))
         {
             regionid = scene.ID;
             return(true);
         }
     }
     return(false);
 }