Пример #1
0
        public static void CfgMangerGet()
        {
            var name = configManager.CfgName;

            if (name == "")
            {
                Plugin.configManager.debugInfo = "name can't be empty!";
                return;
            }
            if (cfgList.ContainsKey(name))
            {
                configManager.obj = (TameTable)cfgList[name].Clone();
                CfgTable          = (TameTable)configManager.obj;
                Plugin.configManager.debugInfo = name + " is Loaded";
                return;
            }
            Plugin.configManager.debugInfo = name + " is not exsit, use Add";
        }
Пример #2
0
        private void Awake()
        {
            logger       = base.Logger;
            nexusID      = base.Config.Bind <int>("Nexus", "NexusID", 478, "Nexus mod ID for updates");
            HatchingTime = base.Config.Bind <int>("2DragonEgg", "hatching time", 300, "how long will egg become a drake");
            HatchingEgg  = base.Config.Bind <bool>("2DragonEgg", "enable egg hatching", true, "this alse enable tamed drake spawn eggs");
            cfg          = base.Config.Bind <string>("1General", "Settings",
                                                     "Hatchling,true,600,300,30,10,300,10,RawMeat,true,true,5,0.33,10,300",
                                                     "name,commandable,tamingTime,fedDuration,consumeRange,consumeSearchInterval,consumeHeal,consumeSearchRange,consumeItem:consumeItem,changeFaction,procretion,maxCreatures,pregnancyChance,pregnancyDuration,growTime,;next one;...;last one");

            loaded   = initCfg();
            CfgTable = new TameTable();
            string list = "Your list has: ";

            foreach (var item in cfgList.Keys)
            {
                list += item + "  ";
            }
            Root = new GameObject("AllTameable Root");

            prefabManager = Root.AddComponent <PrefabManager>();
            petManager    = Root.AddComponent <PetManager>();

            var SM_Root = new GameObject("ConfigManager").transform;

            SM_Root.SetParent(Plugin.Root.transform);
            SM_Root.gameObject.SetActive(false);
            configManager           = SM_Root.gameObject.AddComponent <ConfigManager>();
            configManager.debugInfo = list;
            configManager.obj       = CfgTable;
            configManager.title     = "All Tameable Setup " + (loaded ? "Loaded" : "!!Load Fail!!");
            //configManager.gameObject.SetActive(false);
            DontDestroyOnLoad(Root);

            Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly(), null);

            DBG.blogInfo("AllTameable Loadded");
        }
Пример #3
0
        public bool initCfg()
        {
            if (cfg.Value == "")
            {
                DBG.blogWarning("CFG is empty");
                return(false);
            }
            string[] list = cfg.Value.Split(new char[] { ';' });
            foreach (string tt in list)
            {
                string[] set = tt.Split(new char[] { ',' });

                if (set.Length == 8 || set.Length == 9)
                {
                    DBG.blogWarning("Upadate your cfg : " + tt);
                    return(false);
                }
                if (set.Length != 15)
                {
                    DBG.blogWarning("Not enought args : " + tt);
                    return(false);
                }
                TameTable table = new TameTable();
                string    name  = set[0];
                if (set[1] == "true")
                {
                    table.commandable = true;
                }
                else
                {
                    table.commandable = false;
                }

                try
                {
                    table.tamingTime            = float.Parse(set[2]);
                    table.fedDuration           = float.Parse(set[3]);
                    table.consumeRange          = float.Parse(set[4]);
                    table.consumeSearchInterval = float.Parse(set[5]);
                    table.consumeHeal           = float.Parse(set[6]);
                    table.consumeSearchRange    = float.Parse(set[7]);
                }
                catch (Exception e)
                {
                    DBG.blogWarning("wrong syntax : " + tt);
                    logger.LogError(e);
                    return(false);
                }
                table.consumeItems = set[8];

                if (set[9] == "true")
                {
                    table.changeFaction = true;
                }
                if (set[10] == "true")
                {
                    table.procretion = true;
                }

                try
                {
                    float a = 0.33f;
                    table.maxCreatures = int.Parse(set[11]);
                    if (Single.TryParse(set[12], out a))
                    {
                        table.pregnancyChance = a;
                    }

                    table.pregnancyDuration = Single.Parse(set[13]);
                    table.growTime          = Single.Parse(set[14]);
                }
                catch (Exception e)
                {
                    DBG.blogWarning("wrong syntax : " + tt);
                    logger.LogError(e);
                    return(false);
                }
                cfgList.Add(name, table);
            }
            DBG.blogInfo("TameTable Loaded :" + cfgList.Count);
            return(true);
        }