static internal int checkDelegate(IntPtr l, int p, out Localization.OnLocalizeNotification ua) { int op = extractFunction(l, p); if (LuaDLL.lua_isnil(l, p)) { ua = null; return(op); } else if (LuaDLL.lua_isuserdata(l, p) == 1) { ua = (Localization.OnLocalizeNotification)checkObj(l, p); return(op); } LuaDelegate ld; checkType(l, -1, out ld); if (ld.d != null) { ua = (Localization.OnLocalizeNotification)ld.d; return(op); } LuaDLL.lua_pop(l, 1); l = LuaState.get(l).L; ua = () => { int error = pushTry(l); ld.pcall(0, error); LuaDLL.lua_settop(l, error - 1); }; ld.d = ua; return(op); }
static int set_onLocalize(IntPtr L) { try { Localization.OnLocalizeNotification arg0 = null; LuaTypes funcType2 = LuaDLL.lua_type(L, 2); if (funcType2 != LuaTypes.LUA_TFUNCTION) { arg0 = (Localization.OnLocalizeNotification)ToLua.CheckObject(L, 2, typeof(Localization.OnLocalizeNotification)); } else { LuaFunction func = ToLua.ToLuaFunction(L, 2); arg0 = DelegateFactory.CreateDelegate(typeof(Localization.OnLocalizeNotification), func) as Localization.OnLocalizeNotification; } Localization.onLocalize = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
public static Delegate Localization_OnLocalizeNotification(LuaFunction func) { Localization.OnLocalizeNotification d = () => { func.Call(); }; return(d); }
public Boolean TryLoadCSV(Byte[] bytes, Boolean merge) { if (bytes == null) { return(false); } ByteReader byteReader = new ByteReader(bytes); BetterList <String> betterList = byteReader.ReadCSV(); if (betterList.size < 2) { return(false); } betterList.RemoveAt(0); lock (_lock) { String[] newLanguages; Dictionary <String, Int32> languageIndices = PrepareLanguages(merge, betterList, out newLanguages); while (true) { BetterList <string> newValues; do { newValues = byteReader.ReadCSV(); if (newValues == null || newValues.size == 0) { goto label_33; } } while (string.IsNullOrEmpty(newValues[0])); AddCSV(newValues, newLanguages, languageIndices); } label_33: if (_merging || Localization.onLocalize == null) { return(true); } _merging = true; Localization.OnLocalizeNotification localizeNotification = Localization.onLocalize; Localization.onLocalize = null; localizeNotification(); Localization.onLocalize = localizeNotification; _merging = false; return(true); } }
static int set_onLocalize(IntPtr L) { try { Localization.OnLocalizeNotification arg0 = (Localization.OnLocalizeNotification)ToLua.CheckDelegate <Localization.OnLocalizeNotification>(L, 2); Localization.onLocalize = arg0; return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
private static bool LoadCSV(byte[] bytes, TextAsset asset, bool merge = false) { if (bytes == null) { return(false); } ByteReader byteReader = new ByteReader(bytes); BetterList <string> betterList = byteReader.ReadCSV(); if (betterList.size < 2) { return(false); } betterList.RemoveAt(0); string[] array = null; if (string.IsNullOrEmpty(Localization.mLanguage)) { Localization.localizationHasBeenSet = false; } if (!Localization.localizationHasBeenSet || (!merge && !Localization.mMerging) || Localization.mLanguages == null || Localization.mLanguages.Length == 0) { Localization.mDictionary.Clear(); Localization.mLanguages = new string[betterList.size]; if (!Localization.localizationHasBeenSet) { Localization.mLanguage = PlayerPrefs.GetString("Language", betterList[0]); Localization.localizationHasBeenSet = true; } for (int i = 0; i < betterList.size; i++) { Localization.mLanguages[i] = betterList[i]; if (Localization.mLanguages[i] == Localization.mLanguage) { Localization.mLanguageIndex = i; } } } else { array = new string[betterList.size]; for (int j = 0; j < betterList.size; j++) { array[j] = betterList[j]; } for (int k = 0; k < betterList.size; k++) { if (!Localization.HasLanguage(betterList[k])) { int num = Localization.mLanguages.Length + 1; Array.Resize <string>(ref Localization.mLanguages, num); Localization.mLanguages[num - 1] = betterList[k]; Dictionary <string, string[]> dictionary = new Dictionary <string, string[]>(); foreach (KeyValuePair <string, string[]> current in Localization.mDictionary) { string[] value = current.Value; Array.Resize <string>(ref value, num); value[num - 1] = value[0]; dictionary.Add(current.Key, value); } Localization.mDictionary = dictionary; } } } Dictionary <string, int> dictionary2 = new Dictionary <string, int>(); for (int l = 0; l < Localization.mLanguages.Length; l++) { dictionary2.Add(Localization.mLanguages[l], l); } while (true) { BetterList <string> betterList2 = byteReader.ReadCSV(); if (betterList2 == null || betterList2.size == 0) { break; } if (!string.IsNullOrEmpty(betterList2[0])) { Localization.AddCSV(betterList2, array, dictionary2); } } if (!Localization.mMerging && Localization.onLocalize != null) { Localization.mMerging = true; Localization.OnLocalizeNotification onLocalizeNotification = Localization.onLocalize; Localization.onLocalize = null; onLocalizeNotification(); Localization.onLocalize = onLocalizeNotification; Localization.mMerging = false; } if (merge) { if (Localization.onLocalize != null) { Localization.onLocalize(); } UIRoot.Broadcast("OnLocalize"); } return(true); }