OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.JsonBuildRestOfSpec C# (CSharp) Method

JsonBuildRestOfSpec() private method

private JsonBuildRestOfSpec ( OpenSim.Region.ScriptEngine.Shared.LSL_Types.list specifiers, int i, OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString val ) : OSD
specifiers OpenSim.Region.ScriptEngine.Shared.LSL_Types.list
i int
val OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString
return OSD
        private OSD JsonBuildRestOfSpec(LSL_List specifiers, int i, LSL_String val)
        {
            object spec = i >= specifiers.Data.Length ? null : specifiers.Data[i];
            // 20131224 not used            object specNext = i+1 >= specifiers.Data.Length ? null : specifiers.Data[i+1];

            if (spec == null)
                return OSD.FromString(val);

            if (spec is LSL_Integer ||
                (spec is LSL_String && ((LSL_String)spec) == ScriptBaseClass.JSON_APPEND))
            {
                OSDArray array = new OSDArray();
                array.Add(JsonBuildRestOfSpec(specifiers, i + 1, val));
                return array;
            }
            else if (spec is LSL_String)
            {
                OSDMap map = new OSDMap();
                map.Add((LSL_String)spec, JsonBuildRestOfSpec(specifiers, i + 1, val));
                return map;
            }
            return new OSD();
        }
LSL_Api