diff --git a/SkinHide/SkinHidePlugin.cs b/SkinHide/SkinHidePlugin.cs index b438f06..16d6c03 100644 --- a/SkinHide/SkinHidePlugin.cs +++ b/SkinHide/SkinHidePlugin.cs @@ -19,9 +19,19 @@ namespace SkinHide public static List Bot = new List(); + public enum Part + { + All, + Dress, + SkinDress + } + public static ConfigEntry KeyPlayerSkinHide { get; set; } public static ConfigEntry KeyBotSkinHide { get; set; } + public static ConfigEntry KeyPlayerSkinHidePart { get; set; } + public static ConfigEntry KeyBotSkinHidePart { get; set; } + public static ConfigEntry KBSPlayerSkinHide { get; set; } public static ConfigEntry KBSBotSkinHide { get; set; } @@ -30,11 +40,15 @@ namespace SkinHide Logger.LogInfo("Loaded: kmyuhkyuk-SkinHide"); string SkinHide = "Skin Hide"; - string KBS = "Keyboard Shortcut"; + string SkinHidePart = "隐藏部分 Skin Hide Part"; + string KBS = "快捷键 Keyboard Shortcut"; KeyPlayerSkinHide = Config.Bind(SkinHide, "玩家服装隐藏 Player Skin Hide", false); KeyBotSkinHide = Config.Bind(SkinHide, "Bot服装隐藏 Bot Skin Hide", false); + KeyPlayerSkinHidePart = Config.Bind(SkinHidePart, "Player", Part.All); + KeyBotSkinHidePart = Config.Bind(SkinHidePart, "Bot", Part.All); + KBSPlayerSkinHide = Config.Bind(KBS, "玩家服装隐藏快捷键 Player Skin Hide", new KeyboardShortcut()); KBSBotSkinHide = Config.Bind(KBS, "Bot服装隐藏快捷键 Bot Skin Hide", new KeyboardShortcut()); @@ -56,13 +70,13 @@ namespace SkinHide //PlayerModelView Skin Hide if (PlayerModelView != null) { - Hide(PlayerModelView, KeyPlayerSkinHide.Value); + Hide(PlayerModelView, KeyPlayerSkinHide.Value, KeyPlayerSkinHidePart.Value); } //Player Skin Hide if (Player != null) { - Hide(Player, KeyPlayerSkinHide.Value); + Hide(Player, KeyPlayerSkinHide.Value, KeyPlayerSkinHidePart.Value); } //Bot Skin Hide @@ -71,12 +85,12 @@ namespace SkinHide { foreach (PlayerBody bot in Bot) { - Hide(bot, KeyBotSkinHide.Value); + Hide(bot, KeyBotSkinHide.Value, KeyBotSkinHidePart.Value); } } } - void Hide(PlayerBody playerbody, bool hide) + void Hide(PlayerBody playerbody, bool hide, Part part) { object slotviews = playerbody.SlotViews; @@ -90,14 +104,31 @@ namespace SkinHide GameObject[] skindress = dresses.Where(x => x.GetType() == typeof(SkinDress) || x.GetType() == typeof(ArmBandView)).Select(x => x.gameObject).ToArray(); - foreach (GameObject gameobject in skindress) + switch (part) { - gameobject.SetActive(!hide); - } + case Part.All: + foreach (GameObject gameobject in skindress) + { + gameobject.SetActive(!hide); + } - foreach (MeshRenderer renderer in renderers) - { - renderer.enabled = !hide; + foreach (MeshRenderer renderer in renderers) + { + renderer.enabled = !hide; + } + break; + case Part.Dress: + foreach (MeshRenderer renderer in renderers) + { + renderer.enabled = !hide; + } + break; + case Part.SkinDress: + foreach (GameObject gameobject in skindress) + { + gameobject.SetActive(!hide); + } + break; } } }