mirror of
https://github.com/All-Of-Us-Mods/MiraAPI.git
synced 2026-10-19 15:51:48 +00:00
Save wiki preferences in config file
This commit is contained in:
1 parent
a6dab42df3
commit
5d354eff5e
2 files changed
+110
-42
No files matched your search
@@ -4,6 +4,7 @@ using BepInEx;
|
|||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using BepInEx.Unity.IL2CPP;
|
using BepInEx.Unity.IL2CPP;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
|
using MiraAPI.Patches;
|
||||||
using MiraAPI.Patches.Roles;
|
using MiraAPI.Patches.Roles;
|
||||||
using MiraAPI.PluginLoading;
|
using MiraAPI.PluginLoading;
|
||||||
using MiraAPI.Translation;
|
using MiraAPI.Translation;
|
||||||
@@ -63,9 +64,30 @@ public partial class MiraApiPlugin : BasePlugin, IMiraPlugin
|
|||||||
private static MiraPluginManager? PluginManager { get; set; }
|
private static MiraPluginManager? PluginManager { get; set; }
|
||||||
internal Harmony Harmony { get; } = new(Id);
|
internal Harmony Harmony { get; } = new(Id);
|
||||||
|
|
||||||
|
public static ConfigEntry<SortingGroups> WikiSortingGroup { get; private set; }
|
||||||
|
|
||||||
|
public static ConfigEntry<SortingMethod> WikiSortingMethod { get; private set; }
|
||||||
|
|
||||||
|
public static ConfigEntry<SortingFilter> WikiSortingFilter { get; private set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override void Load()
|
public override void Load()
|
||||||
{
|
{
|
||||||
|
WikiSortingGroup = Config.Bind(
|
||||||
|
"Wiki",
|
||||||
|
"WikiSortingGroup",
|
||||||
|
SortingGroups.Ungrouped,
|
||||||
|
"Determines how clusters of roles / modifiers are grouped together, if at all.");
|
||||||
|
WikiSortingMethod = Config.Bind(
|
||||||
|
"Wiki",
|
||||||
|
"WikiSortingMethod",
|
||||||
|
SortingMethod.Alphabetical,
|
||||||
|
"Determines if the list of roles / modifiers are organized in ascending or descending order.");
|
||||||
|
WikiSortingFilter = Config.Bind(
|
||||||
|
"Wiki",
|
||||||
|
"WikiSortingFilter",
|
||||||
|
SortingFilter.AllRoles,
|
||||||
|
"Determines what roles / modifiers are displayed at once.");
|
||||||
Harmony.PatchAll();
|
Harmony.PatchAll();
|
||||||
RoleOptionsCollectionPatch.PatchRoleMethods(Harmony);
|
RoleOptionsCollectionPatch.PatchRoleMethods(Harmony);
|
||||||
UiResetEvents.Initialize();
|
UiResetEvents.Initialize();
|
||||||
|
|||||||
@@ -346,6 +346,10 @@ public static class RoleGuidePatches
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_sortFilter = MiraApiPlugin.WikiSortingFilter.Value;
|
||||||
|
_sortMethod = MiraApiPlugin.WikiSortingMethod.Value;
|
||||||
|
_sortGrouping = MiraApiPlugin.WikiSortingGroup.Value;
|
||||||
|
|
||||||
if (_populate != null)
|
if (_populate != null)
|
||||||
{
|
{
|
||||||
Coroutines.Stop(_populate);
|
Coroutines.Stop(_populate);
|
||||||
@@ -368,8 +372,8 @@ public static class RoleGuidePatches
|
|||||||
SearchSortingOrderButton,
|
SearchSortingOrderButton,
|
||||||
"SearchSortingOrderButton",
|
"SearchSortingOrderButton",
|
||||||
SwitchMethod,
|
SwitchMethod,
|
||||||
MiraAssets.SortingAzIdleSprite,
|
GetSortMethodSprite(_sortMethod, false),
|
||||||
MiraAssets.SortingAzHoverSprite,
|
GetSortMethodSprite(_sortMethod, true),
|
||||||
new Vector3(2.4f, 0.765f, -0.1f),
|
new Vector3(2.4f, 0.765f, -0.1f),
|
||||||
out _searchSortingOrderIdle,
|
out _searchSortingOrderIdle,
|
||||||
out _searchSortingOrderHover);
|
out _searchSortingOrderHover);
|
||||||
@@ -383,8 +387,8 @@ public static class RoleGuidePatches
|
|||||||
SearchSortingGroupButton,
|
SearchSortingGroupButton,
|
||||||
"SearchSortingGroupButton",
|
"SearchSortingGroupButton",
|
||||||
SwitchGrouping,
|
SwitchGrouping,
|
||||||
MiraAssets.GroupNoneIdleSprite,
|
GetSortGroupSprite(_sortGrouping, false),
|
||||||
MiraAssets.GroupNoneHoverSprite,
|
GetSortGroupSprite(_sortGrouping, true),
|
||||||
new Vector3(1.7f, 0.765f, -0.1f),
|
new Vector3(1.7f, 0.765f, -0.1f),
|
||||||
out _searchSortingGroupIdle,
|
out _searchSortingGroupIdle,
|
||||||
out _searchSortingGroupHover);
|
out _searchSortingGroupHover);
|
||||||
@@ -398,8 +402,8 @@ public static class RoleGuidePatches
|
|||||||
SearchSortingFilterButton,
|
SearchSortingFilterButton,
|
||||||
"SearchSortingFilterButton",
|
"SearchSortingFilterButton",
|
||||||
SwitchFilter,
|
SwitchFilter,
|
||||||
MiraAssets.VisibleOnIdleSprite,
|
GetSortFilterSprite(_sortFilter, false),
|
||||||
MiraAssets.VisibleOnHoverSprite,
|
GetSortFilterSprite(_sortFilter, true),
|
||||||
new Vector3(1f, 0.765f, -0.1f),
|
new Vector3(1f, 0.765f, -0.1f),
|
||||||
out _searchSortingFilterIdle,
|
out _searchSortingFilterIdle,
|
||||||
out _searchSortingFilterHover);
|
out _searchSortingFilterHover);
|
||||||
@@ -1042,25 +1046,40 @@ public static class RoleGuidePatches
|
|||||||
_sortFilter = SortingFilter.EnabledOnly;
|
_sortFilter = SortingFilter.EnabledOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (_sortFilter)
|
MiraApiPlugin.WikiSortingFilter.Value = _sortFilter;
|
||||||
{
|
|
||||||
case SortingFilter.AllRoles:
|
_searchSortingFilterIdle.sprite = GetSortFilterSprite(_sortFilter, false);
|
||||||
_searchSortingFilterIdle.sprite = MiraAssets.VisibleAllIdleSprite;
|
_searchSortingFilterHover.sprite = GetSortFilterSprite(_sortFilter, true);
|
||||||
_searchSortingFilterHover.sprite = MiraAssets.VisibleAllHoverSprite;
|
|
||||||
break;
|
|
||||||
case SortingFilter.DisabledOnly:
|
|
||||||
_searchSortingFilterIdle.sprite = MiraAssets.VisibleOffIdleSprite;
|
|
||||||
_searchSortingFilterHover.sprite = MiraAssets.VisibleOffHoverSprite;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
_searchSortingFilterIdle.sprite = MiraAssets.VisibleOnIdleSprite;
|
|
||||||
_searchSortingFilterHover.sprite = MiraAssets.VisibleOnHoverSprite;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
RefreshActiveTab(false);
|
RefreshActiveTab(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Sprite GetSortFilterSprite(SortingFilter value, bool hover)
|
||||||
|
{
|
||||||
|
if (hover)
|
||||||
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case SortingFilter.AllRoles:
|
||||||
|
return MiraAssets.VisibleAllHoverSprite;
|
||||||
|
case SortingFilter.DisabledOnly:
|
||||||
|
return MiraAssets.VisibleOffHoverSprite;
|
||||||
|
default:
|
||||||
|
return MiraAssets.VisibleOnHoverSprite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case SortingFilter.AllRoles:
|
||||||
|
return MiraAssets.VisibleAllIdleSprite;
|
||||||
|
case SortingFilter.DisabledOnly:
|
||||||
|
return MiraAssets.VisibleOffIdleSprite;
|
||||||
|
default:
|
||||||
|
return MiraAssets.VisibleOnIdleSprite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void SwitchMethod()
|
public static void SwitchMethod()
|
||||||
{
|
{
|
||||||
var stepUp = (SortingMethod)((int)_sortMethod + 1);
|
var stepUp = (SortingMethod)((int)_sortMethod + 1);
|
||||||
@@ -1073,16 +1092,28 @@ public static class RoleGuidePatches
|
|||||||
_sortMethod = SortingMethod.Alphabetical;
|
_sortMethod = SortingMethod.Alphabetical;
|
||||||
}
|
}
|
||||||
|
|
||||||
_searchSortingOrderIdle.sprite = _sortMethod is SortingMethod.Alphabetical
|
MiraApiPlugin.WikiSortingMethod.Value = _sortMethod;
|
||||||
? MiraAssets.SortingAzIdleSprite
|
|
||||||
: MiraAssets.SortingZaIdleSprite;
|
_searchSortingOrderIdle.sprite = GetSortMethodSprite(_sortMethod, false);
|
||||||
_searchSortingOrderHover.sprite = _sortMethod is SortingMethod.Alphabetical
|
_searchSortingOrderHover.sprite = GetSortMethodSprite(_sortMethod, true);
|
||||||
? MiraAssets.SortingAzHoverSprite
|
|
||||||
: MiraAssets.SortingZaHoverSprite;
|
|
||||||
|
|
||||||
RefreshActiveTab(false);
|
RefreshActiveTab(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Sprite GetSortMethodSprite(SortingMethod value, bool hover)
|
||||||
|
{
|
||||||
|
if (hover)
|
||||||
|
{
|
||||||
|
return value is SortingMethod.Alphabetical
|
||||||
|
? MiraAssets.SortingAzHoverSprite
|
||||||
|
: MiraAssets.SortingZaHoverSprite;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _sortMethod is SortingMethod.Alphabetical
|
||||||
|
? MiraAssets.SortingAzIdleSprite
|
||||||
|
: MiraAssets.SortingZaIdleSprite;
|
||||||
|
}
|
||||||
|
|
||||||
public static void SwitchGrouping()
|
public static void SwitchGrouping()
|
||||||
{
|
{
|
||||||
var stepUp = (SortingGroups)((int)_sortGrouping + 1);
|
var stepUp = (SortingGroups)((int)_sortGrouping + 1);
|
||||||
@@ -1095,25 +1126,40 @@ public static class RoleGuidePatches
|
|||||||
_sortGrouping = SortingGroups.Ungrouped;
|
_sortGrouping = SortingGroups.Ungrouped;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (_sortGrouping)
|
MiraApiPlugin.WikiSortingGroup.Value = _sortGrouping;
|
||||||
{
|
|
||||||
case SortingGroups.Faction:
|
_searchSortingGroupIdle.sprite = GetSortGroupSprite(_sortGrouping, false);
|
||||||
_searchSortingGroupIdle.sprite = MiraAssets.GroupFactionIdleSprite;
|
_searchSortingGroupHover.sprite = GetSortGroupSprite(_sortGrouping, true);
|
||||||
_searchSortingGroupHover.sprite = MiraAssets.GroupFactionHoverSprite;
|
|
||||||
break;
|
|
||||||
case SortingGroups.AmountChance:
|
|
||||||
_searchSortingGroupIdle.sprite = MiraAssets.GroupCountIdleSprite;
|
|
||||||
_searchSortingGroupHover.sprite = MiraAssets.GroupCountHoverSprite;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
_searchSortingGroupIdle.sprite = MiraAssets.GroupNoneIdleSprite;
|
|
||||||
_searchSortingGroupHover.sprite = MiraAssets.GroupNoneHoverSprite;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
RefreshActiveTab(false);
|
RefreshActiveTab(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Sprite GetSortGroupSprite(SortingGroups value, bool hover)
|
||||||
|
{
|
||||||
|
if (hover)
|
||||||
|
{
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case SortingGroups.Faction:
|
||||||
|
return MiraAssets.GroupFactionHoverSprite;
|
||||||
|
case SortingGroups.AmountChance:
|
||||||
|
return MiraAssets.GroupCountHoverSprite;
|
||||||
|
default:
|
||||||
|
return MiraAssets.GroupNoneHoverSprite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (value)
|
||||||
|
{
|
||||||
|
case SortingGroups.Faction:
|
||||||
|
return MiraAssets.GroupFactionIdleSprite;
|
||||||
|
case SortingGroups.AmountChance:
|
||||||
|
return MiraAssets.GroupCountIdleSprite;
|
||||||
|
default:
|
||||||
|
return MiraAssets.GroupNoneIdleSprite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void CopyTextLayout(TextMeshPro source, TextMeshPro target)
|
private static void CopyTextLayout(TextMeshPro source, TextMeshPro target)
|
||||||
{
|
{
|
||||||
target.font = source.font;
|
target.font = source.font;
|
||||||
|
|||||||
Reference in new issue
Block a user