RhythmBase.View
1.0.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package RhythmBase.View --version 1.0.1
NuGet\Install-Package RhythmBase.View -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RhythmBase.View" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RhythmBase.View" Version="1.0.1" />
<PackageReference Include="RhythmBase.View" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RhythmBase.View --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: RhythmBase.View, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RhythmBase.View@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RhythmBase.View&version=1.0.1
#tool nuget:?package=RhythmBase.View&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
<p align="center"> <a href="https://www.nuget.org/packages/RhythmBase.View/"><img src="https://img.shields.io/nuget/v/RhythmBase.View?logo=nuget" alt="Nuget Download"></a> <img src="https://img.shields.io/nuget/dt/RhythmBase.View" alt="Downloads"/> </p>
RhythmBase.View
This library renders Rhythm Doctor events with SkiaSharp.
See the example below for a quick usage sketch.
| Project | Description | Status | Link |
|---|---|---|---|
| RhythmBase | Core library for level editing. | WIP | Go There |
| RhythmBase.View | Draw all Rhythm Doctor event elements in SkiaSharp. | WIP | You are here |
| RhythmBase.Addition | Extensions for levels. | Not disclosed | - |
| RhythmBase.Interact | Interact with Level editor. | Not disclosed | - |
| RhythmBase.Hospital | Judgement logic for levels. | Not disclosed | - |
| RhythmBase.Lite | Lightweight version of RhythmBase. | WIP | Go there |
| RhythmBase.Control | Custom controls. | Not disclosed | - |
flowchart RL
RBLite[RhythmBase.Lite]
subgraph RD[Rhythm Doctor]
RDLE[Rhythm Doctor Level Editor]
end
subgraph AD[Adofai]
ADLE[Adofai Level Editor]
end
RDL([Rhythm Doctor Level])
ADL([Adofai Level])
subgraph RBTitle[RhythmBase]
RB[RhythmBase]
RBAdd[RhythmBase.Addition]
RBInt[RhythmBase.Interact]
RBHos[RhythmBase.Hospital]
RBV[RhythmBase.View]
subgraph RBC[RhythmBase.Control]
RBCCore[RhythmBase.Control.Core]
RBCWPF[RhythmBase.Control.WPF]
RBCWF[RhythmBase.Control.WinForm]
RBCAva[RhythmBase.Control.Avalonia]
end
end
RBLite ---> RDL
RBCWPF & RBCWF & RBCAva --> RBCCore --> RBV
RBV & RBHos & RBAdd & RBInt --> RB ---> RDL & ADL
RBInt ---> RDLE --> RDL
RBInt ---> ADLE --> ADL
Example
int height = 28 * 60;
string file = @"your\level.rdlevel";
using RDLevel level = RDLevel.FromFile(file);
int width = (int)(level.Length.BeatOnly * 28);
Console.WriteLine(level.Length.TimeSpan);
using SKBitmap bitmap = new(width, height);
using SKCanvas canvas = new(bitmap);
foreach (var e in level)
{
canvas.DrawEventIcon(e, ToLocation(e), // Provided by this library.
false, // The event is not selected.
2 // The scale of the event.
); // Returns the hit area used for selection.
}
static SKPointI ToLocation(IBaseEvent e)
{
return new SKPointI(
(int)(e.Beat.BeatOnly * 28),
(e.Y) * 28);
}
using Stream stream = File.OpenWrite("output.png");
bitmap.Encode(SKEncodedImageFormat.Png, 100).SaveTo(stream);
| 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- RhythmBase (>= 1.3.3)
- SkiaSharp (>= 3.119.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.4-alpha1 | 91 | 4/5/2026 |
| 1.0.3 | 100 | 3/19/2026 |
| 1.0.3-patch3 | 99 | 3/27/2026 |
| 1.0.3-patch2 | 94 | 3/20/2026 |
| 1.0.3-patch1 | 89 | 3/19/2026 |
| 1.0.2 | 110 | 1/17/2026 |
| 1.0.1 | 112 | 12/30/2025 |
| 1.0.0 | 110 | 12/6/2025 |