Beispiel #1
0
        public static void PushVar(IntPtr ptr, object o)
        {
            if (o == null)
            {
                LuaNativeMethods.lua_pushnil(ptr);
                return;
            }

            Type t = o.GetType();

            LuaState.PushVarDelegate push;
            LuaState ls = LuaState.Get(ptr);

            if (ls.TryGetTypePusher(t, out push))
            {
                push(ptr, o);
            }
            else if (t.IsEnum)
            {
                PushEnum(ptr, Convert.ToInt32(o));
            }
            else if (t.IsArray)
            {
                PushObject(ptr, (Array)o);
            }
            else
            {
                PushObject(ptr, o);
            }
        }