MattEqualsCoder.MSURandomizer.Library
3.0.0
dotnet add package MattEqualsCoder.MSURandomizer.Library --version 3.0.0
NuGet\Install-Package MattEqualsCoder.MSURandomizer.Library -Version 3.0.0
<PackageReference Include="MattEqualsCoder.MSURandomizer.Library" Version="3.0.0" />
paket add MattEqualsCoder.MSURandomizer.Library --version 3.0.0
#r "nuget: MattEqualsCoder.MSURandomizer.Library, 3.0.0"
// Install MattEqualsCoder.MSURandomizer.Library as a Cake Addin #addin nuget:?package=MattEqualsCoder.MSURandomizer.Library&version=3.0.0 // Install MattEqualsCoder.MSURandomizer.Library as a Cake Tool #tool nuget:?package=MattEqualsCoder.MSURandomizer.Library&version=3.0.0
MSU Randomizer Library
This is a library which can be included in other .NET projects for looking up MSUs and randomly selecting them or shuffling the tracks.
Instructions
Step 1. Create an settings file
The application uses a YAML settings file to manage base application settings. You can find the base YAML file here. These are loaded by default, and you provide another YAMl file with overrides. You can view all possible settings here.
Step 2. Add Services to the Service Collection
The MSU Randomizer utilizes DependencyInjection. You'll need to configure a logger, then add both the UI and regular Library services to your Service Collection.
_host = Host.CreateDefaultBuilder(e.Args)
.ConfigureLogging(...})
.ConfigureServices(services =>
{
services.AddMsuRandomizerServices();
})
.Start();
Step 3. Initialize the MSU Randomizer Library
You can use the IMsuRandomizerInitialization service to setup all required services. Create a MsuRandomizerInitializationRequest, giving it either a stream or path to your settings YAML file from step 1, then call the IMsuRandomizerInitializationService's Initialize function.
var settingsStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MSURandomizer.settings.yaml");
if (settingsStream == null)
{
throw new InvalidOperationException("Missing RandomizerSettings stream");
}
var msuInitializationRequest = new MsuRandomizerInitializationRequest
{
MsuAppSettingsStream = settingsStream,
};
_host.Services.GetRequiredService<IMsuRandomizerInitializationService>().Initialize(msuInitializationRequest);
Step 4. Use any of the serviices as you'd like
Once setup, you can use any of the MSU Randomizer library services to look up MSUs, randomize MSUs, and more.
- IMsuRandomizerInitializationService - Service used to initialize the most critical services for loading the app settings and MSU types.
- IMsuAppSettingsService - Used to load the MSU Randomizer app settings for global options.
- IMsuUserOptionsService - Used to load and save options for the user, such as the MSU directories and MSU overrides.
- IMsuTypeService - Loads MSU types from a folder of JSON configs or a single JSON config.
- IMsuLookupService - Scans folders for MSUs and automatically determines the correct MSU type for them.
- IMsuDetailsService - Loads or saves the MSU details for a given MSU from YAML or JSON.
- IMsuSelectorService - Used for randomly selecting/shuffling MSUs and saving them.
- IMsuUiFactory - Factory for generating UI elements to display to the user.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- Google.Protobuf (>= 3.28.3)
- Grpc.AspNetCore (>= 2.66.0)
- Grpc.Net.Client (>= 2.66.0)
- MattEqualsCoder.SnesConnectorLibrary (>= 0.9.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.2)
- YamlDotNet (>= 16.1.3)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on MattEqualsCoder.MSURandomizer.Library:
Package | Downloads |
---|---|
MattEqualsCoder.MSURandomizer.UI
UI library with windows and controls for randomizing MSUs. |
|
MattEqualsCoder.MSURandomizer.Avalonia
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.0.0 | 80 | 11/23/2024 |
3.0.0-rc.5 | 103 | 11/9/2024 |
3.0.0-rc.4 | 42 | 11/9/2024 |
3.0.0-rc.3 | 38 | 11/7/2024 |
3.0.0-rc.2 | 33 | 11/7/2024 |
3.0.0-rc.1 | 39 | 11/3/2024 |
2.2.0-beta.1 | 109 | 7/7/2024 |
2.1.2 | 294 | 7/22/2024 |
2.1.1 | 134 | 7/15/2024 |
2.1.0 | 383 | 6/22/2024 |
2.1.0-rc.3 | 304 | 5/8/2024 |
2.1.0-rc.2 | 81 | 5/6/2024 |
2.0.1-rc.2 | 70 | 5/1/2024 |
2.0.0-rc.15 | 76 | 4/30/2024 |
2.0.0-rc.14 | 123 | 4/24/2024 |
2.0.0-rc.13 | 91 | 4/22/2024 |
2.0.0-rc.10 | 78 | 4/4/2024 |
2.0.0-rc.9 | 67 | 4/4/2024 |
2.0.0-rc.8 | 67 | 4/3/2024 |
2.0.0-rc.3 | 57 | 4/2/2024 |
2.0.0-beta.1 | 119 | 3/12/2024 |
1.2.4 | 161 | 1/19/2024 |
1.2.2 | 454 | 10/31/2023 |
1.2.1 | 273 | 9/24/2023 |
1.2.0 | 235 | 8/29/2023 |
1.1.6 | 124 | 8/29/2023 |
1.1.5 | 133 | 8/29/2023 |
1.1.4 | 150 | 8/27/2023 |
1.1.3 | 154 | 8/27/2023 |
1.1.2 | 142 | 8/27/2023 |
1.1.0 | 152 | 8/25/2023 |
1.0.1 | 166 | 8/21/2023 |
1.0.1-rc.1 | 72 | 8/21/2023 |
1.0.0 | 140 | 8/21/2023 |
0.9.8 | 149 | 8/1/2023 |