Exemple #1
0
        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));
        }
    }
Exemple #3
0
 public static Delegate Localization_OnLocalizeNotification(LuaFunction func)
 {
     Localization.OnLocalizeNotification d = () =>
     {
         func.Call();
     };
     return(d);
 }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 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));
     }
 }
Exemple #6
0
    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);
    }