Aurora.ScriptEngine.AuroraDotNetEngine.APIs.LSL_Api.llRequestSimulatorData C# (CSharp) Метод

llRequestSimulatorData() публичный Метод

public llRequestSimulatorData ( string simulator, int data ) : Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLString
simulator string
data int
Результат Aurora.ScriptEngine.AuroraDotNetEngine.LSL_Types.LSLString
        public LSL_Key llRequestSimulatorData(string simulator, int data)
        {
            UUID tid = UUID.Zero;

            try
            {
                if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) return "";

                string reply = String.Empty;

                GridRegion info = World.RegionInfo.RegionName == simulator
                                      ? new GridRegion(World.RegionInfo)
                                      : World.GridService.GetRegionByName(World.RegionInfo.AllScopeIDs, simulator);


                switch (data)
                {
                    case 5: // DATA_SIM_POS
                        if (info == null)
                            break;

                        reply = new LSL_Vector(
                            info.RegionLocX,
                            info.RegionLocY,
                            0).ToString();
                        break;
                    case 6: // DATA_SIM_STATUS
                        if (info != null)
                        {
                            reply = (info.Flags & (int)Framework.RegionFlags.RegionOnline) != 0 ? "up" : "down";
                        }
                        //if() starting
                        //if() stopping
                        //if() crashed
                        else
                            reply = "unknown";
                        break;
                    case 7: // DATA_SIM_RATING
                        if (info == null)
                            break;

                        uint access = Util.ConvertAccessLevelToMaturity(info.Access);
                        if (access == 0)
                            reply = "PG";
                        else if (access == 1)
                            reply = "MATURE";
                        else if (access == 2)
                            reply = "ADULT";
                        else
                            reply = "UNKNOWN";
                        break;
                    case 128:
                        try
                        {
                            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.High, "llRequestSimulatorData", m_host, "LSL", m_itemID)) return "";
                            reply = "Aurora";
                        }
                        catch
                        {
                            reply = "";
                        }
                        break;
                }
                if (reply != "")
                {
                    UUID rq = UUID.Random();

                    DataserverPlugin dataserverPlugin = (DataserverPlugin)m_ScriptEngine.GetScriptPlugin("Dataserver");

                    tid = dataserverPlugin.RegisterRequest(m_host.UUID, m_itemID, rq.ToString());

                    dataserverPlugin.AddReply(rq.ToString(), reply, 1000);
                }
            }
            catch
            {
            }

            ScriptSleep(1000);
            return (LSL_Key)tid.ToString();
        }
LSL_Api