Ejemplo n.º 1
0
        /// <summary> Look for known mods that modify coop/barn interiors and load the matching profile (if any). </summary>
        private void SetTroughPlacementProfile()
        {
            try
            {
                TroughPlacementProfiles.LoadProfiles(Helper);
            }
            catch (Exception e)
            {
                Monitor.Log($"Error while loading trough placement profiles: {e}", LogLevel.Warn);
            }

            if (TroughPlacementProfiles.DefaultProfile == null)
            {
                Monitor.Log("The default trough placement profile was not loaded. Animals Need Water will not work correctly. Make sure all files in this mod's assets folder are in place.", LogLevel.Error);
                return;
            }

            foreach (var modInfo in Helper.ModRegistry.GetAll())
            {
                var profile = TroughPlacementProfiles.GetProfileByUniqueId(modInfo.Manifest.UniqueID);
                if (profile != null)
                {
                    CurrentTroughPlacementProfile = profile;
                }
            }

            CurrentTroughPlacementProfile ??= TroughPlacementProfiles.DefaultProfile;
        }
        public static TroughPlacementProfile GetProfileByUniqueId(string id)
        {
            TroughPlacementProfile result = null;

            foreach (var profile in LoadedProfiles)
            {
                if (profile.modUniqueId.Contains(id, StringComparison.CurrentCultureIgnoreCase))
                {
                    result = profile;
                }
            }

            return(result);
        }
        public static void LoadProfiles(IModHelper helper)
        {
            var profiles       = new List <TroughPlacementProfile>();
            var availableFiles = Directory.GetFiles(Path.Combine(helper.DirectoryPath, "assets/TroughPlacementProfiles")).Where(filename => filename.Contains(".json"));

            foreach (var file in availableFiles)
            {
                var profile = helper.Data.ReadJsonFile <TroughPlacementProfile>("assets/TroughPlacementProfiles/" + Path.GetFileName(file));

                if (Path.GetFileNameWithoutExtension(file).Contains("default"))
                {
                    DefaultProfile = profile;
                }
                else
                {
                    profiles.Add(profile);
                }
            }

            LoadedProfiles = profiles;
        }