public void AddStaticRegisterData(LuaStaticRegisterData data) { if (data != null) { if (!staticRegisterDic.ContainsKey(data.registerType)) { staticRegisterDic.Add(data.registerType, data); } } }
public int GetRegisterRef(Type type, bool isAutoRegister = true) { LuaStaticRegisterData staticRegData = null; if (!IsIngoreStaticRegister(type) && staticRegisterDic.TryGetValue(type, out staticRegData)) { return(staticRegData.luaRef); } LuaClass dynamicRegData = null; if (dynamicRegisterDic.TryGetValue(type, out dynamicRegData)) { return(dynamicRegData.typeRef); } if (isAutoRegister) { return(RegisterToLua(type)); } return(LuaAPI.LUA_REFNIL); }
public int RegisterToLua(Type type) { LuaStaticRegisterData staticRegData = null; if (!IsIngoreStaticRegister(type) && staticRegisterDic.TryGetValue(type, out staticRegData)) { if (staticRegData.luaRef == LuaAPI.LUA_REFNIL) { staticRegData.luaRef = staticRegData.registerFun(luaState); return(staticRegData.luaRef); } else { return(staticRegData.luaRef); } } else { LuaClass dynamicRegData = null; if (!dynamicRegisterDic.TryGetValue(type, out dynamicRegData)) { dynamicRegData = new LuaClass(luaState, type, registerIndex++); dynamicRegisterDic.Add(type, dynamicRegData); dynamicRegisterList.Add(dynamicRegData); dynamicRegData.RegisterClass(); return(dynamicRegData.typeRef); } else { return(dynamicRegData.typeRef); } } }