[Core] The default font's used the wrong name. It's been corrected from IBM_16x8 to IBM_8x16 and from IBM_16x8_ext to IBM_8x16_ext. If you've previously serialized a font with the wrong name, you'll need to change it in the json object. Or use the configuration extension FixOldFontName() which will add a name mapping.
[Core] The editor functions that changed glyphs and printed on consoles have moved from being extension methods for the 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.
[Core] Because 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.
[Core] Themes have been removed. Each control draws itself.
[Core] IScreenObject no longer implements IEnumerable to access the children. Use the .Children collection property instead.
[Core] 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.
[Core] Decorators are no longer array's but rented from a list pool. Use the CellDecoratorHelpers class to manage them. SadConsole does its best to rent and return from the pool as you add or remove decorators.
[Core] The OnStart callback is now an event and not an Action delegate.
New features
[Core] Added Componenets.LayeredSurface component. Add this component to a ScreenSurface to enable multiple surface layers. Use the LayeredSurface to manage the layers.
[Core] 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.
[Core] EntityManager.AlternativeFont added so entities can use a different font than the parent object.
[UI] New control, TabControl. Contributed by arxae.
[ExtendedLib.UI] New control, Table. Contributed by Ven0maus.
Normal changes
Target .NET 6+ exclusively. Core library is nullable aware.
[Core] Splash screen printing wasn't being shown because of cursor changes.
[Core] IFont now defines glyph definitions.
[Core] Various SadFont properties and methods are now settable/callable.
[Core] Extensions methods added to hosts to allow manipulation of font textures.
[Core] Settings.CreateStartingConsole setting added to avoid creating the StartingConsole.
[Core] Cursor now has the property DisablePrintAutomaticLineFeed which, when true, prevents the cursor from moving to the next line if printing a character at the end of the current line.
[Core] Ansi.AnsiWriter handles sauce now by ignoring the rest of a document once character 26 (CTRL-Z) is encountered.
[Core] Ansi.AnsiWriter has always used a cursor to print, it now sets UseLinuxLineEndings = true and DisablePrintAutomaticLineFeed = true.
[Core] Added SadConsole.SplashScreens.Ansi1 splashscreen, the new SadConsole logo, for use with games.
[Core] Added 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.
[Core] The Entity type now supports animated surfaces. When creating an entity, you must specify it as a single cell entity or animated surface entity.
[Core] The effects system had a bug where if you added the same effect with the same cell twice, and the effect should restore the cell state, it wouldn't.
[Core] AsciiKey used by the keyboard system now detects capslock and shifted state to produce capital or lowercase letters.
[Core] AsciiKey exposes a bunch of static dictionaries that help with remapping keys and characters.
[Core] ColoredGlyph.IsVisible now sets ColoredGlyph.IsDirty to true when its value changes.
[Core] Surface.RenderSteps moved to the renderer.
[Core] RenderSteps is now a List and you must call RenderSteps.Sort(SadConsole.Renderers.RenderStepComparer.Instance) when the collection is changed.
[Core] Instructions.DrawString uses System.TimeSpan now, and is more accurate.
[Core] Effects have a RunEffectOnApply property that will run the effect.Update method once, with a duration of zero, when the effect is added to a manager.
[Core] 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.
[Core] Surface shifting is much more performant (Thanks Chris3606)
[Core] Cursor has some new methods for erasing: Erase, EraseUp, EraseDown, EraseLeft, EraseRight, EraseColumn, EraseRow.
[Core] Mouse state object now tracks *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.
[Core] Rename RexPaint ToLayersComponent to ToCellSurface.
[Core] Rework Timer with Start/Stop/Restart methods.
[Core] If you load a font that's already been loaded, the existing instance is returned and the recently deserialized font is discarded. Previously the old font was replaced in the GameHost.Fonts dictionary.
[Core] The default font's used the wrong name. It's been corrected from IBM_16x8 to IBM_8x16 and from IBM_16x8_ext to IBM_8x16_ext. If you've previously serialized a font with the wrong name, you'll need to change it in the json object. Or use the configuration extension FixOldFontName() which will add a name mapping.
[Core] The editor functions that changed glyphs and printed on consoles have moved from being extension methods for the 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.
[Core] Because 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.
[Core] Themes have been removed. Each control draws itself.
[Core] IScreenObject no longer implements IEnumerable to access the children. Use the .Children collection property instead.
[Core] 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.
[Core] Decorators are no longer array's but rented from a list pool. Use the CellDecoratorHelpers class to manage them. SadConsole does its best to rent and return from the pool as you add or remove decorators.
[Core] The OnStart callback is now an event and not an Action delegate.
New features
[Core] Added Componenets.LayeredSurface component. Add this component to a ScreenSurface to enable multiple surface layers. Use the LayeredSurface to manage the layers.
[Core] 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.
[Core] EntityManager.AlternativeFont added so entities can use a different font than the parent object.
[UI] New control, TabControl. Contributed by arxae.
[ExtendedLib.UI] New control, Table. Contributed by Ven0maus.
Normal changes
Target .NET 6+ exclusively. Core library is nullable aware.
[Core] Splash screen printing wasn't being shown because of cursor changes.
[Core] IFont now defines glyph definitions.
[Core] Various SadFont properties and methods are now settable/callable.
[Core] Extensions methods added to hosts to allow manipulation of font textures.
[Core] Settings.CreateStartingConsole setting added to avoid creating the StartingConsole.
[Core] Cursor now has the property DisablePrintAutomaticLineFeed which, when true, prevents the cursor from moving to the next line if printing a character at the end of the current line.
[Core] Ansi.AnsiWriter handles sauce now by ignoring the rest of a document once character 26 (CTRL-Z) is encountered.
[Core] Ansi.AnsiWriter has always used a cursor to print, it now sets UseLinuxLineEndings = true and DisablePrintAutomaticLineFeed = true.
[Core] Added SadConsole.SplashScreens.Ansi1 splashscreen, the new SadConsole logo, for use with games.
[Core] Added 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.
[Core] The Entity type now supports animated surfaces. When creating an entity, you must specify it as a single cell entity or animated surface entity.
[Core] The effects system had a bug where if you added the same effect with the same cell twice, and the effect should restore the cell state, it wouldn't.
[Core] AsciiKey used by the keyboard system now detects capslock and shifted state to produce capital or lowercase letters.
[Core] AsciiKey exposes a bunch of static dictionaries that help with remapping keys and characters.
[Core] ColoredGlyph.IsVisible now sets ColoredGlyph.IsDirty to true when its value changes.
[Core] Surface.RenderSteps moved to the renderer.
[Core] RenderSteps is now a List and you must call RenderSteps.Sort(SadConsole.Renderers.RenderStepComparer.Instance) when the collection is changed.
[Core] Instructions.DrawString uses System.TimeSpan now, and is more accurate.
[Core] Effects have a RunEffectOnApply property that will run the effect.Update method once, with a duration of zero, when the effect is added to a manager.
[Core] 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.
[Core] Surface shifting is much more performant (Thanks Chris3606)
[Core] Cursor has some new methods for erasing: Erase, EraseUp, EraseDown, EraseLeft, EraseRight, EraseColumn, EraseRow.
[Core] Mouse state object now tracks *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.
[Core] Rename RexPaint ToLayersComponent to ToCellSurface.
[Core] Rework Timer with Start/Stop/Restart methods.
... (truncated)
Commits
03627ff Merge pull request #336 from Thraka/develop
Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions |
| --- | --- |
| SadConsole | [>= 9.a, < 10] |
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps SadConsole from 8.99.3 to 10.0.0.
Release notes
Sourced from SadConsole's releases.
... (truncated)
Changelog
Sourced from SadConsole's changelog.
... (truncated)
Commits
03627ff
Merge pull request #336 from Thraka/develop238ab27
Latest templatea1af7e9
Improve character picker controlf56f824
Update template code for minor fixesae47894
Fix bug in surface.clear where effects are cleared after cells which could le...6a609ad
Add range to cell surface indexora6983ad
Fix slowdown bug in SFMLef0f000
Projects for releasee509c1e
Fix bug with FontEdito where maxextents were wrong; variable renames4ad5c74
Improved color bar and fixed a bugMost Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | SadConsole | [>= 9.a, < 10] |Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show