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.
dotnet add package SadConsole --version 9.0.0-alpha6
NuGet\Install-Package SadConsole -Version 9.0.0-alpha6
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="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
#r "nuget: SadConsole, 9.0.0-alpha6"
#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.
// 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
  • 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 Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on SadConsole:

Package Downloads
SadCanvas

A canvas class that works with SadConsole and MonoGame host.

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.Extended

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

SadConsole.GoRogueHelpers

A helper library for SadConsole games built with GoRogue.

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 2,334 1/22/2022
9.2.2-debug 112 1/22/2022
9.2.1 697 1/4/2022
9.2.0 1,143 12/31/2021
9.2.0-debug 95 12/31/2021
9.1.1 2,136 8/7/2021
9.1.1-debug 212 8/7/2021
9.1.0 787 7/6/2021
9.1.0-debug 184 7/6/2021
9.0.0 1,503 6/6/2021
9.0.0-debug 186 6/6/2021
9.0.0-beta4 363 1/15/2021
9.0.0-beta3 409 12/19/2020
9.0.0-beta2 356 10/9/2020
9.0.0-beta1 437 8/1/2020
9.0.0-alpha9 491 7/25/2020
9.0.0-alpha8 295 7/13/2020
9.0.0-alpha7 432 7/11/2020
9.0.0-alpha6 502 5/28/2020
9.0.0-alpha5 393 5/26/2020
9.0.0-alpha4 333 5/1/2020
9.0.0-alpha3 387 5/1/2020
9.0.0-alpha2 344 3/14/2020
9.0.0-alpha1 635 1/26/2020
8.99.3 2,425 8/15/2020
8.99.3-debug 306 8/15/2020
8.99.2 588 7/14/2020
8.99.2-debug 287 7/14/2020
8.99.1 1,213 4/11/2020
8.99.1-debug 343 4/11/2020
8.99.0 1,217 11/27/2019
8.99.0-debug 338 11/27/2019
8.9.1 1,050 11/5/2019
8.9.1-debug 326 11/5/2019
8.9.0 977 9/7/2019
8.9.0-debug 466 9/7/2019
8.8.1 930 7/28/2019
8.8.1-debug 476 7/28/2019
8.8.0 640 7/27/2019
8.8.0-debug 458 7/27/2019
8.7.1 768 6/22/2019
8.7.1-debug 474 6/22/2019
8.7.0 613 6/22/2019
8.7.0-debug 483 6/22/2019
8.6.0 904 4/14/2019
8.6.0-debug 500 4/14/2019
8.5.0 772 4/2/2019
8.5.0-debug 547 4/2/2019
8.4.1 734 3/19/2019
8.4.1-debug 515 3/19/2019
8.4.0 654 3/17/2019
8.4.0-debug 498 3/17/2019
8.3.0 699 3/10/2019
8.3.0-debug 509 3/10/2019
8.2.0 717 3/2/2019
8.2.0-debug 542 3/2/2019
8.1.0 702 2/28/2019
8.1.0-debug 510 2/28/2019
8.0.0 781 2/24/2019
8.0.0-pre5 591 2/19/2019
8.0.0-pre4 576 1/31/2019
8.0.0-pre2 619 12/30/2018
8.0.0-pre1 574 12/30/2018
7.3.0 783 12/29/2018
7.2.0 924 11/20/2018
7.1.0 952 10/19/2018
7.0.4 928 9/8/2018
7.0.3 824 9/8/2018
7.0.2 1,120 8/31/2018
7.0.0 862 8/29/2018
7.0.0-pre1 673 8/22/2018
6.5.0 1,061 6/12/2018
6.4.11 1,156 4/13/2018
6.4.11-pre1 989 4/6/2018
6.4.10 1,052 3/18/2018
6.4.9 996 3/18/2018
6.4.8 998 3/18/2018
6.4.7 1,035 3/16/2018
6.4.6 1,243 2/14/2018
6.4.5 1,081 2/3/2018
6.4.3 1,069 11/14/2017
6.4.2 1,136 8/11/2017
6.4.1 968 8/10/2017
6.4.0 1,027 7/25/2017
6.3.0 1,087 6/9/2017
6.2.2 1,044 5/20/2017
6.2.1 1,153 4/23/2017
6.2.0 1,003 4/22/2017
6.1.4 1,025 4/17/2017
6.1.3 1,664 4/3/2017
6.1.2 984 4/1/2017
6.1.1 993 4/1/2017
6.1.0 971 3/31/2017
6.0.1 1,062 3/19/2017
6.0.0 960 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();