2021-05-18 08:27:27 +12:00
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace VRCMelonAssistant
|
|
|
|
{
|
|
|
|
public static class HardcodedCategories
|
|
|
|
{
|
|
|
|
private static readonly Dictionary<string, List<string>> CategoryContents = new()
|
|
|
|
{
|
|
|
|
{"Safety & Security", new() {"Advanced Safety", "Finitizer", "True Shader Anticrash", "Safety-Presets"}},
|
|
|
|
{"Core mods and libraries", new() {"UI Expansion Kit", "ActionMenuApi", "VRCModUpdater.Loader"}},
|
|
|
|
{"All-in-one mods", new() {"emmVRCLoader"}},
|
|
|
|
{"Camera mods", new() {
|
|
|
|
"CameraMinus", "DesktopCamera", "BetterSteadycam", "ITR's Melon Cameras", "CameraResChanger",
|
|
|
|
"LocalCameraMod", "Lag Free Screenshots"
|
|
|
|
}},
|
|
|
|
{"Performance & Fidelity", new() {
|
|
|
|
"Core Limiter", "MirrorResolutionUnlimiter", "AvatarHider", "Runtime Graphics Settings",
|
|
|
|
"GamePriority", "FrameFocus", "ClearVRAM"
|
|
|
|
}},
|
|
|
|
{"Utilities & Tweaks", new() {
|
|
|
|
"ReloadAvatars", "KeyboardPaste", "No Outlines", "UnmuteSound", "SparkleBeGone",
|
|
|
|
"BTKSAImmersiveHud", "OGTrustRanks", "ToggleMicIcon", "Friends+ home",
|
|
|
|
"MicSensitivity", "CloningBeGone", "ToggleFullScreen", "View Point Tweaker"
|
|
|
|
}},
|
2021-05-18 08:52:07 +12:00
|
|
|
{"Hardware support", new() {"LeapMotionExtension", "ThumbParams", "VRCFaceTracking", "VRCPimaxEyeTracker"}},
|
2021-05-18 08:27:27 +12:00
|
|
|
{"Dynamic bones", new() {
|
|
|
|
"ImmersiveTouch", "Dynamic Bones Safety", "MultiplayerDynamicBonesMod", "Multiplayer Dynamic Bones",
|
|
|
|
}},
|
|
|
|
{"World tweaks", new() {
|
|
|
|
"PostProcessing", "NearClipPlaneAdj", "RemoveChairs", "ComponentToggle", "No Grabby Hands", "AOOverride"
|
|
|
|
}},
|
2021-05-18 08:52:07 +12:00
|
|
|
{"Fixes", new() {"Invite+ fix", "CursorLockFix", "DownloadFix", "ProneUiFix"}},
|
2021-05-18 08:27:27 +12:00
|
|
|
{"New features & Overhauls", new() {
|
|
|
|
"IKTweaks", "JoinNotifier", "FBT Saver", "BTKSANameplateMod", "AdvancedInvites", "VRCVideoLibrary",
|
|
|
|
"BTKSASelfPortrait", "OldMate", "BetterLoadingScreen", "Loading Screen Pictures", "FavCat",
|
|
|
|
"ActionMenuUtils", "WorldPredownload", "AskToPortal", "Headlight", "ITR's Player Tracer",
|
|
|
|
"InstanceHistory", "PortableMirrorMod", "VRCBonesController"
|
|
|
|
}},
|
|
|
|
{"UI mods", new() {
|
|
|
|
"Particle and DynBone limiter settings UI", "CalibrateConfirm", "Emoji Page Buttons",
|
|
|
|
"UserInfoExtensions", "MLConsoleViewer", "OwO Mod", "ActiveBackground", "PlayerList", "ComfyVRMenu",
|
|
|
|
"DiscordMute", "MicToggle", "VRCPlusPet"
|
|
|
|
}},
|
|
|
|
{"Movement", new() {
|
|
|
|
"TeleporterVR", "ImmobilizePlayerMod", "TrackingRotator", "OculusPlayspaceMover",
|
|
|
|
"ITR's Gravity Controller", "QMFreeze", "Double-Tap Runner", "Player Rotater",
|
2021-05-18 08:52:07 +12:00
|
|
|
"HeadTurn"
|
2021-05-18 08:27:27 +12:00
|
|
|
}},
|
|
|
|
{"Very Niche Mods", new() {"HWIDPatch", "No Steam. At all.", "Vertex Animation Remover", "LocalPlayerPrefs", "BTKSAGestureMod",}}
|
|
|
|
};
|
|
|
|
|
|
|
|
private static readonly Dictionary<string, string> CategoryDescriptions = new()
|
|
|
|
{
|
|
|
|
{"Safety & Security", "Crash less, block annoyances"},
|
|
|
|
{"Core mods and libraries", "Other mods might require these"},
|
|
|
|
{"All-in-one mods", "It does a lot of stuff"},
|
|
|
|
{"Camera mods", "For all your screenshot or streaming needs"},
|
|
|
|
{"Performance & Fidelity", "Improve performance or make the game look better"},
|
|
|
|
{"Utilities & Tweaks", "Small mods that address specific issues"},
|
|
|
|
{"Hardware support", "For all exotic hardware out there"},
|
|
|
|
{"Dynamic bones", "Mods that affect jiggly bits"},
|
|
|
|
{"World tweaks", "Change aspects of the world you're in"},
|
|
|
|
{"Fixes", "It's not a bug, it's a feature"},
|
|
|
|
{"New features & Overhauls", "Mods that introduce new features or significantly change existing ones"},
|
|
|
|
{"UI mods", "Modify the user interface or introduce new functionality to it"},
|
|
|
|
{"Movement", "Move in new exciting ways"},
|
|
|
|
{"Very Niche Mods", "Only use these if you're really sure you need them"}
|
|
|
|
};
|
|
|
|
|
|
|
|
private static readonly Dictionary<string, string> ModNameToCategory = new();
|
|
|
|
|
|
|
|
static HardcodedCategories()
|
|
|
|
{
|
|
|
|
foreach (var keyValuePair in CategoryContents)
|
|
|
|
foreach (var s in keyValuePair.Value)
|
|
|
|
ModNameToCategory.Add(s.ToLowerInvariant(), keyValuePair.Key);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static string GetCategoryFor(Mod mod)
|
|
|
|
{
|
|
|
|
foreach (var alias in mod.aliases)
|
|
|
|
{
|
|
|
|
if (ModNameToCategory.TryGetValue(alias.ToLowerInvariant(), out var result)) return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach (var version in mod.versions)
|
|
|
|
{
|
|
|
|
if (ModNameToCategory.TryGetValue(version.name.ToLowerInvariant(), out var result)) return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static string GetCategoryDescription(string category)
|
|
|
|
{
|
|
|
|
return CategoryDescriptions.TryGetValue(category, out var result) ? result : "";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|