AGS.Plugin.Lua.LuaDotNetObjectProxy.PushValue C# (CSharp) Метод

PushValue() публичный статический Метод

public static PushValue ( IntPtr L, object o, LuaDotNetObjectProxy>.Dictionary proxied, LuaDotNetObjectProxy>.Dictionary proxiedByUserdata ) : void
L System.IntPtr
o object
proxied LuaDotNetObjectProxy>.Dictionary
proxiedByUserdata LuaDotNetObjectProxy>.Dictionary
Результат void
        public static void PushValue(lua_State L, object o, Dictionary<object, LuaDotNetObjectProxy> proxied, Dictionary<IntPtr, LuaDotNetObjectProxy> proxiedByUserdata)
        {
            if (o == null)
            {
                InvokeLua.lua_pushnil(L);
                return;
            }
            if (o is char)
            {
                InvokeLua.lua_pushstring(L, new String((char)o, 1));
                return;
            }
            if (o is string)
            {
                InvokeLua.lua_pushstring(L, (string)o);
                return;
            }
            if (o is Byte || o is SByte || o is Int16 || o is UInt16 || o is Int32 || o is UInt32
                || o is Int64 || o is UInt64 || o is Single || o is Double || o is Decimal)
            {
                InvokeLua.lua_pushnumber(L, (double)o);
                return;
            }
            if (o is bool)
            {
                InvokeLua.lua_pushboolean(L, (bool)o);
                return;
            }
            if (o is byte[])
            {
                InvokeLua.lua_pushstring(L, (byte[])o);
                return;
            }
            LuaDotNetObjectProxy proxy;
            if (proxied.TryGetValue(o, out proxy))
            {
                InvokeLua.lua_pushlightuserdata(L, proxy.userdata);
                InvokeLua.lua_rawget(L, InvokeLua.LUA_REGISTRYINDEX);
            }
            else
            {
                new LuaDotNetObjectProxy(L, o, proxied, proxiedByUserdata);
            }
        }