예제 #1
0
        /// <summary>
        ///     Add your mod's custom localization. Only one <see cref="CustomLocalization"/> can be added per mod.
        /// </summary>
        /// <param name="customLocalization">The localization to add.</param>
        /// <returns>true if the custom localization was added to the manager.</returns>
        public bool AddLocalization(CustomLocalization customLocalization)
        {
            if (Localizations.Any(x => x.SourceMod == customLocalization.SourceMod))
            {
                Logger.LogWarning($"{customLocalization} already added");
                return(false);
            }

            Localizations.Add(customLocalization);

            return(true);
        }
예제 #2
0
        /// <summary>
        ///     Get the CustomLocalization for a given mod.
        ///     Creates a new <see cref="CustomLocalization"/> if no localization was added before.
        /// </summary>
        /// <returns>Existing or newly created <see cref="CustomLocalization"/>.</returns>
        internal CustomLocalization GetLocalization(BepInPlugin sourceMod)
        {
            var ret = Localizations.FirstOrDefault(ctx => ctx.SourceMod == sourceMod);

            if (ret != null)
            {
                return(ret);
            }

            if (sourceMod == Main.Instance.Info.Metadata)
            {
                return(JotunnLocalization);
            }

            ret = new CustomLocalization(sourceMod);
            Localizations.Add(ret);
            return(ret);
        }