Пример #1
0
        public BaseGameReader(string exePath)
        {
            BaseFolder   = exePath.Replace("hoi4.exe", "");
            MapFolder    = BaseFolder + "map\\";
            CommonFolder = BaseFolder + "common\\";
            FlagFolder   = BaseFolder + "gfx\\flags\\";

            BaseGame = this;

            LocalisationLookup = new Dictionary <string, string>();
            string localisationFolder = BaseFolder + "localisation\\";

            ReadLocalisationFile(localisationFolder + "strategic_region_names_l_english.yml");
            ReadLocalisationFile(localisationFolder + "state_names_l_english.yml");
            ReadLocalisationFile(localisationFolder + "countries_l_english.yml");
            ReadLocalisationFile(localisationFolder + "parties_l_english.yml");

            StateCategoryLookup = new Dictionary <string, StateCategory>();
            foreach (string file in Directory.GetFiles(BaseFolder + "common/state_category/"))
            {
                StateCategory newStateCategory = TextParser.CreateStateCategory(file);
                StateCategoryLookup.Add(newStateCategory.Tag, newStateCategory);
                Console.WriteLine(newStateCategory.Tag + ": " + newStateCategory.BuildingSlots.ToString());
            }

            ReadProvinceFile();
        }
Пример #2
0
        public StateIndexer(BaseGameReader gameReader, ModFileReader modReader, string statesPath)
        {
            StatesPath = statesPath;
            baseGame   = gameReader;
            modFile    = modReader;
            string baseGameStatesPath = baseGame.BaseFolder + "history/states/";

            LoadBaseGameStates(baseGameStatesPath);
            LoadModStates(modFile.RootFolder + "history/states/");

            // Iterate through all states with this
            List <State> allStatesList = new List <State>();

            stateOwnerLookup = new Dictionary <string, List <State> >();
            foreach (int stateID in stateIdLookup.Keys)
            {
                State newState = stateIdLookup[stateID];
                allStatesList.Add(newState);
                if (stateOwnerLookup.ContainsKey(newState.Owner))
                {
                    stateOwnerLookup[newState.Owner].Add(newState);
                }
                else
                {
                    stateOwnerLookup.Add(newState.Owner, new List <State>()
                    {
                        newState
                    });
                }
            }

            AllStates = allStatesList.ToArray();
        }