/// <summary>
 ///     Gets the current skin.
 /// </summary>
 /// <returns>an <c>ISelectableSkin</c> that represents the current skin</returns>
 public static ISelectableSkin GetCurrentSkin()
 {
     if (CurrentSkin == null)
     {
         CurrentSkin = GetSkinById("Default");
     }
     return(CurrentSkin);
 }
 internal static void Unload()
 {
     //load default skin for charms and such
     CurrentSkin = GetDefaultSkin();
     LoadSkin();
     On.GeoControl.Start -= ((Geo)Skinables[Geo.NAME]).GeoControl_Start;
     CustomKnight.dumpManager.Unload();
     CustomKnight.swapManager.Unload();
 }
    public static void SetSkinById(string id)
    {
        ISelectableSkin Skin = GetSkinById(id);

        if (EnemyHPBar.instance.CurrentSkin.GetId() == Skin.GetId())
        {
            return;
        }
        EnemyHPBar.instance.CurrentSkin = Skin;
    }
        /// <summary>
        ///     Add a skin to the skin list provided by an external mod.
        /// </summary>
        /// <param name="NewSkin">an <c>ISelectableSkin</c> that represents the skin</param>
        /// <returns>true if the skin is added</returns>
        public static bool AddSkin(ISelectableSkin NewSkin)
        {
            var Exists = SkinManager.ProvidedSkins.Exists(skin => skin.GetId() == NewSkin.GetId());

            if (!Exists)
            {
                SkinManager.ProvidedSkins.Add(NewSkin);
                BetterMenu.UpdateSkinList();
            }
            return(!Exists);
        }
 internal static void LoadSkin()
 {
     if (CurrentSkin == null)
     {
         var CurrentSkinName = CustomKnight.SaveSettings.DefaultSkin != CustomKnight.GlobalSettings.DefaultSkin ? CustomKnight.SaveSettings.DefaultSkin : CustomKnight.GlobalSettings.DefaultSkin;
         CurrentSkin = GetSkinById(CurrentSkinName);
     }
     SpriteLoader.Load();
     On.GeoControl.Start            -= ((Geo)Skinables[Geo.NAME]).GeoControl_Start;
     On.GeoControl.Start            += ((Geo)Skinables[Geo.NAME]).GeoControl_Start;
     ModHooks.AfterSavegameLoadHook += SpriteLoader.ModifyHeroTextures;
 }
    internal static void ApplySkin()
    {
        ISelectableSkin skinToApply = EnemyHPBar.SkinList[selectedSkin];

        BetterMenu.SetSkinById(skinToApply.GetId());
        EnemyHPBar.bossol = EnemyHPBar.instance.HPBarCreateSprite(ResourceLoader.GetBossOutlineImage());
        EnemyHPBar.bossbg = EnemyHPBar.instance.HPBarCreateSprite(ResourceLoader.GetBossBackgroundImage());
        EnemyHPBar.bossfg = EnemyHPBar.instance.HPBarCreateSprite(ResourceLoader.GetBossForegroundImage());
        EnemyHPBar.ol     = EnemyHPBar.instance.HPBarCreateSprite(ResourceLoader.GetOutlineImage());
        EnemyHPBar.fg     = EnemyHPBar.instance.HPBarCreateSprite(ResourceLoader.GetForegroundImage());
        EnemyHPBar.mg     = EnemyHPBar.instance.HPBarCreateSprite(ResourceLoader.GetMiddlegroundImage());
        EnemyHPBar.bg     = EnemyHPBar.instance.HPBarCreateSprite(ResourceLoader.GetBackgroundImage());
    }
Beispiel #7
0
 public Texture2D GetTexture(ISelectableSkin skin, bool isLeft)
 {
     if (rightSkin == null)
     {
         rightSkin = skin.Exists($"{name}.png") ? skin.GetTexture($"{name}.png") : null;
     }
     if (leftSkin == null)
     {
         leftSkin = skin.Exists($"{name}_left.png") ? skin.GetTexture($"{name}_left.png") : rightSkin;
     }
     if (isLeft)
     {
         return(leftSkin);
     }
     else
     {
         return(rightSkin);
     }
 }
        /// <summary>
        ///     Change the current skin, to the one whose id is provided.
        /// </summary>
        /// <param name="id">a <c>string</c> that uniquely identifies the skin</param>
        public static void SetSkinById(string id)
        {
            var Skin = GetSkinById(id);

            CustomKnight.Instance.Log("Trying to apply skin :" + Skin.GetId());
            if (CurrentSkin != null && CurrentSkin.GetId() == Skin.GetId())
            {
                return;
            }
            CurrentSkin = Skin;
            BetterMenu.SelectedSkin(SkinManager.CurrentSkin.GetId());
            // use this when saving so you save to the right settings
            if (GameManager.instance.IsNonGameplayScene())
            {
                CustomKnight.GlobalSettings.DefaultSkin = CurrentSkin.GetId();
            }
            else
            {
                CustomKnight.GlobalSettings.DefaultSkin = CurrentSkin.GetId();
                CustomKnight.SaveSettings.DefaultSkin   = CurrentSkin.GetId();
            };
            RefreshSkin(false);
            OnSetSkin?.Invoke(CustomKnight.Instance, new EventArgs());
        }