SadConsole 9.0.0-alpha6

.NET Standard 2.1
This is a prerelease version of SadConsole.
There is a newer version of this package available.
See the version list below for details.
Install-Package SadConsole -Version 9.0.0-alpha6
dotnet add package SadConsole --version 9.0.0-alpha6
<PackageReference Include="SadConsole" Version="9.0.0-alpha6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SadConsole --version 9.0.0-alpha6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SadConsole, 9.0.0-alpha6"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install SadConsole as a Cake Addin
#addin nuget:?package=SadConsole&version=9.0.0-alpha6&prerelease

// Install SadConsole as a Cake Tool
#tool nuget:?package=SadConsole&version=9.0.0-alpha6&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
  • Revamped control rendering. ControlConsole renderer now has a 2nd surface which only controls are rendered to. This way the control layer system can update independently of the actual console.
  • Fixed bug in renderers which the renderer wasn't attached and detached from the object when added.
  • Cursor is now a component.
  • Cursor has a new property named MouseClickReposition which when true allows a mouse click on the host console to move the cursor.
  • Cursor a lot of quality of life improvements.
  • Removed ISurfaceRenderData and went back to normal IScreenSurface for renderers.
  • ControlHost correctly checks the parent of the control when processing the mouse.
  • ControlHost no longer listens to the tab button when a control indicates it handled input
  • Textbox bug fixes (thanks Doctor Triagony).
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.1
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on SadConsole:

Package Downloads
SadConsole.Host.MonoGame

A graphics hosting library for SadConsole. Targets MonoGame and .NET Standard 2.1.

SadConsole.Host.SFML

A graphics hosting library for SadConsole. Targets SFML and .NET Standard 2.1.

SadConsole.GoRogueHelpers

A helper library for SadConsole games built with GoRogue.

SadConsole.Extended

A library of common classes that extend SadConsole with new controls, windows, and more.

TheSadRogue.Integration

An official integration library for using GoRogue and SadConsole together to create a roguelike.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on SadConsole:

Repository Stars
Thraka/SadConsole
A .NET ascii/ansi console engine written in C# for MonoGame and XNA. Create your own text roguelike (or other) games!
Version Downloads Last updated
9.2.2 654 1/22/2022
9.2.2-debug 64 1/22/2022
9.2.1 304 1/4/2022
9.2.0 434 12/31/2021
9.2.0-debug 58 12/31/2021
9.1.1 1,518 8/7/2021
9.1.1-debug 178 8/7/2021
9.1.0 563 7/6/2021
9.1.0-debug 147 7/6/2021
9.0.0 1,050 6/6/2021
9.0.0-debug 153 6/6/2021
9.0.0-beta4 320 1/15/2021
9.0.0-beta3 367 12/19/2020
9.0.0-beta2 311 10/9/2020
9.0.0-beta1 394 8/1/2020
9.0.0-alpha9 445 7/25/2020
9.0.0-alpha8 260 7/13/2020
9.0.0-alpha7 378 7/11/2020
9.0.0-alpha6 457 5/28/2020
9.0.0-alpha5 347 5/26/2020
9.0.0-alpha4 300 5/1/2020
9.0.0-alpha3 351 5/1/2020
9.0.0-alpha2 308 3/14/2020
9.0.0-alpha1 580 1/26/2020
8.99.3 2,190 8/15/2020
8.99.3-debug 272 8/15/2020
8.99.2 466 7/14/2020
8.99.2-debug 254 7/14/2020
8.99.1 1,068 4/11/2020
8.99.1-debug 310 4/11/2020
8.99.0 1,020 11/27/2019
8.99.0-debug 302 11/27/2019
8.9.1 787 11/5/2019
8.9.1-debug 295 11/5/2019
8.9.0 849 9/7/2019
8.9.0-debug 424 9/7/2019
8.8.1 783 7/28/2019
8.8.1-debug 431 7/28/2019
8.8.0 519 7/27/2019
8.8.0-debug 414 7/27/2019
8.7.1 644 6/22/2019
8.7.1-debug 432 6/22/2019
8.7.0 491 6/22/2019
8.7.0-debug 441 6/22/2019
8.6.0 782 4/14/2019
8.6.0-debug 457 4/14/2019
8.5.0 648 4/2/2019
8.5.0-debug 503 4/2/2019
8.4.1 620 3/19/2019
8.4.1-debug 472 3/19/2019
8.4.0 533 3/17/2019
8.4.0-debug 460 3/17/2019
8.3.0 578 3/10/2019
8.3.0-debug 465 3/10/2019
8.2.0 592 3/2/2019
8.2.0-debug 500 3/2/2019
8.1.0 576 2/28/2019
8.1.0-debug 471 2/28/2019
8.0.0 633 2/24/2019
8.0.0-pre5 544 2/19/2019
8.0.0-pre4 537 1/31/2019
8.0.0-pre2 570 12/30/2018
8.0.0-pre1 525 12/30/2018
7.3.0 659 12/29/2018
7.2.0 793 11/20/2018
7.1.0 818 10/19/2018
7.0.4 798 9/8/2018
7.0.3 684 9/8/2018
7.0.2 984 8/31/2018
7.0.0 731 8/29/2018
7.0.0-pre1 626 8/22/2018
6.5.0 917 6/12/2018
6.4.11 1,005 4/13/2018
6.4.11-pre1 908 4/6/2018
6.4.10 905 3/18/2018
6.4.9 848 3/18/2018
6.4.8 844 3/18/2018
6.4.7 874 3/16/2018
6.4.6 1,079 2/14/2018
6.4.5 916 2/3/2018
6.4.3 922 11/14/2017
6.4.2 994 8/11/2017
6.4.1 823 8/10/2017
6.4.0 883 7/25/2017
6.3.0 942 6/9/2017
6.2.2 887 5/20/2017
6.2.1 1,006 4/23/2017
6.2.0 850 4/22/2017
6.1.4 869 4/17/2017
6.1.3 1,508 4/3/2017
6.1.2 833 4/1/2017
6.1.1 845 4/1/2017
6.1.0 823 3/31/2017
6.0.1 908 3/19/2017
6.0.0 810 3/18/2017

