Exemplo n.º 1
0
        protected Dictionary <T, string> GetValueFromStringArray(string x)
        {
            var    saida = new Dictionary <T, string>();
            string value;

            if (x.Contains(KvSepLvl1))
            {
                string[] array = x.Split(KvSepLvl1.ToCharArray());
                value = array[1];
            }
            else
            {
                value = x;
            }
            foreach (string item in value.Split(ItSepLvl2.ToCharArray()))
            {
                var kv = item.Split(KvSepLvl2.ToCharArray());
                if (kv.Length != 2)
                {
                    continue;
                }
                try
                {
                    T subkey = (T)Enum.Parse(typeof(T), kv[0]);
                    saida[subkey] = kv[1];
                }
                catch (Exception e)
                {
                    KlyteUtils.doLog("ERRO AO OBTER VALOR STR ARR: {0}", e.StackTrace);
                    continue;
                }
            }
            return(saida);
        }
Exemplo n.º 2
0
        public override void AwakeBody()
        {
            KlyteUtils.doLog("Loading NonKCModsOverrides");
            #region Suburb Styler
            foreach (var typeName in supportedClasses)
            {
                var type = Type.GetType(typeName);
                try
                {
                    if (type != null)
                    {
                        KlyteUtils.SetPrivateStaticField("GetMainReference", type, new Func <UIComponent>(() => KlyteModsPanel.instance.mainPanel));
                        KlyteUtils.SetPrivateStaticField("ClosePanel", type, new OnButtonClicked(() => KlyteCommonsMod.CloseKCPanel()));
                        KlyteUtils.SetPrivateStaticField("OpenPanel", type, new OnButtonClicked(() => KlyteModsPanel.instance.OpenAt((ModTab)Enum.Parse(typeof(ModTab), KlyteUtils.RunPrivateStaticMethod <string>(type, "GetEnumName")))));



                        MethodInfo createPanelOverride = typeof(NonKCModsOverrides).GetMethod("CreateMainPanelOverride", allFlags);

                        AddRedirect(type.GetMethod("CreateMainPanel", allFlags), createPanelOverride);
                    }
                }
                catch (Exception e)
                {
                    KlyteUtils.doErrorLog($"{e.GetType()} detouring {type}: {e.Message}\n{e.StackTrace}");
                }
            }
            #endregion
        }
Exemplo n.º 3
0
        protected List <Dictionary <T, string> > LoadConfigList(K idx, bool global = false)
        {
            var result = new List <Dictionary <T, string> >();

            KlyteUtils.doLog("{0} load()", idx);
            string[] itemListLvl1;
            if (global && !AllowGlobal)
            {
                throw new Exception("CONFIGURAÇÂO NÃO GLOBAL TENTOU SER CARREGADA COMO GLOBAL: " + typeof(U));
            }
            if (global)
            {
                itemListLvl1 = Singleton <I> .instance.getConfig2().getString(idx).Split(ItSepLvl1.ToCharArray());
            }
            else
            {
                itemListLvl1 = Singleton <I> .instance.currentLoadedCityConfig.getString(idx).Split(ItSepLvl1.ToCharArray());
            }

            if (itemListLvl1.Length > 0)
            {
                KlyteUtils.doLog("{0} load(): file.Length > 0", idx);
                foreach (string s in itemListLvl1)
                {
                    var value = GetValueFromStringArray(s);
                    result.Add(value);
                }
                KlyteUtils.doLog("{0} load(): dic done", idx);
            }
            return(result);
        }
Exemplo n.º 4
0
        public override void AwakeBody()
        {
            KlyteUtils.doLog("Loading Instance Manager Overrides");
            #region Release Line Hooks
            MethodInfo posRename = typeof(InstanceManagerOverrides).GetMethod("OnInstanceRenamed", allFlags);

            AddRedirect(typeof(InstanceManager).GetMethod("SetName", allFlags), null, posRename);
            #endregion
        }
        public override void AwakeBody()
        {
            KlyteUtils.doLog("Loading Transport Manager Overrides");
            #region Release Line Hooks
            MethodInfo posUpdate = typeof(TransportManagerOverrides).GetMethod("RunOnLineUpdated", allFlags);

            AddRedirect(typeof(TransportManager).GetMethod("UpdateLine", allFlags), null, posUpdate);
            #endregion
        }
        public override void AwakeBody()
        {
            KlyteUtils.doLog("Loading District Manager Overrides");
            #region Release Line Hooks
            MethodInfo posChange = typeof(DistrictManagerOverrides).GetMethod("OnDistrictChanged", allFlags);

            AddRedirect(typeof(DistrictManager).GetMethod("SetDistrictName", allFlags), null, posChange);
            AddRedirect(typeof(DistrictManager).GetMethod("AreaModified", allFlags), null, posChange);
            #endregion
        }
        public override void AwakeBody()
        {
            KlyteUtils.doLog("Loading Building Manager Overrides");
            #region Net Manager Hooks
            MethodInfo OnBuildingCreated  = GetType().GetMethod("OnBuildingCreated", allFlags);
            MethodInfo OnBuildingReleased = GetType().GetMethod("OnBuildingReleased", allFlags);

            AddRedirect(typeof(BuildingManager).GetMethod("CreateBuilding", allFlags), null, OnBuildingCreated);
            AddRedirect(typeof(BuildingManager).GetMethod("ReleaseBuilding", allFlags), null, OnBuildingReleased);
            #endregion
        }
