Exemplo n.º 1
0
        /// <summary>
        /// Generates the code for an identifier
        /// </summary>
        /// <param name="id">The symbol name</param>
        /// <param name="s">The Symbol node.</param>
        /// <returns>String containing C# code for identifier reference.</returns>
        private void GenerateIdentifier(string id, SYMBOL s, StringBuilder sb)
        {
            if (m_comms != null)
            {
                object value = m_comms.LookupModConstant(id);
                if (value != null)
                {
                    string retval = null;
                    if (value is int)
                    {
                        retval = String.Format("new LSL_Types.LSLInteger({0})", ((int)value).ToString());
                    }
                    else if (value is float)
                    {
                        retval = String.Format("new LSL_Types.LSLFloat({0})", ((float)value).ToString());
                    }
                    else if (value is string)
                    {
                        retval = String.Format("new LSL_Types.LSLString(\"{0}\")", ((string)value));
                    }
                    else if (value is OpenMetaverse.UUID)
                    {
                        retval = String.Format("new LSL_Types.key(\"{0}\")", ((OpenMetaverse.UUID)value).ToString());
                    }
                    else if (value is OpenMetaverse.Vector3)
                    {
                        retval = String.Format("new LSL_Types.Vector3(\"{0}\")", ((OpenMetaverse.Vector3)value).ToString());
                    }
                    else if (value is OpenMetaverse.Quaternion)
                    {
                        retval = String.Format("new LSL_Types.Quaternion(\"{0}\")", ((OpenMetaverse.Quaternion)value).ToString());
                    }
                    else
                    {
                        retval = id;
                    }

                    Generate(retval, s, sb);
                    return;
                }
            }

            Generate(CheckName(id), s, sb);
            return;
        }