A lot of structual changes to split out rendering from SadConsole. You now need to add SadConsole.Host.MonoGame
or SadConsole.Host SFML to your project.

Major changes:

- Object model has changed a lot. Console types no longer inherit from CellSurface and are based on a few different base
classes and interfaces implemented through ScreenObject. Everything in SadConsole is now a ScreenObject.

- Console.Surface represents the cell surface of the console. Extension methods are provided so that you can use
Console.Print and related methods. If you coding inside a Console instance though, the extension methods only work if
you qualify the call with this.Print.

- Font/FontMaster are now merged into a single type: Font.

- Font sizes are always represented in an X,Y value now, and are seperate from the font itself. This means every
console has a Font and FontSize property now instead of a single Font property.

- All UI objects were moved into the SadConsole.UI namespace.

- The theme system was overhauled (and mostly backported to SadConsole v8).

- A lot of misc name changes, swapping out where it specified Console and substituting ScreenObject. For example,
SadConsole.Input.MouseConsoleState is now SadConsole.Input.MouseScreenObjectState

- SadConsole.Global had a lot of changes and not longer exists. Properties from Global are now available on SadConsole.GameHost.Instance.

- SadConsole.GameHost.Instance.Screen is the root console displayed on the screen to which all other objects are attached to. It is a console
and you cannot change this. It makes it simpler for new users. To disable it, disable the renderer: SadConsole.GameHost.Instance.Screen.Renderer = null.
Objects added to the Children collection will still work; SadConsole will not bother drawing the root console itself.

- ControlConsole no longer provides the logic for the GUI system. This was migrated to a new component: ControlHost. The host can be added to any console
you want to be able to display controls. The ControlsConsole type remains for ease of use. It now provides a ControlHostComponent property with direct
access to the component instance automatically added to the console.

- Entity is no longer a Console but a ScreenObject.

- App creation is slightly different with a few names migrated and events for draw/update callbacks

 SadConsole.Game.Create(80, 25);
 SadConsole.Game.Instance.OnStart = Init;
 SadConsole.Game.Instance.FrameUpdate += Instance_FrameUpdate;
 SadConsole.Game.Instance.Run();
 SadConsole.Game.Instance.Dispose();