Exemplo n.º 8
0
        public override void AwakeBody()
        {
            KlyteUtils.doLog("Loading Net Manager Overrides");
            #region Net Manager Hooks
            MethodInfo OnNodeChanged        = GetType().GetMethod("OnNodeChanged", allFlags);
            MethodInfo OnSegmentCreated     = GetType().GetMethod("OnSegmentCreated", allFlags);
            MethodInfo OnSegmentReleased    = GetType().GetMethod("OnSegmentReleased", allFlags);
            MethodInfo OnSegmentNameChanged = GetType().GetMethod("OnSegmentNameChanged", allFlags);

            AddRedirect(typeof(NetManager).GetMethod("CreateNode", allFlags), null, OnNodeChanged);
            AddRedirect(typeof(NetManager).GetMethod("ReleaseNode", allFlags), null, OnNodeChanged);
            AddRedirect(typeof(NetManager).GetMethod("CreateSegment", allFlags), null, OnSegmentCreated);
            AddRedirect(typeof(NetManager).GetMethod("ReleaseSegment", allFlags), OnSegmentReleased);
            AddRedirect(typeof(NetManager).GetMethod("SetSegmentNameImpl", allFlags), null, OnSegmentNameChanged);
            #endregion
        }
Exemplo n.º 9
0
        protected void SaveConfig(Dictionary <T, string> target, K idx, bool global = false)
        {
            I loadedConfig;

            if (global && !AllowGlobal)
            {
                throw new Exception("CONFIGURAÇÂO NÃO GLOBAL TENTOU SER SALVA COMO GLOBAL: " + typeof(U));
            }
            if (global)
            {
                loadedConfig = Singleton <I> .instance.getConfig2();
            }
            else
            {
                loadedConfig = Singleton <I> .instance.currentLoadedCityConfig;
            }
            var value = RecursiveEncode(target, 1);

            KlyteUtils.doLog("saveConfig ({0}) NEW VALUE: {1}", idx, value);
            loadedConfig.setString(idx, value);
        }
Exemplo n.º 10
0
        protected Dictionary <T, string> LoadConfigSingle(K idx, bool global = false)
        {
            var result = new Dictionary <T, string>();

            KlyteUtils.doLog("{0} load()", idx);
            string itemList;

            if (global && !AllowGlobal)
            {
                throw new Exception("CONFIGURAÇÂO NÃO GLOBAL TENTOU SER CARREGADA COMO GLOBAL: " + typeof(U));
            }
            if (global)
            {
                itemList = Singleton <I> .instance.getConfig2().getString(idx);
            }
            else
            {
                itemList = Singleton <I> .instance.currentLoadedCityConfig.getString(idx);
            }

            return(GetValueFromStringArray(itemList));
        }
Exemplo n.º 11
0
        private void loadLocaleIntern(string localeId, bool setLocale, string prefix, string packagePrefix)
        {
            KlyteUtils.doLog($"{GetType()} localeId: {localeId}");
            string load = Singleton <R> .instance.loadResourceString("UI.i18n." + localeId + ".properties");

            if (load == null)
            {
                KlyteUtils.doLog("File UI.i18n." + localeId + ".properties not found. Probably this translation doesn't exists for this mod.");
                load = "";
            }
            var locale = KlyteUtils.GetPrivateField <Locale>(LocaleManager.instance, "m_Locale");

            Locale.Key k;


            foreach (var myString in load.Split(lineSeparator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
            {
                if (myString.StartsWith(commentChar))
                {
                    continue;
                }
                if (!myString.Contains(kvSeparator))
                {
                    continue;
                }
                bool   noPrefix  = myString.StartsWith(ignorePrefixChar);
                var    array     = myString.Split(kvSeparator.ToCharArray(), 2);
                string value     = array[1];
                int    idx       = 0;
                string localeKey = null;
                if (array[0].Contains(idxSeparator))
                {
                    var arrayIdx = array[0].Split(idxSeparator.ToCharArray());
                    if (!int.TryParse(arrayIdx[1], out idx))
                    {
                        continue;
                    }
                    array[0] = arrayIdx[0];
                }
                if (array[0].Contains(localeKeySeparator))
                {
                    array     = array[0].Split(localeKeySeparator.ToCharArray());
                    localeKey = array[1];
                }

                k = new Locale.Key()
                {
                    m_Identifier = noPrefix ? array[0].Substring(1) : prefix + array[0],
                    m_Key        = localeKey,
                    m_Index      = idx
                };
                if (!locale.Exists(k))
                {
                    locale.AddLocalizedString(k, value.Replace("\\n", "\n"));
                }
            }

            if (localeId != "en")
            {
                loadLocaleIntern("en", false, prefix, packagePrefix);
            }
            if (setLocale)
            {
                language = localeId;
            }
        }
Exemplo n.º 12
0
 public override void doLog(string fmt, params object[] args)
 {
     KlyteUtils.doLog(fmt, args);
 }
Exemplo n.º 13
0
 public override void doLog(string text, params object[] param)
 {
     KlyteUtils.doLog(text, param);
 }