diff --git a/BSIPA.sln b/BSIPA.sln
index 2b2f106a..c9159b7a 100644
--- a/BSIPA.sln
+++ b/BSIPA.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27428.2043
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28729.10
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPA", "IPA\IPA.csproj", "{14092533-98BB-40A4-9AFC-27BB75672A70}"
ProjectSection(ProjectDependencies) = postProject
@@ -38,61 +38,127 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CollectDependencies", "Buil
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AssemblyRenameStep", "BuildTools\AssemblyRenameStep\AssemblyRenameStep.csproj", "{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BSIPA-ModList", "BSIPA-ModList\BSIPA-ModList.csproj", "{23AB2621-A05C-4377-8418-85E6012C0BBE}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
+ Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
+ Verbose_Release|Any CPU = Verbose_Release|Any CPU
Verbose_Release|x64 = Verbose_Release|x64
+ Verbose|Any CPU = Verbose|Any CPU
Verbose|x64 = Verbose|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|Any CPU.Build.0 = Debug|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.ActiveCfg = Debug|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Debug|x64.Build.0 = Debug|Any CPU
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Release|Any CPU.Build.0 = Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.ActiveCfg = Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Release|x64.Build.0 = Release|Any CPU
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|Any CPU.ActiveCfg = Verbose_Release|Any CPU
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|Any CPU.Build.0 = Verbose_Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.ActiveCfg = Verbose_Release|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose_Release|x64.Build.0 = Verbose_Release|Any CPU
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|Any CPU.ActiveCfg = Verbose|Any CPU
+ {14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|Any CPU.Build.0 = Verbose|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.ActiveCfg = Verbose|Any CPU
{14092533-98BB-40A4-9AFC-27BB75672A70}.Verbose|x64.Build.0 = Verbose|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64.ActiveCfg = Debug|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Debug|x64.Build.0 = Debug|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|Any CPU.Build.0 = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64.ActiveCfg = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Release|x64.Build.0 = Release|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose_Release|x64.Build.0 = Release|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
+ {5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|Any CPU.Build.0 = Release|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64.ActiveCfg = Debug|Any CPU
{5AD344F0-01A0-4CA8-92E5-9D095737744D}.Verbose|x64.Build.0 = Debug|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64.ActiveCfg = Debug|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Debug|x64.Build.0 = Debug|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|Any CPU.Build.0 = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64.ActiveCfg = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Release|x64.Build.0 = Release|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose_Release|x64.Build.0 = Release|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
+ {2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|Any CPU.Build.0 = Release|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64.ActiveCfg = Debug|Any CPU
{2A1AF16B-27F1-46E0-9A95-181516BC1CB7}.Verbose|x64.Build.0 = Debug|Any CPU
+ {88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|Any CPU.ActiveCfg = Debug|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.ActiveCfg = Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Debug|x64.Build.0 = Release|x64
+ {88609E16-731F-46C9-8139-6B1A7A83240D}.Release|Any CPU.ActiveCfg = Release|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.ActiveCfg = Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Release|x64.Build.0 = Release|x64
+ {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|Any CPU.ActiveCfg = Verbose_Release|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.ActiveCfg = Verbose_Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose_Release|x64.Build.0 = Verbose_Release|x64
+ {88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|Any CPU.ActiveCfg = Verbose|Win32
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.ActiveCfg = Verbose_Release|x64
{88609E16-731F-46C9-8139-6B1A7A83240D}.Verbose|x64.Build.0 = Verbose_Release|x64
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.ActiveCfg = Debug|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Debug|x64.Build.0 = Debug|Any CPU
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|Any CPU.Build.0 = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Release|x64.ActiveCfg = Release|Any CPU
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose_Release|x64.Build.0 = Release|Any CPU
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
+ {5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|Any CPU.Build.0 = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.ActiveCfg = Release|Any CPU
{5F33B310-DC8D-4C0D-877E-BAC3908DE10F}.Verbose|x64.Build.0 = Release|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|x64.ActiveCfg = Debug|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Debug|x64.Build.0 = Debug|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|Any CPU.Build.0 = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|x64.ActiveCfg = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Release|x64.Build.0 = Release|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose_Release|x64.Build.0 = Release|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
+ {E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|Any CPU.Build.0 = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|x64.ActiveCfg = Release|Any CPU
{E2CCDD2F-1D4F-4B06-9CD4-E0D2B9AE543A}.Verbose|x64.Build.0 = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Debug|x64.Build.0 = Debug|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Release|x64.ActiveCfg = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Release|x64.Build.0 = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose_Release|Any CPU.ActiveCfg = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose_Release|Any CPU.Build.0 = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose_Release|x64.ActiveCfg = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose_Release|x64.Build.0 = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose|Any CPU.ActiveCfg = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose|Any CPU.Build.0 = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose|x64.ActiveCfg = Release|Any CPU
+ {23AB2621-A05C-4377-8418-85E6012C0BBE}.Verbose|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj
index 2613576f..9fd4b414 100644
--- a/IPA.Loader/IPA.Loader.csproj
+++ b/IPA.Loader/IPA.Loader.csproj
@@ -127,5 +127,8 @@
+
+
+
\ No newline at end of file
diff --git a/IPA.Loader/Loader/PluginManager.cs b/IPA.Loader/Loader/PluginManager.cs
index f7e56e2b..122aed48 100644
--- a/IPA.Loader/Loader/PluginManager.cs
+++ b/IPA.Loader/Loader/PluginManager.cs
@@ -252,7 +252,7 @@ namespace IPA.Loader
return new Tuple, IEnumerable>(null, ipaPlugins);
}
- internal class AppInfo
+ internal static class AppInfo
{
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, ExactSpelling = false)]
private static extern int GetModuleFileName(HandleRef hModule, StringBuilder buffer, int length);
diff --git a/IPA.Loader/Loader/PluginManifest.cs b/IPA.Loader/Loader/PluginManifest.cs
index b5b33464..e45c330f 100644
--- a/IPA.Loader/Loader/PluginManifest.cs
+++ b/IPA.Loader/Loader/PluginManifest.cs
@@ -39,5 +39,8 @@ namespace IPA.Loader
[JsonProperty("loadAfter", Required = Required.DisallowNull)]
public string[] LoadAfter = new string[0];
+
+ [JsonProperty("icon", Required = Required.DisallowNull)]
+ public string IconPath = null;
}
}
\ No newline at end of file
diff --git a/IPA.Loader/Loader/manifest.json b/IPA.Loader/Loader/manifest.json
index d7619fce..3c55f6cb 100644
--- a/IPA.Loader/Loader/manifest.json
+++ b/IPA.Loader/Loader/manifest.json
@@ -6,6 +6,7 @@
"id": "BSIPA",
"name": "Beat Saber IPA",
"version": "3.12.13",
+ "icon": "IPA.icon.png",
"features": [
"define-feature(print, IPA.Loader.Features.PrintFeature)",
"define-feature(debug, IPA.Loader.Features.DebugFeature)",
diff --git a/IPA.Loader/Properties/AssemblyInfo.cs b/IPA.Loader/Properties/AssemblyInfo.cs
index a4c96091..be59e13f 100644
--- a/IPA.Loader/Properties/AssemblyInfo.cs
+++ b/IPA.Loader/Properties/AssemblyInfo.cs
@@ -22,6 +22,7 @@ using System.Runtime.InteropServices;
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("5ad344f0-01a0-4ca8-92e5-9d095737744d")]
[assembly: InternalsVisibleTo("IPA.Injector")]
+[assembly: InternalsVisibleTo("BSIPA-ModList")]
// Version information for an assembly consists of the following four values:
//
diff --git a/IPA.Loader/Thumbs.db b/IPA.Loader/Thumbs.db
new file mode 100644
index 00000000..25f19c79
Binary files /dev/null and b/IPA.Loader/Thumbs.db differ
diff --git a/IPA.Loader/icon.png b/IPA.Loader/icon.png
new file mode 100644
index 00000000..e03628bd
Binary files /dev/null and b/IPA.Loader/icon.png differ
diff --git a/IPA.Loader/icon.xcf b/IPA.Loader/icon.xcf
new file mode 100644
index 00000000..a9b6ca6a
Binary files /dev/null and b/IPA.Loader/icon.xcf differ
diff --git a/Refs/BeatSaberCustomUI.dll b/Refs/BeatSaberCustomUI.dll
new file mode 100644
index 00000000..8f810ea4
Binary files /dev/null and b/Refs/BeatSaberCustomUI.dll differ
diff --git a/Refs/BeatSaberCustomUI.xml b/Refs/BeatSaberCustomUI.xml
new file mode 100644
index 00000000..5fbaa627
--- /dev/null
+++ b/Refs/BeatSaberCustomUI.xml
@@ -0,0 +1,359 @@
+
+
+
+ BeatSaberCustomUI
+
+
+
+
+ Display a keyboard interface to accept user input.
+
+ The title to be displayed above the keyboard.
+ The starting value of the keyboard.
+ Callback when the text is modified by the user (when any key is pressed basically).
+ Callback when the user successfully submits the changed text.
+ Callback when the user presses the cancel button.
+
+
+
+
+ Creates a copy of a template button and returns it.
+
+ The transform to parent the button to.
+ The name of the button to make a copy of. Example: "QuitButton", "PlayButton", etc.
+ The position the button should be anchored to.
+ The size of the buttons RectTransform.
+ Callback for when the button is pressed.
+ The text that should be shown on the button.
+ The icon that should be shown on the button.
+ The newly created button.
+
+
+
+ Creates a copy of a template button and returns it.
+
+ The transform to parent the button to.
+ The name of the button to make a copy of. Example: "QuitButton", "PlayButton", etc.
+ The position the button should be anchored to.
+ Callback for when the button is pressed.
+ The text that should be shown on the button.
+ The icon that should be shown on the button.
+ The newly created button.
+
+
+
+ Creates a copy of a template button and returns it.
+
+ The transform to parent the button to.
+ The name of the button to make a copy of. Example: "QuitButton", "PlayButton", etc.
+ Callback for when the button is pressed.
+ The text that should be shown on the button.
+ The icon that should be shown on the button.
+ The newly created button.
+
+
+
+ Creates a copy of a back button.
+
+ The transform to parent the new button to.
+ Callback for when the button is pressed.
+ The newly created back button.
+
+
+
+ Creates a VRUIViewController of type T, and marks it to not be destroyed.
+
+ The variation of VRUIViewController you want to create.
+ The newly created VRUIViewController of type T.
+
+
+
+ Creates a CustomMenu, which is basically a custom panel that handles UI transitions for you automatically.
+
+ The type of CustomMenu to instantiate.
+ The title of the new CustomMenu.
+ The newly created CustomMenu of type T.
+
+
+
+ Creates a loading spinner.
+
+ The transform to parent the new loading spinner to.
+ The newly created loading spinner.
+
+
+
+ Creates a TextMeshProUGUI component.
+
+ Thet ransform to parent the new TextMeshProUGUI component to.
+ The text to be displayed.
+ The position the button should be anchored to.
+ The newly created TextMeshProUGUI component.
+
+
+
+ Creates a TextMeshProUGUI component.
+
+ Thet transform to parent the new TextMeshProUGUI component to.
+ The text to be displayed.
+ The position the text component should be anchored to.
+ The size of the text components RectTransform.
+ The newly created TextMeshProUGUI component.
+
+
+
+ Adds hint text to any component that handles pointer events.
+
+ Thet transform to parent the new HoverHint component to.
+ The text to be displayed on the HoverHint panel.
+ The newly created HoverHint component.
+
+
+
+ Creates a custom slider.
+
+ Thet transform to parent the new slider component to.
+ The minimum value of the slider.
+ The maximum value of the slider.
+ The amount to increment the slider by.
+ True if the value represented by the slider is an int, false if it's a float.
+ Callback when the sliders value changes.
+
+
+
+
+ Creates a color picker.
+
+ Thet transform to parent the new color picker to.
+ The position the color picker should be anchored to.
+ The size of the color picker's RectTransform.
+
+
+
+
+ The FlowCoordinator that presented this FlowCoordinator
+
+
+
+
+ The CustomMenu this FlowCoordinator is representing.
+
+
+
+
+ Back out to the previous flow coordinator.
+
+ If set to true, no animation will be shown and the transition will be instant.
+
+
+
+ Back out to the previous flow coordinator with an animation.
+
+
+
+
+ Whether or not to include a back button when the ViewController is activated.
+
+
+
+
+ A reference to the page up button, if it exists.
+
+
+
+
+ A reference to the page down button, if it exists.
+
+
+
+
+ The TableView associated with the current CustomListViewController.
+
+
+
+
+ The data to be displayed in the table.
+
+
+
+
+ An event fired when the user selects a cell in the TableView.
+
+
+
+
+ The reuse identifier, which is used to recycle cells instead of instantiating new instances of them.
+
+
+
+
+ The prefab used to instantiate new table cells.
+
+
+
+
+ Instantiates a new LevelListTableCell (or recycles an old one).
+
+ This param does nothing, and was left in by mistake.
+ If set to false, the BeatmapCharacteristicImages will be destroyed.
+
+
+
+
+ Instantiates a new LevelListTableCell (or recycles an old one).
+
+ If set to false, the BeatmapCharacteristicImages will be destroyed.
+
+
+
+
+ The CustomFlowCoordinator associated with this CustomMenu. This will not be populated if you have no main CustomViewController.
+
+
+
+
+ The main CustomViewController associated with this menu.
+
+
+
+
+ The left CustomViewController associated with this menu.
+
+
+
+
+ The right CustomViewController associated with this menu.
+
+
+
+
+ The bottom CustomViewController associated with this menu.
+
+
+
+
+ Sets up the main CustomViewController.
+
+ The viewcontroller to set.
+ Whether or not to generate a back button.
+ Optional, a callback when the ViewController becomes active (when you open it).
+ Optional, a callback when the ViewController becomes inactive (when you close it).
+
+
+
+ Sets up the left CustomViewController.
+
+ The viewcontroller to set.
+ Whether or not to generate a back button.
+ Optional, a callback when the ViewController becomes active (when you open it).
+ Optional, a callback when the ViewController becomes inactive (when you close it).
+
+
+
+ Sets up the right CustomViewController.
+
+ The viewcontroller to set.
+ Whether or not to generate a back button.
+ Optional, a callback when the ViewController becomes active (when you open it).
+ Optional, a callback when the ViewController becomes inactive (when you close it).
+
+
+
+ Sets up the bottom CustomViewController.
+
+ The viewcontroller to set.
+ Whether or not to generate a back button.
+ Optional, a callback when the ViewController becomes active (when you open it).
+ Optional, a callback when the ViewController becomes inactive (when you close it).
+
+
+
+ Opens the menu.
+
+ If set to true, no animation will be shown and the transition will be instant.
+
+
+
+
+ Opens the menu with an animation.
+
+
+
+
+ Closes the menu.
+
+ If set to true, no animation will be shown and the transition will be instant.
+
+
+
+ Closes the menu with an animation.
+
+
+
+
+ The event that's fired when the back button is pressed.
+
+
+
+
+ A reference to the current back button, if it exists.
+
+
+
+
+ When set to true, a back button will be automatically generated.
+
+
+
+
+ The event that's fired when the CustomViewController is activated (when you open it).
+
+
+
+
+ The event that's fired when the CustomViewController is deactivated (when you close it).
+
+
+
+
+ Clears any back button callbacks.
+
+
+
+
+ Sets the color while also updating all associated components.
+
+ The to set the preview image
+
+
+
+ Get the color of a sprite contained in an on pointer click
+
+ The given by OnPointerDown
+ The instance
+
+
+
+ Initialize the (should be called after assigning the variable)
+
+
+
+
+ Method called when the pointer is clicked inside the
+
+ Some informations about the pointer
+
+
+
+ Method called when the pointer is released inside the
+
+ Some informations about the pointer
+
+
+
+ Method called when the pointer is exiting the
+
+ Some informations about the pointer
+
+
+
diff --git a/Refs/UnityEngine.CoreModule.dll b/Refs/UnityEngine.CoreModule.dll
index f6478af7..dc2026ad 100644
Binary files a/Refs/UnityEngine.CoreModule.dll and b/Refs/UnityEngine.CoreModule.dll differ
diff --git a/Refs/refs.txt b/Refs/refs.txt
index f34bab9f..a9387a7a 100644
--- a/Refs/refs.txt
+++ b/Refs/refs.txt
@@ -1,6 +1,7 @@
::from ./bsinstalldir.txt
"Beat Saber_Data/
""Managed/
+"""Assembly-CSharp.dll
"""UnityEngine.
""""UnityWebRequestModule.
"""""dll
@@ -8,3 +9,7 @@
""""CoreModule.
"""""dll
"""""xml
+"Plugins/
+""BeatSaberCustomUI.
+"""dll
+"""xml
\ No newline at end of file
diff --git a/appveyor.yml b/appveyor.yml
index 0de0e935..499c8bc0 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -13,6 +13,9 @@ cache:
- '%LocalAppData%\NuGet\v3-cache' # NuGet v3
artifacts:
- path: IPA/bin/$(configuration)
+ name: BSIPA
+ - path: BSIPA-ModList/bin/$(configuration)
+ name: ModList
build:
verbosity: normal
project: BSIPA.sln
@@ -28,7 +31,7 @@ deploy:
- `$(APPVEYOR_REPO_COMMIT_MESSAGE_EXTENDED)`
auth_token:
secure: KhF3q/zWEFwrW0QeZLqE3NAkWR4u9iVhsmcyzXvwwJ28fUy+MzW4CWBx3RxNM60t
- artifact: IPA/Bin/$(configuration).zip
+ artifact: /.*\.zip/
draft: true
force_update: true
on: