public void Push(IntPtr L, Transform o) { if (o == null) { LuaDLL.lua_pushnil(L); } else { Type type = o.GetType(); int reference = -1; if (type == typeof(Transform)) { reference = TypeTraits <Transform> .GetLuaReference(L); } else { reference = LuaStatic.GetMetaReference(L, type); } if (reference <= 0) { reference = ToLua.LoadPreType(L, type); } ToLua.PushUserData(L, o, reference); } }
static void PushArray(IntPtr L, T array) { if (array == null) { LuaDLL.lua_pushnil(L); } else { int arrayMetaTable = LuaStatic.GetArrayMetatable(L); ToLua.PushUserData(L, array, arrayMetaTable); } }
public static void Push(IntPtr L, IEnumerator iter) { if (iter == null) { LuaDLL.lua_pushnil(L); } else { int iterMetatable = LuaStatic.GetIterMetatable(L); ToLua.PushUserData(L, iter, iterMetatable); } }
public static void Push(IntPtr L, EventObject ev) { if (ev == null) { LuaDLL.lua_pushnil(L); } else { int eventMetatable = LuaStatic.GetEventMetatable(L); ToLua.PushUserData(L, ev, eventMetatable); } }
public static void Push(IntPtr L, Delegate ev) { if (ev == null) { LuaDLL.lua_pushnil(L); } else { int delegateMetatable = LuaStatic.GetDelegateMetatable(L); ToLua.PushUserData(L, ev, delegateMetatable); } }
public static void Push(IntPtr L, Type t) { if (t == null) { LuaDLL.lua_pushnil(L); } else { int typeMetatable = LuaStatic.GetTypeMetatable(L); ToLua.PushUserData(L, t, typeMetatable); } }
public static void Push(IntPtr L, Enum e) { if (e == null) { LuaDLL.lua_pushnil(L); } else { object o = null; int enumObject = LuaStatic.GetEnumObject(L, e, out o); ToLua.PushUserData(L, o, enumObject); } }
private static void PushUserObject(IntPtr L, object o) { Type type = o.GetType(); int metaReference = LuaStatic.GetMetaReference(L, type); if (metaReference > 0) { ToLua.PushUserData(L, o, metaReference); } else { ToLua.PushPreLoadType(L, o, type); } }
private static void PushPreLoadType(IntPtr L, object o, Type type) { LuaCSFunction preModule = LuaStatic.GetPreModule(L, type); if (preModule != null) { ToLua.LuaPCall(L, preModule); int metaReference = LuaStatic.GetMetaReference(L, type); if (metaReference > 0) { ToLua.PushUserData(L, o, metaReference); return; } } LuaDLL.lua_pushnil(L); Debugger.LogError("Type {0} not wrap to lua", LuaMisc.GetTypeName(type)); }
public void Push(IntPtr L, GameObject o) { if (o == null) { LuaDLL.lua_pushnil(L); } else { int reference = TypeTraits <GameObject> .GetLuaReference(L); if (reference <= 0) { reference = ToLua.LoadPreType(L, typeof(GameObject)); } ToLua.PushUserData(L, o, reference); } }