Bot releases are hidden (Show)
Libraries updated for this release
[Core] When a Cursor is removed from a host object, the object is set to dirty now.
[Core] Overlay component now calls update on the attached visual.
[Core] Fix bug with DrawCircle not setting dirty.
[Core] Fix bug with DrawBox not respecting ignore glyph setting.
[MonoGame] Change host to be a lot more friendly towards running from an existing MonoGame Game instead of SadConsole's game.
[Renderers] Cursor rendering has changed to draw on the hosting surface. Previously it was rendered on top as an entire separate process.
[Misc] Added MonoGame-first game sample.
[Misc] Added Python sample.
Published by Thraka 7 months ago
New versioning system. Versions for SadConsole will be in the following format: [all libs major].[all libs minor].[individual lib revision]
When patches come out for the indvidual libraries, the X in 10.0.X would increment. These would be like host updates, or the extended library, but not public facing changes in SadConsole itself. If SadConsole itself updates, the X in 10.X.0 would increment. All libraries would increment with SadConsole, and the individual lib revisions would reset to 0. The X on X.0.0 would indicate a major change to SadConsole with most likely a lot of bigger breaking changes.
That said, SadConsole is resetting all versions to v10.4.0 for this release. From now on, the new versioning system is in place.
[Breaking] A minor breaking change. If you were creating your own IConfigurator
startup configs, the Run
method's parameter changed from Game
to GameHost
.
[Core] Added Components.Overlay
which displays a surface on top of an existing console/surface object as a top layer.
[Core] Bug: Font.OnFontChanged
wasn't actually being called. It is now.
[Core] Added Coroutine
NuGet library. This is included now with SadConsole.
[Core] Added CoroutineHandlerComponent
which is a manager that you can add to an object and coroutines to.
[Core] Cursor.PrintCoroutine
which prints as a coroutine, pausing at each character.
[Core] Instructions.DrawString
updated to use Cursor.PrintCoroutine
which lets it pretty print word breaks.
[Core] XML docs didn't genereate correctly for the last build.
Published by Thraka 7 months ago
ScrollBar
has been completely rewritten. Minor breaking changes.
.Maximum
has been changed to .MaximumValue
.BarGlyph
, were moved to a Style
property which controls how the control looks. Some property names have changedNumberBox
improvements.
Textbox
.ShowUpDownButtons
to show up\down buttons.UseMinMax
messing up the value and setting it back to 0 when the control loses focus.ControlBase.FindThemeFont
helper method added.EffectSet
bug where the last effect wasn't applied.GlyphDefinition
has an init accessor now.ShapeParameter
docs and CreateFilled
supports ignoring the border.RootComponent
class that can be added to SadConsole.Game.Instance.RootComponents
. These components run logic before the keyboard and screen updates.IsReady
flag now to control when it's active.ColorPickerPopup
would crash on invalid textbox values.GlyphSelectPopup
added. You can use this to display a list of glyphs in your font while debugging your app.OptimizedScreenSurfaceRenderer
which renders.SetData
method.Published by Thraka 12 months ago
Major changes (possibly breaking)
FixOldFontName()
which will add a name mapping.ICellSurface
interface to the ISurface
interface. Console
, IScreenSurface
, and ICellSurface
, all implement this new interface. This means you can now use the editing extensions directly on those objects.Console
no longer implements ICellSurface
, and instead implements ISurface
, some properties have been moved to the Surface
property, such as myConsole.TimesShiftedUp
is now myConsole.Surface.TimesShiftedUp
.IScreenObject
no longer implements IEnumerable
to access the children. Use the .Children
collection property instead.Update
and Render
no longer check for IsEnabled
and IsVisible
, respectively. When those methods run, the properties are checked on the children before calling the respective method. This moves the check outside of the object itself, and relies on the parent object to do it. This eliminates the need for an object to check itself, and allows you to bypass the check when you want.CellDecoratorHelpers
class to manage them. SadConsole does its best to rent and return from the pool as you add or remove decorators.OnStart
callback is now an event and not an Action
delegate.New features
Componenets.LayeredSurface
component. Add this component to a ScreenSurface
to enable multiple surface layers. Use the LayeredSurface
to manage the layers.StringParser
supports variables with the syntax of $variable_name. The parser has a dictionary that invokes a delegate which returns a value for the variable. So the value can be determined as the variable is used. See DemoStringParsing.cs in the sample template.EntityManager.AlternativeFont
added so entities can use a different font than the parent object.TabControl
. Contributed by arxae.Table
. Contributed by Ven0maus.Normal changes
IFont
now defines glyph definitions.SadFont
properties and methods are now settable/callable.Settings.CreateStartingConsole
setting added to avoid creating the StartingConsole
.DisablePrintAutomaticLineFeed
which, when true, prevents the cursor from moving to the next line if printing a character at the end of the current line.Ansi.AnsiWriter
handles sauce now by ignoring the rest of a document once character 26 (CTRL-Z) is encountered.Ansi.AnsiWriter
has always used a cursor to print, it now sets UseLinuxLineEndings = true
and DisablePrintAutomaticLineFeed = true
.SadConsole.SplashScreens.Ansi1
splashscreen, the new SadConsole logo, for use with games.ScreenSurface.QuietSurfaceHandling
property. When true
, this property prevents the .Surface
property from raising events and calling virtual methods when the instance changes. This is useful for AnimatedScreenSurface
instances that have fast moving animations.Entities.Renderer
renamed Entities.EntityRenderer
.Entity
type now supports animated surfaces. When creating an entity, you must specify it as a single cell entity or animated surface entity.AsciiKey
used by the keyboard system now detects capslock and shifted state to produce capital or lowercase letters.AsciiKey
exposes a bunch of static dictionaries that help with remapping keys and characters.ColoredGlyph.IsVisible
now sets ColoredGlyph.IsDirty
to true when its value changes.Surface.RenderSteps
moved to the renderer.RenderSteps
is now a List
and you must call RenderSteps.Sort(SadConsole.Renderers.RenderStepComparer.Instance)
when the collection is changed.Instructions.DrawString
uses System.TimeSpan
now, and is more accurate.RunEffectOnApply
property that will run the effect.Update
method once, with a duration of zero, when the effect is added to a manager.EffectsManager
will apply the active effect to a cell right when the cell is added to the effect. This was happening on the next render frame.Cursor
has some new methods for erasing: Erase
, EraseUp
, EraseDown
, EraseLeft
, EraseRight
, EraseColumn
, EraseRow
.*ButtonDownDuration
times. When the button is down and the time is zero, this indicates the button was just pressed. Otherwise, you can detect how long the button has been held down.ToLayersComponent
to ToCellSurface
.Timer
with Start/Stop/Restart
methods.GameHost.Fonts
dictionary.ColoredGlyph.Decorators
are Poolable Lists now and don't need to be messed with as arrays. Use SadConsole.CellDecoratorHelpers
to manage the property.ControlBase.IsDirty
property now calls the protected OnIsDirtyChanged
method which then raises the IsDirtyChanged
event.Panel
control uses CompositeControl
as a base class. Control can draw a border.ProgressBar
is easier to customize.Colors.Name
property added.ListBox.ItemsArea
property added which the mouse now watches for so that it knows it's interacting with the list items specifically.Border.AddToSurface/Window
has been renamed to Border.CreateForSurface/Window
.Entities.EntityManager
renamed Entities.EntityManagerZoned
.SmoothMove.IsEnabled
to disable the component and prevent animation.ColorBar
bug with selecting a color before it's first drawn.Removed
Algorithms.Line\Circle\Ellipse
have been removed. The latest primitives library provides these methods.Shapes
namespace removed. The latest primitives library release that SadConsole uses, provides these.SurfaceDirtyCells
renderer added which only draws cells that are marked dirty.SadConsole.Configuration.Builder
object used for creating a SadConsole game.Published by Thraka over 2 years ago
This release fixes the Mirror type not converting correctly to the monogame SpriteEffect enum.
Full Changelog: https://github.com/Thraka/SadConsole/compare/9.2.1...9.2.2
Published by Thraka over 2 years ago
API documentation didn't generate correctly in the 9.2.0 release. 9.2.1 is only a rebuild to fix the documentation.
Full Changelog: https://github.com/Thraka/SadConsole/compare/9.2.0...9.2.1
Published by Thraka almost 3 years ago
Print(int x, int y, ColoredGlyph glyph)
renamed to SetGlyph
.SetEffect
method signatures have changed.Animation.ConvertImageFile
to Animation.FromImage
.ColorGradient
as this type is implemented in the SadRogue.Primitives library as Gradient
.ColoredString.String.Set
forced the string through the parser. This has now changed to use the characters directly.ColoredString
contructors that used the (string)
overload used the string parser. This is no longer the case.ColoredString.IgnoreEffect
no longer defaults to true
.Surface.Print
methods that used the string parser for fore/back/mirror will force those settings after the string was parsed and not before.Clear
and Fill
methods now clear the effect.Print
statements have been updated to all act the same.
FrameNumber
property that incremenets each frame cycle.Settings.UnlimitedFPS
. This now works.Cursor.UseStringParser
because of how ColoredString
was always using the string parser. This is fixed now.Cursor.MouseClickRepositionHandlesMouse
property which sets the handled flag on mouse left-click for the cursor reposition.DrawString
instruction overrides reset now, fixing a bug with having the instruction run more than once.Surface.ShiftLeft|Right|Up\Down
methods now move decorators.Surface.ShiftRow
and Surface.ShiftColumn
methods added. (Chris3606)ColoredString.SetDecorators
added, to fit in with SetForeground
, SetBackground
, etc.EffectsChain
to EffectSet
and added new CodeEffect
type.TimeSpan
instead of double.EffectsManager
used by a surface now works on cell instances, not cell indicies.clear
parameter keeps existing effects instead of dropping them.AnimatedSurface.FromImage
helper added which converts image-based animations to an animated surface. (RychuP)SadConsole.Readers.TheDrawFont
. Not a SadConsole Font.
SadConsoles.Readers
namespace. (RychuP)RemoveAll
method to clear out all the entities.SkipExistsChecks
property which can greatly improve performance when adding/removing entities (when you already have a lot of entities).AnimatedAppearanceComponent
which can be added to an entity to animate the glyph like the AnimatedSurface
did for the old entity type.Textbox
has more events related to text changing.Textbox
behaviors have changed slightly. For example, EditingText
event doesn't fire when the text ends up being the same prior to editing.ListBox
items can be inserted as a ValueTuple<string, object>
which will use the string (can be a ColoredString
) as the display text of the item.StringParser.IParser
.StringParser.Default
.ColoredString.Parse
is obsolete and forwards to ColoredString.Parser.Parse
.[c:d glyph:mirror:color[:count]]
surface.PrintFadingText
extension method that prints text using the DrawString
instruction with an effect.Published by Thraka over 3 years ago
ListBox
can display colored strings now.SadConsole.Serializer.Contracts
.On*
members of ScreenSurface
weren't virtual; fixed.Cursor
changes it's cached surface when the parent object's surface changes.Cursor
bug fixes.Entity
is serializable now.Entities.Renderer
can now have entities added/removed without a host object.SadConsole.Quick
namespace to speed up construction of objects.ScreenObject.SadComponentAdded/Removed
callbacks renamed to OnSadComponentAdded/Removed`.IScreenObject.Surface
can now be set.Published by Thraka over 3 years ago
Main libraries were published as v9.0.0. However, some small changes to the project were made for some of the support libraries to also target .NET 5.0 and those versions were bumped to v9.0.1. All of this is considered part of the release for v9 of SadConsole.
Published by Thraka over 3 years ago
Published by Thraka over 7 years ago
V6 represents a rewrite of the core of SadConsole and the merge of all libraries into a single library.
This release is the code base before that PR is pulled into the master branch.
Published by Thraka over 8 years ago
This is archiving the code as V2 stood before V3 was integrated into the master branch.
Published by Thraka over 8 years ago
NuGet packages at this state: