Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removed patreon added aristurtledev #863

Merged
merged 1 commit into from
May 20, 2024
Merged

Removed patreon added aristurtledev #863

merged 1 commit into from
May 20, 2024

Conversation

AristurtleDev
Copy link
Collaborator

This removes the patreon link from the funding section and adds aristurtledev as a sponserable maintainer

@AristurtleDev AristurtleDev merged commit 43e313e into develop May 20, 2024
1 check passed
@AristurtleDev AristurtleDev deleted the add-sponsor branch May 20, 2024 06:20
AristurtleDev added a commit that referenced this pull request Jul 8, 2024
* Remove duplicate fact

* Add .user file to gitignore

* Assert Rectangle translation transform

* Assert Rectangle transform not changing size

* Rectangle extents are rotated correctly

* Rebuilt effects with mgfxc 3.8.1.303

* Uncomment and fix tests

* Remove tests always passing

* Issue 707, Created test for null ptr during entity destroy

* Issue 707, Added null propagation inside component manager destroy method

* Create VelocityInterpolator

Allow particles to change velocity as they age.

* add power of two values to MouseButton

* Add parallaxFactor of layers in models.

* Add parallaxFactor in rendering logic.

* Add checking event == 'push'

* Fix looping animations incorrectly completing when an update contains a large elapsed time.
Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
Add unit tests for SpriteSheetAnimation.

* Update README.md

* Use actual target bounds when testing collision

* Cleanup

* Refactor

Encapsulate a public property (Parents).
Added xml-comments (to fix some compilation warnings)

* Format comments and fix spelling

* Add comments for public fields and properties

* fix Bag so that it doesn't allocate during foreach enumeration

* add bag allocation test

* make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

* add support for class (nested) properties

* support type/class field in maps, layers, & tilemaps

* Update PrimitiveDrawing.cs

Add a new DrawSolidCircle to add a fill color

* fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

* Use Directory.Build.targets
Moved common csproj properties for NuGet into Directory.Build.targets

* Added version tag
This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

* PackageIconUrl is deprecated
NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

* Pack README.md in NuGet packages

* Add common tags for NuGet packages
Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

* Added new Cake Frosting project

* Cleaned up
Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

* Added BuildContext

* Added BuildTask

* Added Test Task

* Added Package Task

* Added Default task

* Added namespace

* Cleanup using statements

* Ignore cake output directory

* Updated and automated for NuGet pushing

* Check for GCLatencyMode.NoGCRegion
This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

* Forgot to add System.Runtime using statement

* Better name for package step

* NuGet Deploy only in craftworksgames repo

* Enable Nullable in build project

* Add additional context variables for build script

* Use same verbosity, restore, and logo flags as originally used

* Use same verbosity and nologo setting as original

* Created Restore task

Uses same verbosity as original workflow did

* Update TestTask to use same verbosity, nologo, and nobuild as original workflow

* Create DeployToGithubTask

* Create DeployToMyGetTask

* Create DeployToNuGetTask

* Added Deploy task

* Simplify, move most logic into cake build script

* Ignore Missing XML comment warnings on build

* Remove async, ignore NU5118 on package

* Apparently i forgot a semi colon....

* Remove old collision code.

* Move collision code to root folder

* Fix namespaces

* Add failing test for collisions.

* Add benchmarks for collisions

* Refactor collision update, correct reset map

* Add BoundingRectanglle property for IShape

* Refactor QuadTree - now we use static AABB intersection check

* Add layers for collisions

* Add interface for space splitting and impls

* Refactor layers for new interface

* Add comments for collision actor.

* Add comments for space algo interface.

* Add spatialHash algo for collision spacing

* Rename Quadtree to QuadTree

* Add inline for private methods of SpatialHash.cs

* Refactor benchmarks for collisions.

* Fix tests

* Refactor layers.

* Add method for set default layer

* Fix ctor call's

* Add constructor for CollisionComponent.cs

* Add extentions for ContentImporter.

* Add speical contentItem for referencing images.

* Fix tiledMap processing and writing.

* Add texture for tile.

* Add image tileset support

* Fix using ctor from remote

* Fix version

* Fix CiCD

* Add copy constructor for KeyboardListener.

* Revert "Add copy constructor for KeyboardListener."

* Add serializer for RectangleF

* Add test for new serizalizer

* Add RectangleFJsonConverter for default serializer.

* Fixed HSL lerp

* Move extracting linear operations into special class.

* Move impls of linear tweening into special class.

* Add ColorTween

* Add special TweenTo.

* Fix TweenTo

* Add tweening tests

* Fix activator inside tweener.

* Check for undefined layer and throw on collision actor insertion

* Add test coverage

* Add OrientedBoundingRectangle type

* Add Points property to OrientedBoundingRectangle

* Ignore Visual Studio cache

* Be explicit about conversion of geometries

Conversion from circle to rectangle should not pass unnoted and be explicit.

* OrientedBoundedRectangle implements ShapeF

In that way the OrientedBoundedRectangle can take part of collision tests.

* Add ascii art to describe intersection tests

* Update circle and oriented bound box intersection

* Update dependencies

* Add Intersects method for OBB

* Rename to OrientedRectangle

* Properly intersect circle and oriented rect

* Calc coll vector for circle and oriented rect

* Calc coll vector for oriented rects

* Fixes incorrect rendering of flipped animation tiles

* Call RectangleF.Intersects to resolve recursion bug
When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

* Update Newtonsoft.Json.dll Dependency

* Removing MyGet Feed Deploy
Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

* Moved to `/src/cs`
Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

* Move build into `/src/cs`

* Fix project reference

* Fix path for project on build task

* Capital B

* Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

* Move source projects into source directory

* Moved tests into test directory

* Moved benchmarks into benchmark directory

* Moved build into build directory

* Add root props file

* Add common props for all tests

* Added `<Authors>` to root props

* Add common props for source  directory

* Add props to build directory

* Moved props from targets file

* Removed targets file

* Update for new .artifacts directory

* nuget.config is not needed

* Renamed 'Logos' directory to 'logos'
Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

* Use correct working directory after moving

* Remove duplicate import statement

* Read from props file not targets file.

* Use new .artifacts directory

* Updated .gitattributes

* Updated .gitignore

* Set ArtifactPath within the project category directory

* Drop CAKE build and move Build CI to github workflow

* Setup code analysis with .editorconfig

* Don't use nullable reference in a non-nullable context

* Correct spelling of minimal

* Fix GitHub Nuget Push (#859)

* Fix github url for nuget push

* forgot the h in https

* Remove GitHub Deploy (#860)

* Fix github url for nuget push

* forgot the h in https

* Remove github push for now, need to check repository settings

* Cleanup (#862)

* Removed Roadmap
The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

* Added new note at top of readme

* updated information for installing nuget

* Made using content pipeline extensions a section and not a quote

* Removed information about MyGet feed

* Removed patreon from readme

* Update License

* renamed master branch to main

* Remove community forum link
MonoGame is closing the community forums in favor of discord and github discussions

* Update workflows

* Removed patreon added aristurtledev (#863)

* Fix funding (#864)

* Use ArtifactsPath to resolve include dlls for pack (#865)

* Add additional input parameters (#866)

* Only specify source and prerelease (#867)

* Update prerelease version (#868)

* Replace Newtonsoft.Json with System.Text.Json (#869)

* Converted to use `System.Text.Json`

* Remove Newtonsoft.Json Dependency
Newtonsoft.Json dependency has been removed in favor of System.Text.Json

* Treat MGFXO file as binary

* Replace `Matrix2` with `Matrix3x2` (#870)

* Replace `Matrix2` with `Matrix3x2`

* Update benchmarks

* Add XML documentation for `Matrix3x2`

* Add Edge Test for `Polygon.Contains` (#871)

* Added Assert for edge contains
Reference: #214

* Renamed to PolygonTests

* Replace `Size3` with `Vector3` (#872)

* Rename `Size2` to `SizeF` (#873)

* Remove `Point3` (#874)

* Remove `Point2` (#875)

* Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

* Remove `Point2`

* Added unit test to ensure issue is resolved (#876)

* Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

* Implements standard IDispose pattern (#879)

* upgrade solution to VS2022 (#880)

* update project types to net.Sdk

* upgrade solution to VS2022

* Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

* remove unused SharpDX using

introduces in #840

* remove Content.Pipeline reference from the core library

introduced in #692

* use System ZLibStream (#882)

ZLibStream was added in net6

https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

* Added changelog (#883)

* Added changelog

* Added note about unreleased

* Make links for users (#884)

* Copy Reference DLLs from NuGet Automatically (#885)

* Pack value should be `true` not `True`

* Copy content pipeline dll references to project directory for ease of use

* Forgot `/` in path

* Updated Changelog (#886)

Added information about #885

* Refactor `BitmapFont` (#887)

* Update file header

* Created initial project to move BitmapFont too

* XMl, Text, and Binar reading now supported for BMFont

* Refactor BittmapFont

* Update content pipeline from BitmapFont refactor

* Update changelog

* Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

* Update Changelog (#889)

* Updated so all projects have changelog in root when viewing in visual studio

* Updated changelog

* Texture Atlas Refactor (#890)

* Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

* Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

* Moved `RectanglExtensions` to project root
This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

* Renamed to `Rectangle.Extensions.cs`

* Separate `Rectangle` from `RectangleF` extensions

* Added `GetRelativeRectangle` method

* Updated documentation

* Added `GetRelativeRectangle` method

* Updated documentation

* Top-level namespace

* Remove whitespace

* Move properties up

* Top-level namespace

* Don't recreate structs for `Bounds` and Size`
By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

* Size should be `Size` not `SizeF` value
Textures deal in pixels (ints not floats)

* Removed setter for `Texture` property
Texture should not be set after region is created

* Added UV properties

* Refactor constructors

* Added documentation

* Added license header

* Make it an actual extension method

* Added `GetSubRegion` extension methods for `TextureRegion`

* Update documentation about ObjectDisposedException

* Move const values to top

* Resolve errors from`TextureRegion` refactor

* Update unit tests for TextureRegion refactor

* Started NinePatch rework

* Refactored NinePatch

* Update for texture region constructor change

* Remove ninepatch from atlas

* Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
These are extension methods for the sprite batch

* Updated to use new `DrawTextureRegion` method after rename

* Renamed to NinePatchJsonConverter

* Removed `GetRegion<T>`
TextureAtlas no longer contains nine patch regions, so this method isn't needed

* Update after `NinePatchRegion2DJsonConverter` name change

* Resolve errors from NinePatch refactor

* TextureAtlas rework

* Renamed `TextureRegion` to `Texture2DRegion`

* Moved ContentReaders to new Content\ContentReaders directory

* Moved TextureAtlasJsonConvert to Serialization directory

* Adjusted name from `Texture*` to `Texture2D*`

* Update runtimereader and runtimettype strings

* Kni.Extended (#892)

* KNI projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* remove test for issue #633

* build tests

* KNI TypeReaders

* KNI/XNA compatible code

* GetRuntimeReader from runtime types

* remove MockGameWindow

* Fna.Extended (#893)

* FNA projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* build tests

* remove test for issue #633

* FNA/XNA compatible

* GraphicsDevice Extensions

* remove MockGameWindow

---------

Co-authored-by: Christopher Whitley <[email protected]>

* Sprite Rework (#897)

* Add file header

* Refator to file-scoped namespace

* Least complex to most complext method ordering

* Refactor: Group properties at top before constructor

* Use the new UV properties from Texture2DRegion.
This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

* No longer need to cache normalized origin to preserve it

* Use ArgumentNullException instead

* Use ArgumentNullException.ThrowIfNull

* Refactor:  Use brackets for readability

* Add xml documentation

* Add check for disposed texture

* Moved `Sprite` to `MonoGame.Extended.Graphics`

* Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

* `ISpriteBatchDrawable` is not used by anything
It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

* Add `CreateSprite` methods

* Add file header

* Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

* Move properties before constructor.

* Changed `Duration` to `TimeSpan` type

* Renamed `Index` to `FrameIndex`

* Add `TextureRegion` property

* Make property get only

* Cleanup whitespace

* Remove `SpriteSheetAnimationFrameJsonConverter`

* Cleanup unused namespaces

* Make file-scoped namespace

* Added xml documentation

* Added file header

* marked constructor as internal.
This will be created from a spritesheet itself

* Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

* File scoped namespace

* Add file header

* Reorganize: Move properties above constructor

* Make `Frames` property a read-only span

* Remove duration, this is being moved to the frame itself

* Add `Name` property

* Set looping, reversed, and ping pong properties in ctor

* Make ctor internal
This will be an object created by a spritesheet instane itself.

* Cleanup: Whitespace

* Add `FrameCount` property

* Add `GetFrame` method and accompanying `this[int]` method.

* Documentation: Added missing documentation.

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* Refactor: Animation Refactor Completed

* Refactor: Sprite stuff finished

* Remove tests that can't be run on GitHub CI
Need to find alternative

* Make optional name param the last param in Texture2DRegion ctors

* Resolve merge conflicts

* Add Kni Package (#898)

* Capitalize KNI (#899)

* Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

* Add test to validate issue

* Resolve issue

* Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

* Replaced delegate with Action<T>

* Change delegate to Action<T>

* Add unit test to confirm issue

* Fix NullReferenceException in ObjectPool when reusing all returned items

The ObjectPool's Use() method was throwing a NullReferenceException when
all items had been returned to the pool and New() was called again. This
was due to _tailNode being null in this scenario.

Added a null check for _tailNode in Use() method to properly reinitialize
the linked list structure when the pool has been emptied and refilled.

* Moved MonoGame.Extended.Gui to its own repository (#905)

* Update animated sprite so the constructor api is similar to original MGE (#906)

* Update animated sprite so the constructor api is similar to original MGE

* Fix tests from changes

* Add pitch support to Camera & OrthographicCamera (#907)

* Added pitch support to OrthographicCamera

* Added pitch functions to base Camera class

* Reorganization (#909)

* Removed MonoGame.Extended.Animations
This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

* Rework BitmapFonts for new project organization.

* Cleanup namespaces

* Cleanup namespaces

* Move MonoGame.Extended.Collision into base project

* Moved MonoGame.Extended.Entities into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Input into base project

* Moved MonoGame.Extended.Particles into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tweening into base project

* Removing SpriteFactory support
This will be added back in at a later date once the SpriteFactory application has been updated

* Update TexturePacker content import support

* Only needs to reference base project now

* Moved to Serialization namespace

* Moved  Json serialization to Serialization.Json namespace

* Moved TexturePacker content DTOs to the Content namespace

* Renamed to Texture2DRegion.Extensions.cs

* Cleaned up namespace

* Moved ReadTiledMapProperties into the ContentReaderExtensions

* Created an Extended content manager

* Moved Tweening tests to base test project

* Moved Tiled test to base test project

* Moved Entities Tests to base test project

* Moved Entities tests to base test project

* Moved Collisions tests to base test project

* Moved Pipeline Tiled test to Pipeline tests project

* Use `var` instead of full type name

* Add Tiled namespace

* Correct `Metadata` property name to new `Meta` property name

* Cleanup namespace

* Add effects namespace

* Add Content namespace

* Update using statements to new namespaces

* Move Pipeline Tiled tests to Pipeline test project

* Use correct namespace

* Use `var` instead of typing out nested types

* Remove unused namespaces

* Update to new namespaces

* Remove unused namespaces

* Update to new namespaces

* Remove dependency on Particles csproj

* Update included content on build

* Add embedded resources

* Merge multi csproj structure into single csproj structure

* TexturePackerPoint properties should be `double` not `int`

* Update csproj

* Use dotnet tool to rebuild effects

* Move effect compilation to targets file
This will ensure the effects are always built

* Fix workflow to build effects on linux

* Set wine path

* Export instead of using actions env section

* Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

* Make CurrentFrame return the actual frame index from the source atlas

* Start the animation controller playing, don't make the consumer manually call it initially

* Play is automatically called in the controller ctor

* Added property to get name of current animation

* Only copy reference files if user opts in by specifying property in csproj

* Update Kni solution to new project structure

* Update Fna solution to new project structure

* Bump version number to 4.0.0

* Update release workflow

* Remove old test

---------

Co-authored-by: Andreas Torebring <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Matt Johnson <[email protected]>
Co-authored-by: Kus <[email protected]>
Co-authored-by: slakedclay <[email protected]>
Co-authored-by: Cairo Batista <[email protected]>
Co-authored-by: Gandifil <[email protected]>
Co-authored-by: David Fidge <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Lilith Silver <anon>
Co-authored-by: KatDevsGames <[email protected]>
Co-authored-by: LACOMBE Dominique <[email protected]>
Co-authored-by: Apllify <[email protected]>
Co-authored-by: Stephen <[email protected]>
Co-authored-by: jimmy b <[email protected]>
Co-authored-by: Nikos Kastellanos <[email protected]>
Co-authored-by: Mike Bowers <[email protected]>
Co-authored-by: James <[email protected]>
AristurtleDev added a commit that referenced this pull request Jul 8, 2024
* Assert Rectangle transform not changing size

* Rectangle extents are rotated correctly

* Rebuilt effects with mgfxc 3.8.1.303

* Uncomment and fix tests

* Remove tests always passing

* Issue 707, Created test for null ptr during entity destroy

* Issue 707, Added null propagation inside component manager destroy method

* Create VelocityInterpolator

Allow particles to change velocity as they age.

* add power of two values to MouseButton

* Add parallaxFactor of layers in models.

* Add parallaxFactor in rendering logic.

* Add checking event == 'push'

* Fix looping animations incorrectly completing when an update contains a large elapsed time.
Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
Add unit tests for SpriteSheetAnimation.

* Update README.md

* Use actual target bounds when testing collision

* Cleanup

* Refactor

Encapsulate a public property (Parents).
Added xml-comments (to fix some compilation warnings)

* Format comments and fix spelling

* Add comments for public fields and properties

* fix Bag so that it doesn't allocate during foreach enumeration

* add bag allocation test

* make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

* add support for class (nested) properties

* support type/class field in maps, layers, & tilemaps

* Update PrimitiveDrawing.cs

Add a new DrawSolidCircle to add a fill color

* fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

* Use Directory.Build.targets
Moved common csproj properties for NuGet into Directory.Build.targets

* Added version tag
This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

* PackageIconUrl is deprecated
NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

* Pack README.md in NuGet packages

* Add common tags for NuGet packages
Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

* Added new Cake Frosting project

* Cleaned up
Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

* Added BuildContext

* Added BuildTask

* Added Test Task

* Added Package Task

* Added Default task

* Added namespace

* Cleanup using statements

* Ignore cake output directory

* Updated and automated for NuGet pushing

* Check for GCLatencyMode.NoGCRegion
This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

* Forgot to add System.Runtime using statement

* Better name for package step

* NuGet Deploy only in craftworksgames repo

* Enable Nullable in build project

* Add additional context variables for build script

* Use same verbosity, restore, and logo flags as originally used

* Use same verbosity and nologo setting as original

* Created Restore task

Uses same verbosity as original workflow did

* Update TestTask to use same verbosity, nologo, and nobuild as original workflow

* Create DeployToGithubTask

* Create DeployToMyGetTask

* Create DeployToNuGetTask

* Added Deploy task

* Simplify, move most logic into cake build script

* Ignore Missing XML comment warnings on build

* Remove async, ignore NU5118 on package

* Apparently i forgot a semi colon....

* Remove old collision code.

* Move collision code to root folder

* Fix namespaces

* Add failing test for collisions.

* Add benchmarks for collisions

* Refactor collision update, correct reset map

* Add BoundingRectanglle property for IShape

* Refactor QuadTree - now we use static AABB intersection check

* Add layers for collisions

* Add interface for space splitting and impls

* Refactor layers for new interface

* Add comments for collision actor.

* Add comments for space algo interface.

* Add spatialHash algo for collision spacing

* Rename Quadtree to QuadTree

* Add inline for private methods of SpatialHash.cs

* Refactor benchmarks for collisions.

* Fix tests

* Refactor layers.

* Add method for set default layer

* Fix ctor call's

* Add constructor for CollisionComponent.cs

* Add extentions for ContentImporter.

* Add speical contentItem for referencing images.

* Fix tiledMap processing and writing.

* Add texture for tile.

* Add image tileset support

* Fix using ctor from remote

* Fix version

* Fix CiCD

* Add copy constructor for KeyboardListener.

* Revert "Add copy constructor for KeyboardListener."

* Add serializer for RectangleF

* Add test for new serizalizer

* Add RectangleFJsonConverter for default serializer.

* Fixed HSL lerp

* Move extracting linear operations into special class.

* Move impls of linear tweening into special class.

* Add ColorTween

* Add special TweenTo.

* Fix TweenTo

* Add tweening tests

* Fix activator inside tweener.

* Check for undefined layer and throw on collision actor insertion

* Add test coverage

* Add OrientedBoundingRectangle type

* Add Points property to OrientedBoundingRectangle

* Ignore Visual Studio cache

* Be explicit about conversion of geometries

Conversion from circle to rectangle should not pass unnoted and be explicit.

* OrientedBoundedRectangle implements ShapeF

In that way the OrientedBoundedRectangle can take part of collision tests.

* Add ascii art to describe intersection tests

* Update circle and oriented bound box intersection

* Update dependencies

* Add Intersects method for OBB

* Rename to OrientedRectangle

* Properly intersect circle and oriented rect

* Calc coll vector for circle and oriented rect

* Calc coll vector for oriented rects

* Fixes incorrect rendering of flipped animation tiles

* Call RectangleF.Intersects to resolve recursion bug
When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

* Update Newtonsoft.Json.dll Dependency

* Removing MyGet Feed Deploy
Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

* Moved to `/src/cs`
Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

* Move build into `/src/cs`

* Fix project reference

* Fix path for project on build task

* Capital B

* Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

* Move source projects into source directory

* Moved tests into test directory

* Moved benchmarks into benchmark directory

* Moved build into build directory

* Add root props file

* Add common props for all tests

* Added `<Authors>` to root props

* Add common props for source  directory

* Add props to build directory

* Moved props from targets file

* Removed targets file

* Update for new .artifacts directory

* nuget.config is not needed

* Renamed 'Logos' directory to 'logos'
Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

* Use correct working directory after moving

* Remove duplicate import statement

* Read from props file not targets file.

* Use new .artifacts directory

* Updated .gitattributes

* Updated .gitignore

* Set ArtifactPath within the project category directory

* Drop CAKE build and move Build CI to github workflow

* Setup code analysis with .editorconfig

* Don't use nullable reference in a non-nullable context

* Correct spelling of minimal

* Fix GitHub Nuget Push (#859)

* Fix github url for nuget push

* forgot the h in https

* Remove GitHub Deploy (#860)

* Fix github url for nuget push

* forgot the h in https

* Remove github push for now, need to check repository settings

* Cleanup (#862)

* Removed Roadmap
The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

* Added new note at top of readme

* updated information for installing nuget

* Made using content pipeline extensions a section and not a quote

* Removed information about MyGet feed

* Removed patreon from readme

* Update License

* renamed master branch to main

* Remove community forum link
MonoGame is closing the community forums in favor of discord and github discussions

* Update workflows

* Removed patreon added aristurtledev (#863)

* Fix funding (#864)

* Use ArtifactsPath to resolve include dlls for pack (#865)

* Add additional input parameters (#866)

* Only specify source and prerelease (#867)

* Update prerelease version (#868)

* Replace Newtonsoft.Json with System.Text.Json (#869)

* Converted to use `System.Text.Json`

* Remove Newtonsoft.Json Dependency
Newtonsoft.Json dependency has been removed in favor of System.Text.Json

* Treat MGFXO file as binary

* Replace `Matrix2` with `Matrix3x2` (#870)

* Replace `Matrix2` with `Matrix3x2`

* Update benchmarks

* Add XML documentation for `Matrix3x2`

* Add Edge Test for `Polygon.Contains` (#871)

* Added Assert for edge contains
Reference: #214

* Renamed to PolygonTests

* Replace `Size3` with `Vector3` (#872)

* Rename `Size2` to `SizeF` (#873)

* Remove `Point3` (#874)

* Remove `Point2` (#875)

* Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

* Remove `Point2`

* Added unit test to ensure issue is resolved (#876)

* Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

* Implements standard IDispose pattern (#879)

* upgrade solution to VS2022 (#880)

* update project types to net.Sdk

* upgrade solution to VS2022

* Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

* remove unused SharpDX using

introduces in #840

* remove Content.Pipeline reference from the core library

introduced in #692

* use System ZLibStream (#882)

ZLibStream was added in net6

https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

* Added changelog (#883)

* Added changelog

* Added note about unreleased

* Make links for users (#884)

* Copy Reference DLLs from NuGet Automatically (#885)

* Pack value should be `true` not `True`

* Copy content pipeline dll references to project directory for ease of use

* Forgot `/` in path

* Updated Changelog (#886)

Added information about #885

* Refactor `BitmapFont` (#887)

* Update file header

* Created initial project to move BitmapFont too

* XMl, Text, and Binar reading now supported for BMFont

* Refactor BittmapFont

* Update content pipeline from BitmapFont refactor

* Update changelog

* Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

* Update Changelog (#889)

* Updated so all projects have changelog in root when viewing in visual studio

* Updated changelog

* Texture Atlas Refactor (#890)

* Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

* Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

* Moved `RectanglExtensions` to project root
This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

* Renamed to `Rectangle.Extensions.cs`

* Separate `Rectangle` from `RectangleF` extensions

* Added `GetRelativeRectangle` method

* Updated documentation

* Added `GetRelativeRectangle` method

* Updated documentation

* Top-level namespace

* Remove whitespace

* Move properties up

* Top-level namespace

* Don't recreate structs for `Bounds` and Size`
By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

* Size should be `Size` not `SizeF` value
Textures deal in pixels (ints not floats)

* Removed setter for `Texture` property
Texture should not be set after region is created

* Added UV properties

* Refactor constructors

* Added documentation

* Added license header

* Make it an actual extension method

* Added `GetSubRegion` extension methods for `TextureRegion`

* Update documentation about ObjectDisposedException

* Move const values to top

* Resolve errors from`TextureRegion` refactor

* Update unit tests for TextureRegion refactor

* Started NinePatch rework

* Refactored NinePatch

* Update for texture region constructor change

* Remove ninepatch from atlas

* Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
These are extension methods for the sprite batch

* Updated to use new `DrawTextureRegion` method after rename

* Renamed to NinePatchJsonConverter

* Removed `GetRegion<T>`
TextureAtlas no longer contains nine patch regions, so this method isn't needed

* Update after `NinePatchRegion2DJsonConverter` name change

* Resolve errors from NinePatch refactor

* TextureAtlas rework

* Renamed `TextureRegion` to `Texture2DRegion`

* Moved ContentReaders to new Content\ContentReaders directory

* Moved TextureAtlasJsonConvert to Serialization directory

* Adjusted name from `Texture*` to `Texture2D*`

* Update runtimereader and runtimettype strings

* Kni.Extended (#892)

* KNI projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* remove test for issue #633

* build tests

* KNI TypeReaders

* KNI/XNA compatible code

* GetRuntimeReader from runtime types

* remove MockGameWindow

* Fna.Extended (#893)

* FNA projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* build tests

* remove test for issue #633

* FNA/XNA compatible

* GraphicsDevice Extensions

* remove MockGameWindow

---------

Co-authored-by: Christopher Whitley <[email protected]>

* Sprite Rework (#897)

* Add file header

* Refator to file-scoped namespace

* Least complex to most complext method ordering

* Refactor: Group properties at top before constructor

* Use the new UV properties from Texture2DRegion.
This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

* No longer need to cache normalized origin to preserve it

* Use ArgumentNullException instead

* Use ArgumentNullException.ThrowIfNull

* Refactor:  Use brackets for readability

* Add xml documentation

* Add check for disposed texture

* Moved `Sprite` to `MonoGame.Extended.Graphics`

* Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

* `ISpriteBatchDrawable` is not used by anything
It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

* Add `CreateSprite` methods

* Add file header

* Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

* Move properties before constructor.

* Changed `Duration` to `TimeSpan` type

* Renamed `Index` to `FrameIndex`

* Add `TextureRegion` property

* Make property get only

* Cleanup whitespace

* Remove `SpriteSheetAnimationFrameJsonConverter`

* Cleanup unused namespaces

* Make file-scoped namespace

* Added xml documentation

* Added file header

* marked constructor as internal.
This will be created from a spritesheet itself

* Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

* File scoped namespace

* Add file header

* Reorganize: Move properties above constructor

* Make `Frames` property a read-only span

* Remove duration, this is being moved to the frame itself

* Add `Name` property

* Set looping, reversed, and ping pong properties in ctor

* Make ctor internal
This will be an object created by a spritesheet instane itself.

* Cleanup: Whitespace

* Add `FrameCount` property

* Add `GetFrame` method and accompanying `this[int]` method.

* Documentation: Added missing documentation.

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* Refactor: Animation Refactor Completed

* Refactor: Sprite stuff finished

* Remove tests that can't be run on GitHub CI
Need to find alternative

* Make optional name param the last param in Texture2DRegion ctors

* Resolve merge conflicts

* Add Kni Package (#898)

* Capitalize KNI (#899)

* Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

* Add test to validate issue

* Resolve issue

* Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

* Replaced delegate with Action<T>

* Change delegate to Action<T>

* Add unit test to confirm issue

* Fix NullReferenceException in ObjectPool when reusing all returned items

The ObjectPool's Use() method was throwing a NullReferenceException when
all items had been returned to the pool and New() was called again. This
was due to _tailNode being null in this scenario.

Added a null check for _tailNode in Use() method to properly reinitialize
the linked list structure when the pool has been emptied and refilled.

* Moved MonoGame.Extended.Gui to its own repository (#905)

* Update animated sprite so the constructor api is similar to original MGE (#906)

* Update animated sprite so the constructor api is similar to original MGE

* Fix tests from changes

* Add pitch support to Camera & OrthographicCamera (#907)

* Added pitch support to OrthographicCamera

* Added pitch functions to base Camera class

* Reorganization (#909)

* Removed MonoGame.Extended.Animations
This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

* Rework BitmapFonts for new project organization.

* Cleanup namespaces

* Cleanup namespaces

* Move MonoGame.Extended.Collision into base project

* Moved MonoGame.Extended.Entities into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Input into base project

* Moved MonoGame.Extended.Particles into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tweening into base project

* Removing SpriteFactory support
This will be added back in at a later date once the SpriteFactory application has been updated

* Update TexturePacker content import support

* Only needs to reference base project now

* Moved to Serialization namespace

* Moved  Json serialization to Serialization.Json namespace

* Moved TexturePacker content DTOs to the Content namespace

* Renamed to Texture2DRegion.Extensions.cs

* Cleaned up namespace

* Moved ReadTiledMapProperties into the ContentReaderExtensions

* Created an Extended content manager

* Moved Tweening tests to base test project

* Moved Tiled test to base test project

* Moved Entities Tests to base test project

* Moved Entities tests to base test project

* Moved Collisions tests to base test project

* Moved Pipeline Tiled test to Pipeline tests project

* Use `var` instead of full type name

* Add Tiled namespace

* Correct `Metadata` property name to new `Meta` property name

* Cleanup namespace

* Add effects namespace

* Add Content namespace

* Update using statements to new namespaces

* Move Pipeline Tiled tests to Pipeline test project

* Use correct namespace

* Use `var` instead of typing out nested types

* Remove unused namespaces

* Update to new namespaces

* Remove unused namespaces

* Update to new namespaces

* Remove dependency on Particles csproj

* Update included content on build

* Add embedded resources

* Merge multi csproj structure into single csproj structure

* TexturePackerPoint properties should be `double` not `int`

* Update csproj

* Use dotnet tool to rebuild effects

* Move effect compilation to targets file
This will ensure the effects are always built

* Fix workflow to build effects on linux

* Set wine path

* Export instead of using actions env section

* Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

* Make CurrentFrame return the actual frame index from the source atlas

* Start the animation controller playing, don't make the consumer manually call it initially

* Play is automatically called in the controller ctor

* Added property to get name of current animation

* Only copy reference files if user opts in by specifying property in csproj

* Update Kni solution to new project structure

* Update Fna solution to new project structure

* Bump version number to 4.0.0

* Update release workflow

* Remove old test

* Fix KNI specific issues

* Update for Fna

---------

Co-authored-by: Andreas Torebring <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Matt Johnson <[email protected]>
Co-authored-by: Kus <[email protected]>
Co-authored-by: slakedclay <[email protected]>
Co-authored-by: Cairo Batista <[email protected]>
Co-authored-by: Gandifil <[email protected]>
Co-authored-by: David Fidge <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Lilith Silver <anon>
Co-authored-by: KatDevsGames <[email protected]>
Co-authored-by: LACOMBE Dominique <[email protected]>
Co-authored-by: Apllify <[email protected]>
Co-authored-by: Stephen <[email protected]>
Co-authored-by: jimmy b <[email protected]>
Co-authored-by: Nikos Kastellanos <[email protected]>
Co-authored-by: Mike Bowers <[email protected]>
Co-authored-by: James <[email protected]>
AristurtleDev added a commit that referenced this pull request Jul 8, 2024
* Make CurrentFrame return the actual frame index from the source atlas

* Start the animation controller playing, don't make the consumer manually call it initially

* Play is automatically called in the controller ctor

* Added property to get name of current animation

* Only copy reference files if user opts in by specifying property in csproj

* Update Kni solution to new project structure

* Update Fna solution to new project structure

* Bump version number to 4.0.0

* Update release workflow

* Remove old test

* Version 4.0.0 Release (#911)

* Remove duplicate fact

* Add .user file to gitignore

* Assert Rectangle translation transform

* Assert Rectangle transform not changing size

* Rectangle extents are rotated correctly

* Rebuilt effects with mgfxc 3.8.1.303

* Uncomment and fix tests

* Remove tests always passing

* Issue 707, Created test for null ptr during entity destroy

* Issue 707, Added null propagation inside component manager destroy method

* Create VelocityInterpolator

Allow particles to change velocity as they age.

* add power of two values to MouseButton

* Add parallaxFactor of layers in models.

* Add parallaxFactor in rendering logic.

* Add checking event == 'push'

* Fix looping animations incorrectly completing when an update contains a large elapsed time.
Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
Add unit tests for SpriteSheetAnimation.

* Update README.md

* Use actual target bounds when testing collision

* Cleanup

* Refactor

Encapsulate a public property (Parents).
Added xml-comments (to fix some compilation warnings)

* Format comments and fix spelling

* Add comments for public fields and properties

* fix Bag so that it doesn't allocate during foreach enumeration

* add bag allocation test

* make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

* add support for class (nested) properties

* support type/class field in maps, layers, & tilemaps

* Update PrimitiveDrawing.cs

Add a new DrawSolidCircle to add a fill color

* fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

* Use Directory.Build.targets
Moved common csproj properties for NuGet into Directory.Build.targets

* Added version tag
This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

* PackageIconUrl is deprecated
NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

* Pack README.md in NuGet packages

* Add common tags for NuGet packages
Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

* Added new Cake Frosting project

* Cleaned up
Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

* Added BuildContext

* Added BuildTask

* Added Test Task

* Added Package Task

* Added Default task

* Added namespace

* Cleanup using statements

* Ignore cake output directory

* Updated and automated for NuGet pushing

* Check for GCLatencyMode.NoGCRegion
This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

* Forgot to add System.Runtime using statement

* Better name for package step

* NuGet Deploy only in craftworksgames repo

* Enable Nullable in build project

* Add additional context variables for build script

* Use same verbosity, restore, and logo flags as originally used

* Use same verbosity and nologo setting as original

* Created Restore task

Uses same verbosity as original workflow did

* Update TestTask to use same verbosity, nologo, and nobuild as original workflow

* Create DeployToGithubTask

* Create DeployToMyGetTask

* Create DeployToNuGetTask

* Added Deploy task

* Simplify, move most logic into cake build script

* Ignore Missing XML comment warnings on build

* Remove async, ignore NU5118 on package

* Apparently i forgot a semi colon....

* Remove old collision code.

* Move collision code to root folder

* Fix namespaces

* Add failing test for collisions.

* Add benchmarks for collisions

* Refactor collision update, correct reset map

* Add BoundingRectanglle property for IShape

* Refactor QuadTree - now we use static AABB intersection check

* Add layers for collisions

* Add interface for space splitting and impls

* Refactor layers for new interface

* Add comments for collision actor.

* Add comments for space algo interface.

* Add spatialHash algo for collision spacing

* Rename Quadtree to QuadTree

* Add inline for private methods of SpatialHash.cs

* Refactor benchmarks for collisions.

* Fix tests

* Refactor layers.

* Add method for set default layer

* Fix ctor call's

* Add constructor for CollisionComponent.cs

* Add extentions for ContentImporter.

* Add speical contentItem for referencing images.

* Fix tiledMap processing and writing.

* Add texture for tile.

* Add image tileset support

* Fix using ctor from remote

* Fix version

* Fix CiCD

* Add copy constructor for KeyboardListener.

* Revert "Add copy constructor for KeyboardListener."

* Add serializer for RectangleF

* Add test for new serizalizer

* Add RectangleFJsonConverter for default serializer.

* Fixed HSL lerp

* Move extracting linear operations into special class.

* Move impls of linear tweening into special class.

* Add ColorTween

* Add special TweenTo.

* Fix TweenTo

* Add tweening tests

* Fix activator inside tweener.

* Check for undefined layer and throw on collision actor insertion

* Add test coverage

* Add OrientedBoundingRectangle type

* Add Points property to OrientedBoundingRectangle

* Ignore Visual Studio cache

* Be explicit about conversion of geometries

Conversion from circle to rectangle should not pass unnoted and be explicit.

* OrientedBoundedRectangle implements ShapeF

In that way the OrientedBoundedRectangle can take part of collision tests.

* Add ascii art to describe intersection tests

* Update circle and oriented bound box intersection

* Update dependencies

* Add Intersects method for OBB

* Rename to OrientedRectangle

* Properly intersect circle and oriented rect

* Calc coll vector for circle and oriented rect

* Calc coll vector for oriented rects

* Fixes incorrect rendering of flipped animation tiles

* Call RectangleF.Intersects to resolve recursion bug
When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

* Update Newtonsoft.Json.dll Dependency

* Removing MyGet Feed Deploy
Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

* Moved to `/src/cs`
Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

* Move build into `/src/cs`

* Fix project reference

* Fix path for project on build task

* Capital B

* Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

* Move source projects into source directory

* Moved tests into test directory

* Moved benchmarks into benchmark directory

* Moved build into build directory

* Add root props file

* Add common props for all tests

* Added `<Authors>` to root props

* Add common props for source  directory

* Add props to build directory

* Moved props from targets file

* Removed targets file

* Update for new .artifacts directory

* nuget.config is not needed

* Renamed 'Logos' directory to 'logos'
Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

* Use correct working directory after moving

* Remove duplicate import statement

* Read from props file not targets file.

* Use new .artifacts directory

* Updated .gitattributes

* Updated .gitignore

* Set ArtifactPath within the project category directory

* Drop CAKE build and move Build CI to github workflow

* Setup code analysis with .editorconfig

* Don't use nullable reference in a non-nullable context

* Correct spelling of minimal

* Fix GitHub Nuget Push (#859)

* Fix github url for nuget push

* forgot the h in https

* Remove GitHub Deploy (#860)

* Fix github url for nuget push

* forgot the h in https

* Remove github push for now, need to check repository settings

* Cleanup (#862)

* Removed Roadmap
The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

* Added new note at top of readme

* updated information for installing nuget

* Made using content pipeline extensions a section and not a quote

* Removed information about MyGet feed

* Removed patreon from readme

* Update License

* renamed master branch to main

* Remove community forum link
MonoGame is closing the community forums in favor of discord and github discussions

* Update workflows

* Removed patreon added aristurtledev (#863)

* Fix funding (#864)

* Use ArtifactsPath to resolve include dlls for pack (#865)

* Add additional input parameters (#866)

* Only specify source and prerelease (#867)

* Update prerelease version (#868)

* Replace Newtonsoft.Json with System.Text.Json (#869)

* Converted to use `System.Text.Json`

* Remove Newtonsoft.Json Dependency
Newtonsoft.Json dependency has been removed in favor of System.Text.Json

* Treat MGFXO file as binary

* Replace `Matrix2` with `Matrix3x2` (#870)

* Replace `Matrix2` with `Matrix3x2`

* Update benchmarks

* Add XML documentation for `Matrix3x2`

* Add Edge Test for `Polygon.Contains` (#871)

* Added Assert for edge contains
Reference: #214

* Renamed to PolygonTests

* Replace `Size3` with `Vector3` (#872)

* Rename `Size2` to `SizeF` (#873)

* Remove `Point3` (#874)

* Remove `Point2` (#875)

* Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

* Remove `Point2`

* Added unit test to ensure issue is resolved (#876)

* Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

* Implements standard IDispose pattern (#879)

* upgrade solution to VS2022 (#880)

* update project types to net.Sdk

* upgrade solution to VS2022

* Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

* remove unused SharpDX using

introduces in #840

* remove Content.Pipeline reference from the core library

introduced in #692

* use System ZLibStream (#882)

ZLibStream was added in net6

https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

* Added changelog (#883)

* Added changelog

* Added note about unreleased

* Make links for users (#884)

* Copy Reference DLLs from NuGet Automatically (#885)

* Pack value should be `true` not `True`

* Copy content pipeline dll references to project directory for ease of use

* Forgot `/` in path

* Updated Changelog (#886)

Added information about #885

* Refactor `BitmapFont` (#887)

* Update file header

* Created initial project to move BitmapFont too

* XMl, Text, and Binar reading now supported for BMFont

* Refactor BittmapFont

* Update content pipeline from BitmapFont refactor

* Update changelog

* Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

* Update Changelog (#889)

* Updated so all projects have changelog in root when viewing in visual studio

* Updated changelog

* Texture Atlas Refactor (#890)

* Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

* Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

* Moved `RectanglExtensions` to project root
This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

* Renamed to `Rectangle.Extensions.cs`

* Separate `Rectangle` from `RectangleF` extensions

* Added `GetRelativeRectangle` method

* Updated documentation

* Added `GetRelativeRectangle` method

* Updated documentation

* Top-level namespace

* Remove whitespace

* Move properties up

* Top-level namespace

* Don't recreate structs for `Bounds` and Size`
By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

* Size should be `Size` not `SizeF` value
Textures deal in pixels (ints not floats)

* Removed setter for `Texture` property
Texture should not be set after region is created

* Added UV properties

* Refactor constructors

* Added documentation

* Added license header

* Make it an actual extension method

* Added `GetSubRegion` extension methods for `TextureRegion`

* Update documentation about ObjectDisposedException

* Move const values to top

* Resolve errors from`TextureRegion` refactor

* Update unit tests for TextureRegion refactor

* Started NinePatch rework

* Refactored NinePatch

* Update for texture region constructor change

* Remove ninepatch from atlas

* Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
These are extension methods for the sprite batch

* Updated to use new `DrawTextureRegion` method after rename

* Renamed to NinePatchJsonConverter

* Removed `GetRegion<T>`
TextureAtlas no longer contains nine patch regions, so this method isn't needed

* Update after `NinePatchRegion2DJsonConverter` name change

* Resolve errors from NinePatch refactor

* TextureAtlas rework

* Renamed `TextureRegion` to `Texture2DRegion`

* Moved ContentReaders to new Content\ContentReaders directory

* Moved TextureAtlasJsonConvert to Serialization directory

* Adjusted name from `Texture*` to `Texture2D*`

* Update runtimereader and runtimettype strings

* Kni.Extended (#892)

* KNI projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* remove test for issue #633

* build tests

* KNI TypeReaders

* KNI/XNA compatible code

* GetRuntimeReader from runtime types

* remove MockGameWindow

* Fna.Extended (#893)

* FNA projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* build tests

* remove test for issue #633

* FNA/XNA compatible

* GraphicsDevice Extensions

* remove MockGameWindow

---------

Co-authored-by: Christopher Whitley <[email protected]>

* Sprite Rework (#897)

* Add file header

* Refator to file-scoped namespace

* Least complex to most complext method ordering

* Refactor: Group properties at top before constructor

* Use the new UV properties from Texture2DRegion.
This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

* No longer need to cache normalized origin to preserve it

* Use ArgumentNullException instead

* Use ArgumentNullException.ThrowIfNull

* Refactor:  Use brackets for readability

* Add xml documentation

* Add check for disposed texture

* Moved `Sprite` to `MonoGame.Extended.Graphics`

* Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

* `ISpriteBatchDrawable` is not used by anything
It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

* Add `CreateSprite` methods

* Add file header

* Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

* Move properties before constructor.

* Changed `Duration` to `TimeSpan` type

* Renamed `Index` to `FrameIndex`

* Add `TextureRegion` property

* Make property get only

* Cleanup whitespace

* Remove `SpriteSheetAnimationFrameJsonConverter`

* Cleanup unused namespaces

* Make file-scoped namespace

* Added xml documentation

* Added file header

* marked constructor as internal.
This will be created from a spritesheet itself

* Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

* File scoped namespace

* Add file header

* Reorganize: Move properties above constructor

* Make `Frames` property a read-only span

* Remove duration, this is being moved to the frame itself

* Add `Name` property

* Set looping, reversed, and ping pong properties in ctor

* Make ctor internal
This will be an object created by a spritesheet instane itself.

* Cleanup: Whitespace

* Add `FrameCount` property

* Add `GetFrame` method and accompanying `this[int]` method.

* Documentation: Added missing documentation.

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* Refactor: Animation Refactor Completed

* Refactor: Sprite stuff finished

* Remove tests that can't be run on GitHub CI
Need to find alternative

* Make optional name param the last param in Texture2DRegion ctors

* Resolve merge conflicts

* Add Kni Package (#898)

* Capitalize KNI (#899)

* Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

* Add test to validate issue

* Resolve issue

* Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

* Replaced delegate with Action<T>

* Change delegate to Action<T>

* Add unit test to confirm issue

* Fix NullReferenceException in ObjectPool when reusing all returned items

The ObjectPool's Use() method was throwing a NullReferenceException when
all items had been returned to the pool and New() was called again. This
was due to _tailNode being null in this scenario.

Added a null check for _tailNode in Use() method to properly reinitialize
the linked list structure when the pool has been emptied and refilled.

* Moved MonoGame.Extended.Gui to its own repository (#905)

* Update animated sprite so the constructor api is similar to original MGE (#906)

* Update animated sprite so the constructor api is similar to original MGE

* Fix tests from changes

* Add pitch support to Camera & OrthographicCamera (#907)

* Added pitch support to OrthographicCamera

* Added pitch functions to base Camera class

* Reorganization (#909)

* Removed MonoGame.Extended.Animations
This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

* Rework BitmapFonts for new project organization.

* Cleanup namespaces

* Cleanup namespaces

* Move MonoGame.Extended.Collision into base project

* Moved MonoGame.Extended.Entities into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Input into base project

* Moved MonoGame.Extended.Particles into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tweening into base project

* Removing SpriteFactory support
This will be added back in at a later date once the SpriteFactory application has been updated

* Update TexturePacker content import support

* Only needs to reference base project now

* Moved to Serialization namespace

* Moved  Json serialization to Serialization.Json namespace

* Moved TexturePacker content DTOs to the Content namespace

* Renamed to Texture2DRegion.Extensions.cs

* Cleaned up namespace

* Moved ReadTiledMapProperties into the ContentReaderExtensions

* Created an Extended content manager

* Moved Tweening tests to base test project

* Moved Tiled test to base test project

* Moved Entities Tests to base test project

* Moved Entities tests to base test project

* Moved Collisions tests to base test project

* Moved Pipeline Tiled test to Pipeline tests project

* Use `var` instead of full type name

* Add Tiled namespace

* Correct `Metadata` property name to new `Meta` property name

* Cleanup namespace

* Add effects namespace

* Add Content namespace

* Update using statements to new namespaces

* Move Pipeline Tiled tests to Pipeline test project

* Use correct namespace

* Use `var` instead of typing out nested types

* Remove unused namespaces

* Update to new namespaces

* Remove unused namespaces

* Update to new namespaces

* Remove dependency on Particles csproj

* Update included content on build

* Add embedded resources

* Merge multi csproj structure into single csproj structure

* TexturePackerPoint properties should be `double` not `int`

* Update csproj

* Use dotnet tool to rebuild effects

* Move effect compilation to targets file
This will ensure the effects are always built

* Fix workflow to build effects on linux

* Set wine path

* Export instead of using actions env section

* Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

* Make CurrentFrame return the actual frame index from the source atlas

* Start the animation controller playing, don't make the consumer manually call it initially

* Play is automatically called in the controller ctor

* Added property to get name of current animation

* Only copy reference files if user opts in by specifying property in csproj

* Update Kni solution to new project structure

* Update Fna solution to new project structure

* Bump version number to 4.0.0

* Update release workflow

* Remove old test

---------

Co-authored-by: Andreas Torebring <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Matt Johnson <[email protected]>
Co-authored-by: Kus <[email protected]>
Co-authored-by: slakedclay <[email protected]>
Co-authored-by: Cairo Batista <[email protected]>
Co-authored-by: Gandifil <[email protected]>
Co-authored-by: David Fidge <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Lilith Silver <anon>
Co-authored-by: KatDevsGames <[email protected]>
Co-authored-by: LACOMBE Dominique <[email protected]>
Co-authored-by: Apllify <[email protected]>
Co-authored-by: Stephen <[email protected]>
Co-authored-by: jimmy b <[email protected]>
Co-authored-by: Nikos Kastellanos <[email protected]>
Co-authored-by: Mike Bowers <[email protected]>
Co-authored-by: James <[email protected]>

* Fix KNI specific issues

* Update for Fna

---------

Co-authored-by: Andreas Torebring <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Matt Johnson <[email protected]>
Co-authored-by: Kus <[email protected]>
Co-authored-by: slakedclay <[email protected]>
Co-authored-by: Cairo Batista <[email protected]>
Co-authored-by: Gandifil <[email protected]>
Co-authored-by: David Fidge <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: KatDevsGames <[email protected]>
Co-authored-by: LACOMBE Dominique <[email protected]>
Co-authored-by: Apllify <[email protected]>
Co-authored-by: Stephen <[email protected]>
Co-authored-by: jimmy b <[email protected]>
Co-authored-by: Nikos Kastellanos <[email protected]>
Co-authored-by: Mike Bowers <[email protected]>
Co-authored-by: James <[email protected]>
AristurtleDev added a commit that referenced this pull request Jul 9, 2024
commit 8b3c2f0e1b9ada5649a4fab690e60476559f0320
Author: Christopher Whitley <[email protected]>
Date:   Tue Jul 9 15:22:33 2024 -0400

    Various fixes for the version 4 initial release (#915)

    * Remove logging statement, not needed

    * Add bmfont texture as dependency

    * Remove existing instance check, this will always be null

    * Fix BitmapFontContentReader

    * Remove TODO comment
    This was added 8 years ago, and I don't see any determinant to the states being global.

    * Renamed `Refresh` to `Update`

    * Added documentation comments

    * file scoped namespace

    * Remove unnecessary using

    * Add file header

    * Remove obsolete methods and update documentation

    * file scoped namespace

    * Remove TODO comment
    The fields being static is fine.

    * Renamed `Refersh` to `Update`

    * Add documentation

    * file scoped namespace

    * Add documentation

    * Remove deprecated methods

commit 1d440c9d7d62fee6405fc33d8e50ac248124f9c5
Author: Christopher Whitley <[email protected]>
Date:   Mon Jul 8 18:54:38 2024 -0400

    Release/v4 (#914)

    * Make CurrentFrame return the actual frame index from the source atlas

    * Start the animation controller playing, don't make the consumer manually call it initially

    * Play is automatically called in the controller ctor

    * Added property to get name of current animation

    * Only copy reference files if user opts in by specifying property in csproj

    * Update Kni solution to new project structure

    * Update Fna solution to new project structure

    * Bump version number to 4.0.0

    * Update release workflow

    * Remove old test

    * Version 4.0.0 Release (#911)

    * Remove duplicate fact

    * Add .user file to gitignore

    * Assert Rectangle translation transform

    * Assert Rectangle transform not changing size

    * Rectangle extents are rotated correctly

    * Rebuilt effects with mgfxc 3.8.1.303

    * Uncomment and fix tests

    * Remove tests always passing

    * Issue 707, Created test for null ptr during entity destroy

    * Issue 707, Added null propagation inside component manager destroy method

    * Create VelocityInterpolator

    Allow particles to change velocity as they age.

    * add power of two values to MouseButton

    * Add parallaxFactor of layers in models.

    * Add parallaxFactor in rendering logic.

    * Add checking event == 'push'

    * Fix looping animations incorrectly completing when an update contains a large elapsed time.
    Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
    Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
    Add unit tests for SpriteSheetAnimation.

    * Update README.md

    * Use actual target bounds when testing collision

    * Cleanup

    * Refactor

    Encapsulate a public property (Parents).
    Added xml-comments (to fix some compilation warnings)

    * Format comments and fix spelling

    * Add comments for public fields and properties

    * fix Bag so that it doesn't allocate during foreach enumeration

    * add bag allocation test

    * make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

    * add support for class (nested) properties

    * support type/class field in maps, layers, & tilemaps

    * Update PrimitiveDrawing.cs

    Add a new DrawSolidCircle to add a fill color

    * fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

    * Use Directory.Build.targets
    Moved common csproj properties for NuGet into Directory.Build.targets

    * Added version tag
    This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

    * PackageIconUrl is deprecated
    NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

    * Pack README.md in NuGet packages

    * Add common tags for NuGet packages
    Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

    * Added new Cake Frosting project

    * Cleaned up
    Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

    * Added BuildContext

    * Added BuildTask

    * Added Test Task

    * Added Package Task

    * Added Default task

    * Added namespace

    * Cleanup using statements

    * Ignore cake output directory

    * Updated and automated for NuGet pushing

    * Check for GCLatencyMode.NoGCRegion
    This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

    * Forgot to add System.Runtime using statement

    * Better name for package step

    * NuGet Deploy only in craftworksgames repo

    * Enable Nullable in build project

    * Add additional context variables for build script

    * Use same verbosity, restore, and logo flags as originally used

    * Use same verbosity and nologo setting as original

    * Created Restore task

    Uses same verbosity as original workflow did

    * Update TestTask to use same verbosity, nologo, and nobuild as original workflow

    * Create DeployToGithubTask

    * Create DeployToMyGetTask

    * Create DeployToNuGetTask

    * Added Deploy task

    * Simplify, move most logic into cake build script

    * Ignore Missing XML comment warnings on build

    * Remove async, ignore NU5118 on package

    * Apparently i forgot a semi colon....

    * Remove old collision code.

    * Move collision code to root folder

    * Fix namespaces

    * Add failing test for collisions.

    * Add benchmarks for collisions

    * Refactor collision update, correct reset map

    * Add BoundingRectanglle property for IShape

    * Refactor QuadTree - now we use static AABB intersection check

    * Add layers for collisions

    * Add interface for space splitting and impls

    * Refactor layers for new interface

    * Add comments for collision actor.

    * Add comments for space algo interface.

    * Add spatialHash algo for collision spacing

    * Rename Quadtree to QuadTree

    * Add inline for private methods of SpatialHash.cs

    * Refactor benchmarks for collisions.

    * Fix tests

    * Refactor layers.

    * Add method for set default layer

    * Fix ctor call's

    * Add constructor for CollisionComponent.cs

    * Add extentions for ContentImporter.

    * Add speical contentItem for referencing images.

    * Fix tiledMap processing and writing.

    * Add texture for tile.

    * Add image tileset support

    * Fix using ctor from remote

    * Fix version

    * Fix CiCD

    * Add copy constructor for KeyboardListener.

    * Revert "Add copy constructor for KeyboardListener."

    * Add serializer for RectangleF

    * Add test for new serizalizer

    * Add RectangleFJsonConverter for default serializer.

    * Fixed HSL lerp

    * Move extracting linear operations into special class.

    * Move impls of linear tweening into special class.

    * Add ColorTween

    * Add special TweenTo.

    * Fix TweenTo

    * Add tweening tests

    * Fix activator inside tweener.

    * Check for undefined layer and throw on collision actor insertion

    * Add test coverage

    * Add OrientedBoundingRectangle type

    * Add Points property to OrientedBoundingRectangle

    * Ignore Visual Studio cache

    * Be explicit about conversion of geometries

    Conversion from circle to rectangle should not pass unnoted and be explicit.

    * OrientedBoundedRectangle implements ShapeF

    In that way the OrientedBoundedRectangle can take part of collision tests.

    * Add ascii art to describe intersection tests

    * Update circle and oriented bound box intersection

    * Update dependencies

    * Add Intersects method for OBB

    * Rename to OrientedRectangle

    * Properly intersect circle and oriented rect

    * Calc coll vector for circle and oriented rect

    * Calc coll vector for oriented rects

    * Fixes incorrect rendering of flipped animation tiles

    * Call RectangleF.Intersects to resolve recursion bug
    When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

    * Update Newtonsoft.Json.dll Dependency

    * Removing MyGet Feed Deploy
    Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

    * Moved to `/src/cs`
    Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

    * Move build into `/src/cs`

    * Fix project reference

    * Fix path for project on build task

    * Capital B

    * Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

    * Move source projects into source directory

    * Moved tests into test directory

    * Moved benchmarks into benchmark directory

    * Moved build into build directory

    * Add root props file

    * Add common props for all tests

    * Added `<Authors>` to root props

    * Add common props for source  directory

    * Add props to build directory

    * Moved props from targets file

    * Removed targets file

    * Update for new .artifacts directory

    * nuget.config is not needed

    * Renamed 'Logos' directory to 'logos'
    Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

    * Use correct working directory after moving

    * Remove duplicate import statement

    * Read from props file not targets file.

    * Use new .artifacts directory

    * Updated .gitattributes

    * Updated .gitignore

    * Set ArtifactPath within the project category directory

    * Drop CAKE build and move Build CI to github workflow

    * Setup code analysis with .editorconfig

    * Don't use nullable reference in a non-nullable context

    * Correct spelling of minimal

    * Fix GitHub Nuget Push (#859)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove GitHub Deploy (#860)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove github push for now, need to check repository settings

    * Cleanup (#862)

    * Removed Roadmap
    The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

    * Added new note at top of readme

    * updated information for installing nuget

    * Made using content pipeline extensions a section and not a quote

    * Removed information about MyGet feed

    * Removed patreon from readme

    * Update License

    * renamed master branch to main

    * Remove community forum link
    MonoGame is closing the community forums in favor of discord and github discussions

    * Update workflows

    * Removed patreon added aristurtledev (#863)

    * Fix funding (#864)

    * Use ArtifactsPath to resolve include dlls for pack (#865)

    * Add additional input parameters (#866)

    * Only specify source and prerelease (#867)

    * Update prerelease version (#868)

    * Replace Newtonsoft.Json with System.Text.Json (#869)

    * Converted to use `System.Text.Json`

    * Remove Newtonsoft.Json Dependency
    Newtonsoft.Json dependency has been removed in favor of System.Text.Json

    * Treat MGFXO file as binary

    * Replace `Matrix2` with `Matrix3x2` (#870)

    * Replace `Matrix2` with `Matrix3x2`

    * Update benchmarks

    * Add XML documentation for `Matrix3x2`

    * Add Edge Test for `Polygon.Contains` (#871)

    * Added Assert for edge contains
    Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

    * Renamed to PolygonTests

    * Replace `Size3` with `Vector3` (#872)

    * Rename `Size2` to `SizeF` (#873)

    * Remove `Point3` (#874)

    * Remove `Point2` (#875)

    * Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

    * Remove `Point2`

    * Added unit test to ensure issue is resolved (#876)

    * Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

    * Implements standard IDispose pattern (#879)

    * upgrade solution to VS2022 (#880)

    * update project types to net.Sdk

    * upgrade solution to VS2022

    * Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

    * remove unused SharpDX using

    introduces in #840

    * remove Content.Pipeline reference from the core library

    introduced in #692

    * use System ZLibStream (#882)

    ZLibStream was added in net6

    https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

    * Added changelog (#883)

    * Added changelog

    * Added note about unreleased

    * Make links for users (#884)

    * Copy Reference DLLs from NuGet Automatically (#885)

    * Pack value should be `true` not `True`

    * Copy content pipeline dll references to project directory for ease of use

    * Forgot `/` in path

    * Updated Changelog (#886)

    Added information about #885

    * Refactor `BitmapFont` (#887)

    * Update file header

    * Created initial project to move BitmapFont too

    * XMl, Text, and Binar reading now supported for BMFont

    * Refactor BittmapFont

    * Update content pipeline from BitmapFont refactor

    * Update changelog

    * Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

    * Update Changelog (#889)

    * Updated so all projects have changelog in root when viewing in visual studio

    * Updated changelog

    * Texture Atlas Refactor (#890)

    * Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
    These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

    * Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

    * Moved `RectanglExtensions` to project root
    This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

    * Renamed to `Rectangle.Extensions.cs`

    * Separate `Rectangle` from `RectangleF` extensions

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Top-level namespace

    * Remove whitespace

    * Move properties up

    * Top-level namespace

    * Don't recreate structs for `Bounds` and Size`
    By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

    * Size should be `Size` not `SizeF` value
    Textures deal in pixels (ints not floats)

    * Removed setter for `Texture` property
    Texture should not be set after region is created

    * Added UV properties

    * Refactor constructors

    * Added documentation

    * Added license header

    * Make it an actual extension method

    * Added `GetSubRegion` extension methods for `TextureRegion`

    * Update documentation about ObjectDisposedException

    * Move const values to top

    * Resolve errors from`TextureRegion` refactor

    * Update unit tests for TextureRegion refactor

    * Started NinePatch rework

    * Refactored NinePatch

    * Update for texture region constructor change

    * Remove ninepatch from atlas

    * Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
    These are extension methods for the sprite batch

    * Updated to use new `DrawTextureRegion` method after rename

    * Renamed to NinePatchJsonConverter

    * Removed `GetRegion<T>`
    TextureAtlas no longer contains nine patch regions, so this method isn't needed

    * Update after `NinePatchRegion2DJsonConverter` name change

    * Resolve errors from NinePatch refactor

    * TextureAtlas rework

    * Renamed `TextureRegion` to `Texture2DRegion`

    * Moved ContentReaders to new Content\ContentReaders directory

    * Moved TextureAtlasJsonConvert to Serialization directory

    * Adjusted name from `Texture*` to `Texture2D*`

    * Update runtimereader and runtimettype strings

    * Kni.Extended (#892)

    * KNI projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * remove test for issue #633

    * build tests

    * KNI TypeReaders

    * KNI/XNA compatible code

    * GetRuntimeReader from runtime types

    * remove MockGameWindow

    * Fna.Extended (#893)

    * FNA projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * build tests

    * remove test for issue #633

    * FNA/XNA compatible

    * GraphicsDevice Extensions

    * remove MockGameWindow

    ---------

    Co-authored-by: Christopher Whitley <[email protected]>

    * Sprite Rework (#897)

    * Add file header

    * Refator to file-scoped namespace

    * Least complex to most complext method ordering

    * Refactor: Group properties at top before constructor

    * Use the new UV properties from Texture2DRegion.
    This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

    * No longer need to cache normalized origin to preserve it

    * Use ArgumentNullException instead

    * Use ArgumentNullException.ThrowIfNull

    * Refactor:  Use brackets for readability

    * Add xml documentation

    * Add check for disposed texture

    * Moved `Sprite` to `MonoGame.Extended.Graphics`

    * Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

    * `ISpriteBatchDrawable` is not used by anything
    It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

    * Add `CreateSprite` methods

    * Add file header

    * Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

    * Move properties before constructor.

    * Changed `Duration` to `TimeSpan` type

    * Renamed `Index` to `FrameIndex`

    * Add `TextureRegion` property

    * Make property get only

    * Cleanup whitespace

    * Remove `SpriteSheetAnimationFrameJsonConverter`

    * Cleanup unused namespaces

    * Make file-scoped namespace

    * Added xml documentation

    * Added file header

    * marked constructor as internal.
    This will be created from a spritesheet itself

    * Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

    * File scoped namespace

    * Add file header

    * Reorganize: Move properties above constructor

    * Make `Frames` property a read-only span

    * Remove duration, this is being moved to the frame itself

    * Add `Name` property

    * Set looping, reversed, and ping pong properties in ctor

    * Make ctor internal
    This will be an object created by a spritesheet instane itself.

    * Cleanup: Whitespace

    * Add `FrameCount` property

    * Add `GetFrame` method and accompanying `this[int]` method.

    * Documentation: Added missing documentation.

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * Refactor: Animation Refactor Completed

    * Refactor: Sprite stuff finished

    * Remove tests that can't be run on GitHub CI
    Need to find alternative

    * Make optional name param the last param in Texture2DRegion ctors

    * Resolve merge conflicts

    * Add Kni Package (#898)

    * Capitalize KNI (#899)

    * Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

    * Add test to validate issue

    * Resolve issue

    * Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

    * Replaced delegate with Action<T>

    * Change delegate to Action<T>

    * Add unit test to confirm issue

    * Fix NullReferenceException in ObjectPool when reusing all returned items

    The ObjectPool's Use() method was throwing a NullReferenceException when
    all items had been returned to the pool and New() was called again. This
    was due to _tailNode being null in this scenario.

    Added a null check for _tailNode in Use() method to properly reinitialize
    the linked list structure when the pool has been emptied and refilled.

    * Moved MonoGame.Extended.Gui to its own repository (#905)

    * Update animated sprite so the constructor api is similar to original MGE (#906)

    * Update animated sprite so the constructor api is similar to original MGE

    * Fix tests from changes

    * Add pitch support to Camera & OrthographicCamera (#907)

    * Added pitch support to OrthographicCamera

    * Added pitch functions to base Camera class

    * Reorganization (#909)

    * Removed MonoGame.Extended.Animations
    This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

    * Rework BitmapFonts for new project organization.

    * Cleanup namespaces

    * Cleanup namespaces

    * Move MonoGame.Extended.Collision into base project

    * Moved MonoGame.Extended.Entities into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Input into base project

    * Moved MonoGame.Extended.Particles into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tweening into base project

    * Removing SpriteFactory support
    This will be added back in at a later date once the SpriteFactory application has been updated

    * Update TexturePacker content import support

    * Only needs to reference base project now

    * Moved to Serialization namespace

    * Moved  Json serialization to Serialization.Json namespace

    * Moved TexturePacker content DTOs to the Content namespace

    * Renamed to Texture2DRegion.Extensions.cs

    * Cleaned up namespace

    * Moved ReadTiledMapProperties into the ContentReaderExtensions

    * Created an Extended content manager

    * Moved Tweening tests to base test project

    * Moved Tiled test to base test project

    * Moved Entities Tests to base test project

    * Moved Entities tests to base test project

    * Moved Collisions tests to base test project

    * Moved Pipeline Tiled test to Pipeline tests project

    * Use `var` instead of full type name

    * Add Tiled namespace

    * Correct `Metadata` property name to new `Meta` property name

    * Cleanup namespace

    * Add effects namespace

    * Add Content namespace

    * Update using statements to new namespaces

    * Move Pipeline Tiled tests to Pipeline test project

    * Use correct namespace

    * Use `var` instead of typing out nested types

    * Remove unused namespaces

    * Update to new namespaces

    * Remove unused namespaces

    * Update to new namespaces

    * Remove dependency on Particles csproj

    * Update included content on build

    * Add embedded resources

    * Merge multi csproj structure into single csproj structure

    * TexturePackerPoint properties should be `double` not `int`

    * Update csproj

    * Use dotnet tool to rebuild effects

    * Move effect compilation to targets file
    This will ensure the effects are always built

    * Fix workflow to build effects on linux

    * Set wine path

    * Export instead of using actions env section

    * Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

    * Make CurrentFrame return the actual frame index from the source atlas

    * Start the animation controller playing, don't make the consumer manually call it initially

    * Play is automatically called in the controller ctor

    * Added property to get name of current animation

    * Only copy reference files if user opts in by specifying property in csproj

    * Update Kni solution to new project structure

    * Update Fna solution to new project structure

    * Bump version number to 4.0.0

    * Update release workflow

    * Remove old test

    ---------

    Co-authored-by: Andreas Torebring <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: Matt Johnson <[email protected]>
    Co-authored-by: Kus <[email protected]>
    Co-authored-by: slakedclay <[email protected]>
    Co-authored-by: Cairo Batista <[email protected]>
    Co-authored-by: Gandifil <[email protected]>
    Co-authored-by: David Fidge <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: Lilith Silver <anon>
    Co-authored-by: KatDevsGames <[email protected]>
    Co-authored-by: LACOMBE Dominique <[email protected]>
    Co-authored-by: Apllify <[email protected]>
    Co-authored-by: Stephen <[email protected]>
    Co-authored-by: jimmy b <[email protected]>
    Co-authored-by: Nikos Kastellanos <[email protected]>
    Co-authored-by: Mike Bowers <[email protected]>
    Co-authored-by: James <[email protected]>

    * Fix KNI specific issues

    * Update for Fna

    ---------

    Co-authored-by: Andreas Torebring <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: Matt Johnson <[email protected]>
    Co-authored-by: Kus <[email protected]>
    Co-authored-by: slakedclay <[email protected]>
    Co-authored-by: Cairo Batista <[email protected]>
    Co-authored-by: Gandifil <[email protected]>
    Co-authored-by: David Fidge <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: KatDevsGames <[email protected]>
    Co-authored-by: LACOMBE Dominique <[email protected]>
    Co-authored-by: Apllify <[email protected]>
    Co-authored-by: Stephen <[email protected]>
    Co-authored-by: jimmy b <[email protected]>
    Co-authored-by: Nikos Kastellanos <[email protected]>
    Co-authored-by: Mike Bowers <[email protected]>
    Co-authored-by: James <[email protected]>

commit 0fe10642179021524bcb22bf0489b984779da754
Author: Christopher Whitley <[email protected]>
Date:   Mon Jul 8 18:27:54 2024 -0400

    Merge Release into Develop (#912)

    * Make CurrentFrame return the actual frame index from the source atlas

    * Start the animation controller playing, don't make the consumer manually call it initially

    * Play is automatically called in the controller ctor

    * Added property to get name of current animation

    * Only copy reference files if user opts in by specifying property in csproj

    * Update Kni solution to new project structure

    * Update Fna solution to new project structure

    * Bump version number to 4.0.0

    * Update release workflow

    * Remove old test

commit 3a5269cfeac8ab42ac3855139650d84919ed66d4
Author: Christopher Whitley <[email protected]>
Date:   Sat Jul 6 23:46:20 2024 -0400

    Reorganization (#909)

    * Removed MonoGame.Extended.Animations
    This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

    * Rework BitmapFonts for new project organization.

    * Cleanup namespaces

    * Cleanup namespaces

    * Move MonoGame.Extended.Collision into base project

    * Moved MonoGame.Extended.Entities into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Input into base project

    * Moved MonoGame.Extended.Particles into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tweening into base project

    * Removing SpriteFactory support
    This will be added back in at a later date once the SpriteFactory application has been updated

    * Update TexturePacker content import support

    * Only needs to reference base project now

    * Moved to Serialization namespace

    * Moved  Json serialization to Serialization.Json namespace

    * Moved TexturePacker content DTOs to the Content namespace

    * Renamed to Texture2DRegion.Extensions.cs

    * Cleaned up namespace

    * Moved ReadTiledMapProperties into the ContentReaderExtensions

    * Created an Extended content manager

    * Moved Tweening tests to base test project

    * Moved Tiled test to base test project

    * Moved Entities Tests to base test project

    * Moved Entities tests to base test project

    * Moved Collisions tests to base test project

    * Moved Pipeline Tiled test to Pipeline tests project

    * Use `var` instead of full type name

    * Add Tiled namespace

    * Correct `Metadata` property name to new `Meta` property name

    * Cleanup namespace

    * Add effects namespace

    * Add Content namespace

    * Update using statements to new namespaces

    * Move Pipeline Tiled tests to Pipeline test project

    * Use correct namespace

    * Use `var` instead of typing out nested types

    * Remove unused namespaces

    * Update to new namespaces

    * Remove unused namespaces

    * Update to new namespaces

    * Remove dependency on Particles csproj

    * Update included content on build

    * Add embedded resources

    * Merge multi csproj structure into single csproj structure

    * TexturePackerPoint properties should be `double` not `int`

    * Update csproj

    * Use dotnet tool to rebuild effects

    * Move effect compilation to targets file
    This will ensure the effects are always built

    * Fix workflow to build effects on linux

    * Set wine path

    * Export instead of using actions env section

    * Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

commit 00a0d4a343aa091076ceb3f2e3c9c12483666479
Author: James <[email protected]>
Date:   Sun Jul 7 13:45:59 2024 +1000

    Add pitch support to Camera & OrthographicCamera (#907)

    * Added pitch support to OrthographicCamera

    * Added pitch functions to base Camera class

commit 2ad7a9d3db28cc41694947703c36edfe518a171b
Author: Christopher Whitley <[email protected]>
Date:   Mon Jul 1 12:33:23 2024 -0400

    Update animated sprite so the constructor api is similar to original MGE (#906)

    * Update animated sprite so the constructor api is similar to original MGE

    * Fix tests from changes

commit 98ee05f58a1334811613bfcf560605e2bea71bd4
Author: Christopher Whitley <[email protected]>
Date:   Sat Jun 29 18:28:12 2024 -0400

    Moved MonoGame.Extended.Gui to its own repository (#905)

commit 1f3f1c5aa09fad03f3c168a64723dbbe77a5e995
Author: Christopher Whitley <[email protected]>
Date:   Sat Jun 29 17:50:43 2024 -0400

    Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

    * Replaced delegate with Action<T>

    * Change delegate to Action<T>

    * Add unit test to confirm issue

    * Fix NullReferenceException in ObjectPool when reusing all returned items

    The ObjectPool's Use() method was throwing a NullReferenceException when
    all items had been returned to the pool and New() was called again. This
    was due to _tailNode being null in this scenario.

    Added a null check for _tailNode in Use() method to properly reinitialize
    the linked list structure when the pool has been emptied and refilled.

commit 93473744d73016ceee8bf5bac2433fbec8893865
Author: Christopher Whitley <[email protected]>
Date:   Fri Jun 28 21:02:10 2024 -0400

    Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

    * Add test to validate issue

    * Resolve issue

commit 9614a622925f4f2e17d4c04bd44ab8fca003960d
Author: Christopher Whitley <[email protected]>
Date:   Mon Jun 24 19:08:26 2024 -0400

    Capitalize KNI (#899)

commit 5b2a44ad284ee31402f4b6852d04f2754b387b0e
Author: Christopher Whitley <[email protected]>
Date:   Mon Jun 24 19:04:33 2024 -0400

    Add Kni Package (#898)

commit a501f76162478bfc4f8b2d6e4faac15b67145dac
Author: Christopher Whitley <[email protected]>
Date:   Sun Jun 23 23:10:16 2024 -0400

    Sprite Rework (#897)

    * Add file header

    * Refator to file-scoped namespace

    * Least complex to most complext method ordering

    * Refactor: Group properties at top before constructor

    * Use the new UV properties from Texture2DRegion.
    This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

    * No longer need to cache normalized origin to preserve it

    * Use ArgumentNullException instead

    * Use ArgumentNullException.ThrowIfNull

    * Refactor:  Use brackets for readability

    * Add xml documentation

    * Add check for disposed texture

    * Moved `Sprite` to `MonoGame.Extended.Graphics`

    * Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

    * `ISpriteBatchDrawable` is not used by anything
    It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

    * Add `CreateSprite` methods

    * Add file header

    * Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

    * Move properties before constructor.

    * Changed `Duration` to `TimeSpan` type

    * Renamed `Index` to `FrameIndex`

    * Add `TextureRegion` property

    * Make property get only

    * Cleanup whitespace

    * Remove `SpriteSheetAnimationFrameJsonConverter`

    * Cleanup unused namespaces

    * Make file-scoped namespace

    * Added xml documentation

    * Added file header

    * marked constructor as internal.
    This will be created from a spritesheet itself

    * Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

    * File scoped namespace

    * Add file header

    * Reorganize: Move properties above constructor

    * Make `Frames` property a read-only span

    * Remove duration, this is being moved to the frame itself

    * Add `Name` property

    * Set looping, reversed, and ping pong properties in ctor

    * Make ctor internal
    This will be an object created by a spritesheet instane itself.

    * Cleanup: Whitespace

    * Add `FrameCount` property

    * Add `GetFrame` method and accompanying `this[int]` method.

    * Documentation: Added missing documentation.

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * Refactor: Animation Refactor Completed

    * Refactor: Sprite stuff finished

    * Remove tests that can't be run on GitHub CI
    Need to find alternative

    * Make optional name param the last param in Texture2DRegion ctors

    * Resolve merge conflicts

commit 4ecb74f6b6247130b6ae31ad1c6b2395b5416556
Author: Nikos Kastellanos <[email protected]>
Date:   Mon Jun 24 05:49:58 2024 +0300

    Fna.Extended (#893)

    * FNA projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * build tests

    * remove test for issue #633

    * FNA/XNA compatible

    * GraphicsDevice Extensions

    * remove MockGameWindow

    ---------

    Co-authored-by: Christopher Whitley <[email protected]>

commit 2bbdc38b51d5ff8017dee2721741885b4dcfe9f7
Author: Nikos Kastellanos <[email protected]>
Date:   Mon Jun 24 05:38:20 2024 +0300

    Kni.Extended (#892)

    * KNI projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * remove test for issue #633

    * build tests

    * KNI TypeReaders

    * KNI/XNA compatible code

    * GetRuntimeReader from runtime types

    * remove MockGameWindow

commit 8850875fb4453936ae6b803f5d71cf6cbf0a93ab
Author: Christopher Whitley <[email protected]>
Date:   Sat Jun 15 01:37:18 2024 -0400

    Texture Atlas Refactor (#890)

    * Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
    These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

    * Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

    * Moved `RectanglExtensions` to project root
    This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

    * Renamed to `Rectangle.Extensions.cs`

    * Separate `Rectangle` from `RectangleF` extensions

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Top-level namespace

    * Remove whitespace

    * Move properties up

    * Top-level namespace

    * Don't recreate structs for `Bounds` and Size`
    By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

    * Size should be `Size` not `SizeF` value
    Textures deal in pixels (ints not floats)

    * Removed setter for `Texture` property
    Texture should not be set after region is created

    * Added UV properties

    * Refactor constructors

    * Added documentation

    * Added license header

    * Make it an actual extension method

    * Added `GetSubRegion` extension methods for `TextureRegion`

    * Update documentation about ObjectDisposedException

    * Move const values to top

    * Resolve errors from`TextureRegion` refactor

    * Update unit tests for TextureRegion refactor

    * Started NinePatch rework

    * Refactored NinePatch

    * Update for texture region constructor change

    * Remove ninepatch from atlas

    * Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
    These are extension methods for the sprite batch

    * Updated to use new `DrawTextureRegion` method after rename

    * Renamed to NinePatchJsonConverter

    * Removed `GetRegion<T>`
    TextureAtlas no longer contains nine patch regions, so this method isn't needed

    * Update after `NinePatchRegion2DJsonConverter` name change

    * Resolve errors from NinePatch refactor

    * TextureAtlas rework

    * Renamed `TextureRegion` to `Texture2DRegion`

    * Moved ContentReaders to new Content\ContentReaders directory

    * Moved TextureAtlasJsonConvert to Serialization directory

    * Adjusted name from `Texture*` to `Texture2D*`

    * Update runtimereader and runtimettype strings

commit 9bd208184f28fcaa32c720d2dc3d14cd47cea9be
Author: Christopher Whitley <[email protected]>
Date:   Tue Jun 11 11:22:10 2024 -0400

    Update Changelog (#889)

    * Updated so all projects have changelog in root when viewing in visual studio

    * Updated changelog

commit 82daabb12005c6771f88baada3c09b918fbadacb
Author: Mike Bowers <[email protected]>
Date:   Tue Jun 11 11:14:36 2024 -0400

    Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

commit 66277568c826e5fc7e2a558496cf25e19cf50e50
Author: Christopher Whitley <[email protected]>
Date:   Tue Jun 11 00:25:10 2024 -0400

    Refactor `BitmapFont` (#887)

    * Update file header

    * Created initial project to move BitmapFont too

    * XMl, Text, and Binar reading now supported for BMFont

    * Refactor BittmapFont

    * Update content pipeline from BitmapFont refactor

    * Update changelog

commit 1f0235c605708c51c634152157471edca94a956f
Author: Christopher Whitley <[email protected]>
Date:   Mon Jun 3 00:30:29 2024 -0400

    Updated Changelog (#886)

    Added information about #885

commit 792aa89809236c938fb9ab4d5d460b4d38070e30
Author: Christopher Whitley <[email protected]>
Date:   Mon Jun 3 00:27:38 2024 -0400

    Copy Reference DLLs from NuGet Automatically (#885)

    * Pack value should be `true` not `True`

    * Copy content pipeline dll references to project directory for ease of use

    * Forgot `/` in path

commit d40ad10459341c0dcc13e629b898e6ed6b2187b1
Author: Christopher Whitley <[email protected]>
Date:   Sat Jun 1 17:34:24 2024 -0400

    Make links for users (#884)

commit 4675bff3d438646f759a7990016927835c8d0d30
Author: Christopher Whitley <[email protected]>
Date:   Sat Jun 1 17:22:23 2024 -0400

    Added changelog (#883)

    * Added changelog

    * Added note about unreleased

commit cfb97d47e37a27c5d5baee0cb2af6455b6396f89
Author: Nikos Kastellanos <[email protected]>
Date:   Sun Jun 2 00:12:56 2024 +0300

    use System ZLibStream (#882)

    ZLibStream was added in net6

    https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

commit 980d7a0c00281ec301cc80be9845b134bd9cd8e5
Author: Nikos Kastellanos <[email protected]>
Date:   Sun Jun 2 00:10:38 2024 +0300

    Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

    * remove unused SharpDX using

    introduces in #840

    * remove Content.Pipeline reference from the core library

    introduced in #692

commit 8810a4ce7e7261a8a40d05528048b975e55bf8f2
Author: Nikos Kastellanos <[email protected]>
Date:   Sun Jun 2 00:08:44 2024 +0300

    upgrade solution to VS2022 (#880)

    * update project types to net.Sdk

    * upgrade solution to VS2022

commit dcf1589066a8c04761c1f0184b2ec5197f26119d
Author: Christopher Whitley <[email protected]>
Date:   Sat Jun 1 17:05:51 2024 -0400

    Implements standard IDispose pattern (#879)

commit 1119f82ff61e150b6868cda0162ed54c15bf00e9
Author: Christopher Whitley <[email protected]>
Date:   Wed May 29 11:40:59 2024 -0400

    Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

commit b9c011bee92f9d0ab67dfd675d7611201c73e6d2
Author: Christopher Whitley <[email protected]>
Date:   Wed May 29 11:11:50 2024 -0400

    Added unit test to ensure issue is resolved (#876)

commit 9239fced04e8969fa10e4a33ca8f44f3a8e58979
Author: Christopher Whitley <[email protected]>
Date:   Wed May 29 01:32:50 2024 -0400

    Remove `Point2` (#875)

    * Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

    * Remove `Point2`

commit 0427aa3ded75e195e40410c7b60192ef5b50b57d
Author: Christopher Whitley <[email protected]>
Date:   Wed May 29 00:29:14 2024 -0400

    Remove `Point3` (#874)

commit 25206c57da3cc93f0b19ad179e327fd94679d34b
Author: Christopher Whitley <[email protected]>
Date:   Wed May 29 00:23:49 2024 -0400

    Rename `Size2` to `SizeF` (#873)

commit 27108ba8d0c58d93f6cd5e16f97728f5ef208c2c
Author: Christopher Whitley <[email protected]>
Date:   Wed May 29 00:01:26 2024 -0400

    Replace `Size3` with `Vector3` (#872)

commit 89c8984079c534c873aba1cf38f061ab16187605
Author: Christopher Whitley <[email protected]>
Date:   Mon May 27 17:58:54 2024 -0400

    Add Edge Test for `Polygon.Contains` (#871)

    * Added Assert for edge contains
    Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

    * Renamed to PolygonTests

commit 49038f5d428b03a13dc8e1010b6b6962ff51ca43
Author: Christopher Whitley <[email protected]>
Date:   Mon May 27 15:44:38 2024 -0400

    Replace `Matrix2` with `Matrix3x2` (#870)

    * Replace `Matrix2` with `Matrix3x2`

    * Update benchmarks

    * Add XML documentation for `Matrix3x2`

commit d008b1bd4104be237a156a15a46e5e11353bc262
Author: Christopher Whitley <[email protected]>
Date:   Wed May 22 23:23:36 2024 -0400

    Replace Newtonsoft.Json with System.Text.Json (#869)

    * Converted to use `System.Text.Json`

    * Remove Newtonsoft.Json Dependency
    Newtonsoft.Json dependency has been removed in favor of System.Text.Json

    * Treat MGFXO file as binary

commit ee0883ebb415a773bb5871202089adc8cc42c3a2
Author: Christopher Whitley <[email protected]>
Date:   Mon May 20 18:40:23 2024 -0400

    Update prerelease version (#868)

commit 0867284bd72651b56da840a5c8cdb13317c9dec7
Author: Christopher Whitley <[email protected]>
Date:   Mon May 20 18:32:46 2024 -0400

    Only specify source and prerelease (#867)

commit 7bda811f4a68b619bcb3d7d8ef43bde379ef2e62
Author: Christopher Whitley <[email protected]>
Date:   Mon May 20 18:21:00 2024 -0400

    Add additional input parameters (#866)

commit f8376db06a43c53f450c62e240f3a41c7583e520
Author: Christopher Whitley <[email protected]>
Date:   Mon May 20 18:19:24 2024 -0400

    Use ArtifactsPath to resolve include dlls for pack (#865)

commit 4d582fe850cde7abc0ebcddef19526bd2d78d47b
Author: Christopher Whitley <[email protected]>
Date:   Mon May 20 02:24:27 2024 -0400

    Fix funding (#864)

commit 43e313eb502157209b30a43b686ce91d81a8057b
Author: Christopher Whitley <[email protected]>
Date:   Mon May 20 02:20:55 2024 -0400

    Removed patreon added aristurtledev (#863)

commit 9a7ce46635ffcc7a135bb69a2280d56681d86909
Author: Christopher Whitley <[email protected]>
Date:   Mon May 20 02:12:43 2024 -0400

    Cleanup (#862)

    * Removed Roadmap
    The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

    * Added new note at top of readme

    * updated information for installing nuget

    * Made using content pipeline extensions a section and not a quote

    * Removed information about MyGet feed

    * Removed patreon from readme

    * Update License

    * renamed master branch to main

    * Remove community forum link
    MonoGame is closing the community forums in favor of discord and github discussions

    * Update workflows

commit 0a17af482983eb211a18e7335143fe4f3658e64b
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 16:23:26 2024 -0400

    Remove GitHub Deploy (#860)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove github push for now, need to check repository settings

commit c16d831088794b17dd002ec4486bba8a219c2b8a
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 16:17:05 2024 -0400

    Fix GitHub Nuget Push (#859)

    * Fix github url for nuget push

    * forgot the h in https

commit 8b34b0465194b50906db99db4f3b6890b7c24cac
Merge: 9c5f7cd3 8c09ca14
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 16:12:06 2024 -0400

    Merge pull request #858 from craftworkgames/reorg

    Reorginze project strcture

commit 8c09ca1495c023c901f78ccc1c885b623a24a34c
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 16:07:58 2024 -0400

    Correct spelling of minimal

commit 694b595694994a105666980c432b2f09493de193
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 15:53:41 2024 -0400

    Don't use nullable reference in a non-nullable context

commit f25d972b88ec5b2e6c26efdb6488a366684058d7
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 15:53:24 2024 -0400

    Setup code analysis with .editorconfig

commit 24d9477a0f41e9581f4c9ae49e5d593855ab73c0
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 15:28:33 2024 -0400

    Drop CAKE build and move Build CI to github workflow

commit 6b0297575505d42695c44b77dec8709ac3f6f711
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 15:27:43 2024 -0400

    Set ArtifactPath within the project category directory

commit 36eb2c66bc05f693d270b341527c40d598712312
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 15:25:54 2024 -0400

    Updated .gitignore

commit 8b991b804143a5d01f148bd04b152544f4c32645
Author: Christopher Whitley <[email protected]>
Date:   Sun May 19 15:25:36 2024 -0400

    Updated .gitattributes

commit 4bcf940e08681d4faf414c1a5179194b60d6526d
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:50:55 2024 -0400

    Use new .artifacts directory

commit 33be3682386d28eabd4892e5589e9a0713b8d19c
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:40:49 2024 -0400

    Read from props file not targets file.

commit 126b79dd42a11fc67ae4bb3e4fdada263e246b0e
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:40:34 2024 -0400

    Remove duplicate import statement

commit 7aa97cd90908dd6f0e7e28170e00f23289dfd604
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:40:22 2024 -0400

    Use correct working directory after moving

commit 85903027f0e7605948aeb1b01f9e3360021a9003
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:37:29 2024 -0400

    Renamed 'Logos' directory to 'logos'
    Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

commit 399236428cd9616b1c6b1779fc229e69867a4e14
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:33:19 2024 -0400

    nuget.config is not needed

commit a5f16a0cb969bdac09fa369f7d9ef713e051e40a
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:30:49 2024 -0400

    Update for new .artifacts directory

commit 00808876f1df29a14480dff65634288a3a4f5d6a
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:29:53 2024 -0400

    Removed targets file

commit a85188eb320c89cd9767ec064e38bba85fc832e8
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:29:48 2024 -0400

    Moved props from targets file

commit a5c18a6f70481df46470a0e5ccaa3a3b418ababe
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:15:58 2024 -0400

    Add props to build directory

commit 32bb9d560143599fad98f8adc58ae7fbc1ea0f2e
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:01:47 2024 -0400

    Add common props for source  directory

commit 2696b4f5f4e9284d681bb9b2676fddec6d228059
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 21:01:16 2024 -0400

    Added `<Authors>` to root props

commit a5209fecad095fb6e8f6bd289287ab6fd307b7e9
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 20:40:12 2024 -0400

    Add common props for all tests

commit f4aff0e6a1202aefd6f6e59f32d3f12680b66df7
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 20:39:58 2024 -0400

    Add root props file

commit 99b995d6b1457a57f755f2198059a97104f1e2c8
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 20:04:57 2024 -0400

    Moved build into build directory

commit 7e5ffdcf6b52ef2f1860fc64a17a231d94db3f25
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 20:02:59 2024 -0400

    Moved benchmarks into benchmark directory

commit f68cff17bf6b0e1c11f242b4090a41badd26caf9
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 20:01:37 2024 -0400

    Moved tests into test directory

commit a4d72eaf6c2d8c8f30343b6f37e19c23f68a4c4e
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 19:59:41 2024 -0400

    Move source projects into source directory

commit 9c5f7cd3b441ec04c178135429a04f8b35fd29b3
Merge: 455ea4d5 55bfe25c
Author: Christopher Whitley <[email protected]>
Date:   Sat May 18 15:30:58 2024 -0400

    Merge pull request #846 from tigurx/tiled_animation_flip_fix

    Fixes incorrect rendering of flipped animation tiles

commit 55bfe25c94aa8ea0fc6169fb69a4ab9a30d8c584
Merge: a7b0a123 aea6ee4c
Author: jimmy b <[email protected]>
Date:   Sat May 18 13:17:47 2024 -0500

    Merge branch 'tiled_animation_flip_fix' of https://github.com/tigurx/MonoGame.Extended into tiled_animation_flip_fix

commit aea6ee4c91139d585f5fee94ec38481e5120aaf9
Merge: 021949fe 455ea4d5
Author: tigurx <[email protected]>
Date:   Sat May 18 13:15:19 2024 -0500

    Merge branch 'craftworkgames:develop' into tiled_animation_flip_fix

commit a7b0a123831550f57ddb13b21da8584c63d9f995
Author: jimmy b <[email protected]>
Date:   Sat May 18 13:14:32 2024 -0500

    Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

commit 455ea4d561d7efe6ab7100a7f0fcbbb403f301f2
Merge: d650e64b 6c6d00e2
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 22:24:58 2024 -0400

    Merge pull request #857 from AristurtleDev/reorg

    Move build, benchmarks and tweening test into `/src/cs` directory

commit 6c6d00e2345df0711717b69dca0b6be42ed30f91
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 22:22:48 2024 -0400

    Capital B

commit 0ff198c75faebb156aff4aa6b8bc70d757c400b4
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 22:19:57 2024 -0400

    Fix path for project on build task

commit b935e2318e2a26fc3a96abecc695942eddb5be7c
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 22:16:03 2024 -0400

    Fix project reference

commit a99c384d153fbf0fe1c85d5831dca18408b78b0c
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 22:15:54 2024 -0400

    Move build into `/src/cs`

commit 021949fe8f1c436c1ff1e07b849659525fa33fa9
Merge: a166f340 d650e64b
Author: tigurx <[email protected]>
Date:   Fri May 17 14:23:23 2024 -0500

    Merge branch 'craftworkgames:develop' into tiled_animation_flip_fix

commit 2c13bf193321ed91c6e0965366948213d53b144b
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 12:05:09 2024 -0400

    Moved to `/src/cs`
    Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

commit d650e64b4447e7fe9f388b0780bce5ab8d22fa83
Merge: 0a25e0bd ed2371b5
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 10:38:51 2024 -0400

    Merge pull request #856 from AristurtleDev/disable/myget-feed

    Removing MyGet Feed Deploy

commit ed2371b55a0b3504a9dbae3ed1805ef073aa7ec7
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 10:31:28 2024 -0400

    Removing MyGet Feed Deploy
    Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

commit 0a25e0bdf7b6e355760d40ae9db2f748fbe4fb0f
Merge: 04283d58 72e4490a
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 10:19:01 2024 -0400

    Merge pull request #852 from AristurtleDev/fix/intersetcs-recursion-bug

    Resolves Infinite Recursion with Shape.Intersects(this IShapeF, IShapeF)

commit 04283d58eecb5dce23d598ff4add32867a9f19f1
Merge: 4da89293 cd4a47ae
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 10:18:17 2024 -0400

    Merge pull request #854 from AristurtleDev/fix/update-newtonsoft-dependency

    Update Newtonsoft.Json.dll Dependency

commit cd4a47ae358ecedb66f66521055e0dfd070a480f
Author: Christopher Whitley <[email protected]>
Date:   Fri May 17 00:05:13 2024 -0400

    Update Newtonsoft.Json.dll Dependency

commit 72e4490ab9924d062658c8d094f0d4d3cb6e6bbb
Author: Christopher Whitley <[email protected]>
Date:   Thu May 16 23:08:33 2024 -0400

    Call RectangleF.Intersects to resolve recursion bug
    When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

commit 4da89293110149a02c19bf4b179da5114c241f10
Merge: 0dd85c7d e6e26d28
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 28 20:58:39 2024 +0300

    Merge pull request #815 from LilithSilver/rename-wasbutton

    Improve naming of WasKeyJustDown/Up and WasButtonJustDown/Up

commit e6e26d28fc41cbe1127451d0b2a74b83b5d554c9
Merge: 7b8be4ce 0dd85c7d
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 28 20:58:25 2024 +0300

    Merge branch 'develop' into rename-wasbutton

commit 0dd85c7d8063aeafb3de7ca681a68c8c04e1c60a
Merge: 0012e0e9 0fe364a2
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 28 19:54:50 2024 +0300

    Merge pull request #820 from LilithSilver/add-missing-getpressedkeys

    Decrease allocation overhead on KeyboardStateExtended

commit a166f34078ebb1b64d4548eec1ad077af795bd77
Author: jimmy b <[email protected]>
Date:   Sun Apr 28 11:39:21 2024 -0500

    Fixes incorrect rendering of flipped animation tiles

commit 0012e0e988202c4057c2eb899c374cc22dc18b47
Merge: a19b1e68 a342fedf
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 28 19:26:47 2024 +0300

    Merge pull request #840 from toore/feature-oriented-bounding-rectangle

    Add oriented rectangle shape for improved collision detection

commit a19b1e688162f83a34e1747522f199484c48765d
Merge: bde79b89 6cc4b6cb
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 28 16:08:59 2024 +0300

    Merge pull request #839 from safoster88/feature/check_for_undefined_layer

    Check for undefined layer and throw on collision actor insertion

commit a342fedfd7ea3a1b7b8c0ad9a3d75a3c01e7b74e
Author: Andreas Torebring <[email protected]>
Date:   Fri Mar 15 21:27:14 2024 +0100

    Calc coll vector for oriented rects

commit 377df892471fd282843b5521b4f8e095f7e7bfb2
Author: Andreas Torebring <[email protected]>
Date:   Sun Mar 10 21:23:21 2024 +0100

    Calc coll vector for circle and oriented rect

commit bf1159d9f3979193be185c16856768678585be97
Author: Andreas Torebring <[email protected]>
Date:   Fri Mar 8 18:16:03 2024 +0100

    Properly intersect circle and oriented rect

commit 6a380e381bf9fb370b2fb875ccab14987c4db8b5
Author: Andreas Torebring <[email protected]>
Date:   Thu Feb 29 22:11:57 2024 +0100

    Rename to OrientedRectangle

commit 1d878727ec377e83e727b006751c89cc55c3f9f2
Author: Andreas Torebring <[email protected]>
Date:   Sat Feb 24 00:40:30 2024 +0100

    Add Intersects method for OBB

commit 9007c6bd553b2e122610df106dfe1830f54f02a3
Author: Andreas Torebring <[email protected]>
Date:   Sun Feb 11 19:26:54 2024 +0100

    Update dependencies

commit 0a2ce121349016e6b752b60e0f88ff24276d7046
Author: Andreas Torebring <[email protected]>
Date:   Sun Aug 6 19:32:01 2023 +0200

    Update circle and oriented bound box intersection

commit c1873c2dec0fa35cbdcca0545e05f146230932ba
Author: Andreas Torebring <[email protected]>
Date:   Mon Nov 21 22:57:55 2022 +0100

    Add ascii art to describe intersection tests

commit 82303e48b18ac66980479a78eeada200be87b874
Author: Andreas Torebring <[email protected]>
Date:   Mon Sep 19 21:55:00 2022 +0200

    OrientedBoundedRectangle implements ShapeF

    In that way the OrientedBoundedRectangle can take part of collision tests.

commit 135507e8504d92793db233ed63f5884461b8916a
Author: Andreas Torebring <[email protected]>
Date:   Mon Sep 19 21:18:33 2022 +0200

    Be explicit about conversion of geometries

    Conversion from circle to rectangle should not pass unnoted and be explicit.

commit b85f5262759b02f055f3345d257d8eaf2a41a5c2
Author: Andreas Torebring <[email protected]>
Date:   Wed Feb 7 21:55:52 2024 +0100

    Ignore Visual Studio cache

commit db807cd659b3c89bbfc80c5eca05350a3d668c4a
Author: Andreas Torebring <[email protected]>
Date:   Wed Sep 7 01:56:47 2022 +0200

    Add Points property to OrientedBoundingRectangle

commit 88a51a6f685f543b154c39f43f2e477f89d52b57
Author: Andreas Torebring <[email protected]>
Date:   Mon Sep 5 19:24:24 2022 +0200

    Add OrientedBoundingRectangle type

commit bde79b89970010e29e2204042ac717246b20073b
Merge: 68c0b3d7 5b858d45
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 7 23:20:37 2024 +0300

    Merge pull request #819 from Asthegor/patch-1

    Update PrimitiveDrawing.cs

commit 68c0b3d73610774aeb55f6a7352b0cd32dd05e81
Merge: 37026922 9c0865a2
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 7 23:16:37 2024 +0300

    Merge pull request #818 from KatDevsGames/pipeline-update-map-layer-tilemap-class

    support type/class field in maps, layers, & tilemaps

commit 9c0865a2ae696660514bdbb53e11de77c7b183fc
Merge: 3011110b 37026922
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 7 23:16:31 2024 +0300

    Merge branch 'develop' into pipeline-update-map-layer-tilemap-class

commit 37026922e16424aa4e0e981e9c32133a6b43e503
Merge: 51aea6c8 ce0a1a2f
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 7 23:15:13 2024 +0300

    Merge pull request #817 from KatDevsGames/pipeline-update-class-properties

    add support for class (nested) properties

commit ce0a1a2f8c0b27730f8f8329dc53b839831deaaa
Merge: fba908f4 51aea6c8
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 7 23:12:01 2024 +0300

    Merge branch 'develop' into pipeline-update-class-properties

commit 51aea6c84a655f07f584aa6ddab27cdf2f57f016
Merge: 6acc822b c4e4ecb4
Author: Max Kopjev <[email protected]>
Date:   Sun Apr 7 21:19:19 2024 +0300

    Merge pull request #834 from Apllify/fix-hsl-lerp

    Fixed HSL Lerp function

commit 6cc4b6cb967bf9a849d03cc0815bd173bdb83268
Author: Stephen <[email protected]>
Date:   Sat Feb 17 13:25:11 2024 +0000

    Add test coverage

commit 8d95d499246741b075ffa2e3fb6cfdd0119d91ef
Author: Stephen <[email protected]>
Date:   Sat Feb 17 13:15:56 2024 +0000

    Check for undefined layer and throw on collision actor insertion

commit 6acc822be1a482ab06045ab5f49f76bf4eddb831
Merge: c4f9b3cd 79a20706
Author: Max Kopjev <[email protected]>
Date:   Mon Jan 22 19:12:29 2024 +0100

    Merge pull request #837 from craftworkgames/tweener_enchancing3

    Tweener enchancing3

commit 79a20706b191d29ce576cc0cab2fdc18f389af9e
Author: Gandifil <[email protected]>
Date:   Mon Jan 22 21:11:44 2024 +0300

    Fix activator inside tweener.

commit e93ec550c448db1ddee148fad81afbdb78fb33b1
Author: Gandifil <[email protected]>
Date:   Mon Jan 22 21:11:30 2024 +0300

    Add tweening tests

commit c4f9b3cddc2a497315eef8620347aefb904a4dcc
Merge: bb8a70c6 4383bb81
Author: Max Kopjev <[email protected]>
Date:   Mon Jan 22 18:26:28 2024 +0100

    Merge pull request #836 from craftworkgames/tweener_enchancing2

    Fix TweenTo

commit 4383bb811336d3aaca54d827a9b0965e83d40fdf
Author: Gandifil <[email protected]>
Date:   Mon Jan 22 20:26:00 2024 +0300

    Fix TweenTo

commit bb8a70c607484107c5865b61da863ef19d75a4da
Merge: 801196c3 a2e3aacb
Author: Max Kopjev <GandifilM…
AristurtleDev added a commit that referenced this pull request Jul 9, 2024
* Version 4.0.0 Release (#911)

* Remove duplicate fact

* Add .user file to gitignore

* Assert Rectangle translation transform

* Assert Rectangle transform not changing size

* Rectangle extents are rotated correctly

* Rebuilt effects with mgfxc 3.8.1.303

* Uncomment and fix tests

* Remove tests always passing

* Issue 707, Created test for null ptr during entity destroy

* Issue 707, Added null propagation inside component manager destroy method

* Create VelocityInterpolator

Allow particles to change velocity as they age.

* add power of two values to MouseButton

* Add parallaxFactor of layers in models.

* Add parallaxFactor in rendering logic.

* Add checking event == 'push'

* Fix looping animations incorrectly completing when an update contains a large elapsed time.
Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
Add unit tests for SpriteSheetAnimation.

* Update README.md

* Use actual target bounds when testing collision

* Cleanup

* Refactor

Encapsulate a public property (Parents).
Added xml-comments (to fix some compilation warnings)

* Format comments and fix spelling

* Add comments for public fields and properties

* fix Bag so that it doesn't allocate during foreach enumeration

* add bag allocation test

* make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

* add support for class (nested) properties

* support type/class field in maps, layers, & tilemaps

* Update PrimitiveDrawing.cs

Add a new DrawSolidCircle to add a fill color

* fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

* Use Directory.Build.targets
Moved common csproj properties for NuGet into Directory.Build.targets

* Added version tag
This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

* PackageIconUrl is deprecated
NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

* Pack README.md in NuGet packages

* Add common tags for NuGet packages
Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

* Added new Cake Frosting project

* Cleaned up
Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

* Added BuildContext

* Added BuildTask

* Added Test Task

* Added Package Task

* Added Default task

* Added namespace

* Cleanup using statements

* Ignore cake output directory

* Updated and automated for NuGet pushing

* Check for GCLatencyMode.NoGCRegion
This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

* Forgot to add System.Runtime using statement

* Better name for package step

* NuGet Deploy only in craftworksgames repo

* Enable Nullable in build project

* Add additional context variables for build script

* Use same verbosity, restore, and logo flags as originally used

* Use same verbosity and nologo setting as original

* Created Restore task

Uses same verbosity as original workflow did

* Update TestTask to use same verbosity, nologo, and nobuild as original workflow

* Create DeployToGithubTask

* Create DeployToMyGetTask

* Create DeployToNuGetTask

* Added Deploy task

* Simplify, move most logic into cake build script

* Ignore Missing XML comment warnings on build

* Remove async, ignore NU5118 on package

* Apparently i forgot a semi colon....

* Remove old collision code.

* Move collision code to root folder

* Fix namespaces

* Add failing test for collisions.

* Add benchmarks for collisions

* Refactor collision update, correct reset map

* Add BoundingRectanglle property for IShape

* Refactor QuadTree - now we use static AABB intersection check

* Add layers for collisions

* Add interface for space splitting and impls

* Refactor layers for new interface

* Add comments for collision actor.

* Add comments for space algo interface.

* Add spatialHash algo for collision spacing

* Rename Quadtree to QuadTree

* Add inline for private methods of SpatialHash.cs

* Refactor benchmarks for collisions.

* Fix tests

* Refactor layers.

* Add method for set default layer

* Fix ctor call's

* Add constructor for CollisionComponent.cs

* Add extentions for ContentImporter.

* Add speical contentItem for referencing images.

* Fix tiledMap processing and writing.

* Add texture for tile.

* Add image tileset support

* Fix using ctor from remote

* Fix version

* Fix CiCD

* Add copy constructor for KeyboardListener.

* Revert "Add copy constructor for KeyboardListener."

* Add serializer for RectangleF

* Add test for new serizalizer

* Add RectangleFJsonConverter for default serializer.

* Fixed HSL lerp

* Move extracting linear operations into special class.

* Move impls of linear tweening into special class.

* Add ColorTween

* Add special TweenTo.

* Fix TweenTo

* Add tweening tests

* Fix activator inside tweener.

* Check for undefined layer and throw on collision actor insertion

* Add test coverage

* Add OrientedBoundingRectangle type

* Add Points property to OrientedBoundingRectangle

* Ignore Visual Studio cache

* Be explicit about conversion of geometries

Conversion from circle to rectangle should not pass unnoted and be explicit.

* OrientedBoundedRectangle implements ShapeF

In that way the OrientedBoundedRectangle can take part of collision tests.

* Add ascii art to describe intersection tests

* Update circle and oriented bound box intersection

* Update dependencies

* Add Intersects method for OBB

* Rename to OrientedRectangle

* Properly intersect circle and oriented rect

* Calc coll vector for circle and oriented rect

* Calc coll vector for oriented rects

* Fixes incorrect rendering of flipped animation tiles

* Call RectangleF.Intersects to resolve recursion bug
When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

* Update Newtonsoft.Json.dll Dependency

* Removing MyGet Feed Deploy
Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

* Moved to `/src/cs`
Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

* Move build into `/src/cs`

* Fix project reference

* Fix path for project on build task

* Capital B

* Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

* Move source projects into source directory

* Moved tests into test directory

* Moved benchmarks into benchmark directory

* Moved build into build directory

* Add root props file

* Add common props for all tests

* Added `<Authors>` to root props

* Add common props for source  directory

* Add props to build directory

* Moved props from targets file

* Removed targets file

* Update for new .artifacts directory

* nuget.config is not needed

* Renamed 'Logos' directory to 'logos'
Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

* Use correct working directory after moving

* Remove duplicate import statement

* Read from props file not targets file.

* Use new .artifacts directory

* Updated .gitattributes

* Updated .gitignore

* Set ArtifactPath within the project category directory

* Drop CAKE build and move Build CI to github workflow

* Setup code analysis with .editorconfig

* Don't use nullable reference in a non-nullable context

* Correct spelling of minimal

* Fix GitHub Nuget Push (#859)

* Fix github url for nuget push

* forgot the h in https

* Remove GitHub Deploy (#860)

* Fix github url for nuget push

* forgot the h in https

* Remove github push for now, need to check repository settings

* Cleanup (#862)

* Removed Roadmap
The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

* Added new note at top of readme

* updated information for installing nuget

* Made using content pipeline extensions a section and not a quote

* Removed information about MyGet feed

* Removed patreon from readme

* Update License

* renamed master branch to main

* Remove community forum link
MonoGame is closing the community forums in favor of discord and github discussions

* Update workflows

* Removed patreon added aristurtledev (#863)

* Fix funding (#864)

* Use ArtifactsPath to resolve include dlls for pack (#865)

* Add additional input parameters (#866)

* Only specify source and prerelease (#867)

* Update prerelease version (#868)

* Replace Newtonsoft.Json with System.Text.Json (#869)

* Converted to use `System.Text.Json`

* Remove Newtonsoft.Json Dependency
Newtonsoft.Json dependency has been removed in favor of System.Text.Json

* Treat MGFXO file as binary

* Replace `Matrix2` with `Matrix3x2` (#870)

* Replace `Matrix2` with `Matrix3x2`

* Update benchmarks

* Add XML documentation for `Matrix3x2`

* Add Edge Test for `Polygon.Contains` (#871)

* Added Assert for edge contains
Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

* Renamed to PolygonTests

* Replace `Size3` with `Vector3` (#872)

* Rename `Size2` to `SizeF` (#873)

* Remove `Point3` (#874)

* Remove `Point2` (#875)

* Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

* Remove `Point2`

* Added unit test to ensure issue is resolved (#876)

* Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

* Implements standard IDispose pattern (#879)

* upgrade solution to VS2022 (#880)

* update project types to net.Sdk

* upgrade solution to VS2022

* Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

* remove unused SharpDX using

introduces in #840

* remove Content.Pipeline reference from the core library

introduced in #692

* use System ZLibStream (#882)

ZLibStream was added in net6

https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

* Added changelog (#883)

* Added changelog

* Added note about unreleased

* Make links for users (#884)

* Copy Reference DLLs from NuGet Automatically (#885)

* Pack value should be `true` not `True`

* Copy content pipeline dll references to project directory for ease of use

* Forgot `/` in path

* Updated Changelog (#886)

Added information about #885

* Refactor `BitmapFont` (#887)

* Update file header

* Created initial project to move BitmapFont too

* XMl, Text, and Binar reading now supported for BMFont

* Refactor BittmapFont

* Update content pipeline from BitmapFont refactor

* Update changelog

* Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

* Update Changelog (#889)

* Updated so all projects have changelog in root when viewing in visual studio

* Updated changelog

* Texture Atlas Refactor (#890)

* Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

* Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

* Moved `RectanglExtensions` to project root
This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

* Renamed to `Rectangle.Extensions.cs`

* Separate `Rectangle` from `RectangleF` extensions

* Added `GetRelativeRectangle` method

* Updated documentation

* Added `GetRelativeRectangle` method

* Updated documentation

* Top-level namespace

* Remove whitespace

* Move properties up

* Top-level namespace

* Don't recreate structs for `Bounds` and Size`
By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

* Size should be `Size` not `SizeF` value
Textures deal in pixels (ints not floats)

* Removed setter for `Texture` property
Texture should not be set after region is created

* Added UV properties

* Refactor constructors

* Added documentation

* Added license header

* Make it an actual extension method

* Added `GetSubRegion` extension methods for `TextureRegion`

* Update documentation about ObjectDisposedException

* Move const values to top

* Resolve errors from`TextureRegion` refactor

* Update unit tests for TextureRegion refactor

* Started NinePatch rework

* Refactored NinePatch

* Update for texture region constructor change

* Remove ninepatch from atlas

* Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
These are extension methods for the sprite batch

* Updated to use new `DrawTextureRegion` method after rename

* Renamed to NinePatchJsonConverter

* Removed `GetRegion<T>`
TextureAtlas no longer contains nine patch regions, so this method isn't needed

* Update after `NinePatchRegion2DJsonConverter` name change

* Resolve errors from NinePatch refactor

* TextureAtlas rework

* Renamed `TextureRegion` to `Texture2DRegion`

* Moved ContentReaders to new Content\ContentReaders directory

* Moved TextureAtlasJsonConvert to Serialization directory

* Adjusted name from `Texture*` to `Texture2D*`

* Update runtimereader and runtimettype strings

* Kni.Extended (#892)

* KNI projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* remove test for issue #633

* build tests

* KNI TypeReaders

* KNI/XNA compatible code

* GetRuntimeReader from runtime types

* remove MockGameWindow

* Fna.Extended (#893)

* FNA projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* build tests

* remove test for issue #633

* FNA/XNA compatible

* GraphicsDevice Extensions

* remove MockGameWindow

---------

Co-authored-by: Christopher Whitley <[email protected]>

* Sprite Rework (#897)

* Add file header

* Refator to file-scoped namespace

* Least complex to most complext method ordering

* Refactor: Group properties at top before constructor

* Use the new UV properties from Texture2DRegion.
This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

* No longer need to cache normalized origin to preserve it

* Use ArgumentNullException instead

* Use ArgumentNullException.ThrowIfNull

* Refactor:  Use brackets for readability

* Add xml documentation

* Add check for disposed texture

* Moved `Sprite` to `MonoGame.Extended.Graphics`

* Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

* `ISpriteBatchDrawable` is not used by anything
It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

* Add `CreateSprite` methods

* Add file header

* Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

* Move properties before constructor.

* Changed `Duration` to `TimeSpan` type

* Renamed `Index` to `FrameIndex`

* Add `TextureRegion` property

* Make property get only

* Cleanup whitespace

* Remove `SpriteSheetAnimationFrameJsonConverter`

* Cleanup unused namespaces

* Make file-scoped namespace

* Added xml documentation

* Added file header

* marked constructor as internal.
This will be created from a spritesheet itself

* Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

* File scoped namespace

* Add file header

* Reorganize: Move properties above constructor

* Make `Frames` property a read-only span

* Remove duration, this is being moved to the frame itself

* Add `Name` property

* Set looping, reversed, and ping pong properties in ctor

* Make ctor internal
This will be an object created by a spritesheet instane itself.

* Cleanup: Whitespace

* Add `FrameCount` property

* Add `GetFrame` method and accompanying `this[int]` method.

* Documentation: Added missing documentation.

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* Refactor: Animation Refactor Completed

* Refactor: Sprite stuff finished

* Remove tests that can't be run on GitHub CI
Need to find alternative

* Make optional name param the last param in Texture2DRegion ctors

* Resolve merge conflicts

* Add Kni Package (#898)

* Capitalize KNI (#899)

* Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

* Add test to validate issue

* Resolve issue

* Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

* Replaced delegate with Action<T>

* Change delegate to Action<T>

* Add unit test to confirm issue

* Fix NullReferenceException in ObjectPool when reusing all returned items

The ObjectPool's Use() method was throwing a NullReferenceException when
all items had been returned to the pool and New() was called again. This
was due to _tailNode being null in this scenario.

Added a null check for _tailNode in Use() method to properly reinitialize
the linked list structure when the pool has been emptied and refilled.

* Moved MonoGame.Extended.Gui to its own repository (#905)

* Update animated sprite so the constructor api is similar to original MGE (#906)

* Update animated sprite so the constructor api is similar to original MGE

* Fix tests from changes

* Add pitch support to Camera & OrthographicCamera (#907)

* Added pitch support to OrthographicCamera

* Added pitch functions to base Camera class

* Reorganization (#909)

* Removed MonoGame.Extended.Animations
This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

* Rework BitmapFonts for new project organization.

* Cleanup namespaces

* Cleanup namespaces

* Move MonoGame.Extended.Collision into base project

* Moved MonoGame.Extended.Entities into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Input into base project

* Moved MonoGame.Extended.Particles into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tweening into base project

* Removing SpriteFactory support
This will be added back in at a later date once the SpriteFactory application has been updated

* Update TexturePacker content import support

* Only needs to reference base project now

* Moved to Serialization namespace

* Moved  Json serialization to Serialization.Json namespace

* Moved TexturePacker content DTOs to the Content namespace

* Renamed to Texture2DRegion.Extensions.cs

* Cleaned up namespace

* Moved ReadTiledMapProperties into the ContentReaderExtensions

* Created an Extended content manager

* Moved Tweening tests to base test project

* Moved Tiled test to base test project

* Moved Entities Tests to base test project

* Moved Entities tests to base test project

* Moved Collisions tests to base test project

* Moved Pipeline Tiled test to Pipeline tests project

* Use `var` instead of full type name

* Add Tiled namespace

* Correct `Metadata` property name to new `Meta` property name

* Cleanup namespace

* Add effects namespace

* Add Content namespace

* Update using statements to new namespaces

* Move Pipeline Tiled tests to Pipeline test project

* Use correct namespace

* Use `var` instead of typing out nested types

* Remove unused namespaces

* Update to new namespaces

* Remove unused namespaces

* Update to new namespaces

* Remove dependency on Particles csproj

* Update included content on build

* Add embedded resources

* Merge multi csproj structure into single csproj structure

* TexturePackerPoint properties should be `double` not `int`

* Update csproj

* Use dotnet tool to rebuild effects

* Move effect compilation to targets file
This will ensure the effects are always built

* Fix workflow to build effects on linux

* Set wine path

* Export instead of using actions env section

* Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

* Make CurrentFrame return the actual frame index from the source atlas

* Start the animation controller playing, don't make the consumer manually call it initially

* Play is automatically called in the controller ctor

* Added property to get name of current animation

* Only copy reference files if user opts in by specifying property in csproj

* Update Kni solution to new project structure

* Update Fna solution to new project structure

* Bump version number to 4.0.0

* Update release workflow

* Remove old test

---------

Co-authored-by: Andreas Torebring <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Matt Johnson <[email protected]>
Co-authored-by: Kus <[email protected]>
Co-authored-by: slakedclay <[email protected]>
Co-authored-by: Cairo Batista <[email protected]>
Co-authored-by: Gandifil <[email protected]>
Co-authored-by: David Fidge <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Lilith Silver <anon>
Co-authored-by: KatDevsGames <[email protected]>
Co-authored-by: LACOMBE Dominique <[email protected]>
Co-authored-by: Apllify <[email protected]>
Co-authored-by: Stephen <[email protected]>
Co-authored-by: jimmy b <[email protected]>
Co-authored-by: Nikos Kastellanos <[email protected]>
Co-authored-by: Mike Bowers <[email protected]>
Co-authored-by: James <[email protected]>

* Release/v4 (#913)

* Assert Rectangle transform not changing size

* Rectangle extents are rotated correctly

* Rebuilt effects with mgfxc 3.8.1.303

* Uncomment and fix tests

* Remove tests always passing

* Issue 707, Created test for null ptr during entity destroy

* Issue 707, Added null propagation inside component manager destroy method

* Create VelocityInterpolator

Allow particles to change velocity as they age.

* add power of two values to MouseButton

* Add parallaxFactor of layers in models.

* Add parallaxFactor in rendering logic.

* Add checking event == 'push'

* Fix looping animations incorrectly completing when an update contains a large elapsed time.
Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
Add unit tests for SpriteSheetAnimation.

* Update README.md

* Use actual target bounds when testing collision

* Cleanup

* Refactor

Encapsulate a public property (Parents).
Added xml-comments (to fix some compilation warnings)

* Format comments and fix spelling

* Add comments for public fields and properties

* fix Bag so that it doesn't allocate during foreach enumeration

* add bag allocation test

* make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

* add support for class (nested) properties

* support type/class field in maps, layers, & tilemaps

* Update PrimitiveDrawing.cs

Add a new DrawSolidCircle to add a fill color

* fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

* Use Directory.Build.targets
Moved common csproj properties for NuGet into Directory.Build.targets

* Added version tag
This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

* PackageIconUrl is deprecated
NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

* Pack README.md in NuGet packages

* Add common tags for NuGet packages
Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

* Added new Cake Frosting project

* Cleaned up
Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

* Added BuildContext

* Added BuildTask

* Added Test Task

* Added Package Task

* Added Default task

* Added namespace

* Cleanup using statements

* Ignore cake output directory

* Updated and automated for NuGet pushing

* Check for GCLatencyMode.NoGCRegion
This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

* Forgot to add System.Runtime using statement

* Better name for package step

* NuGet Deploy only in craftworksgames repo

* Enable Nullable in build project

* Add additional context variables for build script

* Use same verbosity, restore, and logo flags as originally used

* Use same verbosity and nologo setting as original

* Created Restore task

Uses same verbosity as original workflow did

* Update TestTask to use same verbosity, nologo, and nobuild as original workflow

* Create DeployToGithubTask

* Create DeployToMyGetTask

* Create DeployToNuGetTask

* Added Deploy task

* Simplify, move most logic into cake build script

* Ignore Missing XML comment warnings on build

* Remove async, ignore NU5118 on package

* Apparently i forgot a semi colon....

* Remove old collision code.

* Move collision code to root folder

* Fix namespaces

* Add failing test for collisions.

* Add benchmarks for collisions

* Refactor collision update, correct reset map

* Add BoundingRectanglle property for IShape

* Refactor QuadTree - now we use static AABB intersection check

* Add layers for collisions

* Add interface for space splitting and impls

* Refactor layers for new interface

* Add comments for collision actor.

* Add comments for space algo interface.

* Add spatialHash algo for collision spacing

* Rename Quadtree to QuadTree

* Add inline for private methods of SpatialHash.cs

* Refactor benchmarks for collisions.

* Fix tests

* Refactor layers.

* Add method for set default layer

* Fix ctor call's

* Add constructor for CollisionComponent.cs

* Add extentions for ContentImporter.

* Add speical contentItem for referencing images.

* Fix tiledMap processing and writing.

* Add texture for tile.

* Add image tileset support

* Fix using ctor from remote

* Fix version

* Fix CiCD

* Add copy constructor for KeyboardListener.

* Revert "Add copy constructor for KeyboardListener."

* Add serializer for RectangleF

* Add test for new serizalizer

* Add RectangleFJsonConverter for default serializer.

* Fixed HSL lerp

* Move extracting linear operations into special class.

* Move impls of linear tweening into special class.

* Add ColorTween

* Add special TweenTo.

* Fix TweenTo

* Add tweening tests

* Fix activator inside tweener.

* Check for undefined layer and throw on collision actor insertion

* Add test coverage

* Add OrientedBoundingRectangle type

* Add Points property to OrientedBoundingRectangle

* Ignore Visual Studio cache

* Be explicit about conversion of geometries

Conversion from circle to rectangle should not pass unnoted and be explicit.

* OrientedBoundedRectangle implements ShapeF

In that way the OrientedBoundedRectangle can take part of collision tests.

* Add ascii art to describe intersection tests

* Update circle and oriented bound box intersection

* Update dependencies

* Add Intersects method for OBB

* Rename to OrientedRectangle

* Properly intersect circle and oriented rect

* Calc coll vector for circle and oriented rect

* Calc coll vector for oriented rects

* Fixes incorrect rendering of flipped animation tiles

* Call RectangleF.Intersects to resolve recursion bug
When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

* Update Newtonsoft.Json.dll Dependency

* Removing MyGet Feed Deploy
Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

* Moved to `/src/cs`
Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

* Move build into `/src/cs`

* Fix project reference

* Fix path for project on build task

* Capital B

* Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

* Move source projects into source directory

* Moved tests into test directory

* Moved benchmarks into benchmark directory

* Moved build into build directory

* Add root props file

* Add common props for all tests

* Added `<Authors>` to root props

* Add common props for source  directory

* Add props to build directory

* Moved props from targets file

* Removed targets file

* Update for new .artifacts directory

* nuget.config is not needed

* Renamed 'Logos' directory to 'logos'
Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

* Use correct working directory after moving

* Remove duplicate import statement

* Read from props file not targets file.

* Use new .artifacts directory

* Updated .gitattributes

* Updated .gitignore

* Set ArtifactPath within the project category directory

* Drop CAKE build and move Build CI to github workflow

* Setup code analysis with .editorconfig

* Don't use nullable reference in a non-nullable context

* Correct spelling of minimal

* Fix GitHub Nuget Push (#859)

* Fix github url for nuget push

* forgot the h in https

* Remove GitHub Deploy (#860)

* Fix github url for nuget push

* forgot the h in https

* Remove github push for now, need to check repository settings

* Cleanup (#862)

* Removed Roadmap
The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

* Added new note at top of readme

* updated information for installing nuget

* Made using content pipeline extensions a section and not a quote

* Removed information about MyGet feed

* Removed patreon from readme

* Update License

* renamed master branch to main

* Remove community forum link
MonoGame is closing the community forums in favor of discord and github discussions

* Update workflows

* Removed patreon added aristurtledev (#863)

* Fix funding (#864)

* Use ArtifactsPath to resolve include dlls for pack (#865)

* Add additional input parameters (#866)

* Only specify source and prerelease (#867)

* Update prerelease version (#868)

* Replace Newtonsoft.Json with System.Text.Json (#869)

* Converted to use `System.Text.Json`

* Remove Newtonsoft.Json Dependency
Newtonsoft.Json dependency has been removed in favor of System.Text.Json

* Treat MGFXO file as binary

* Replace `Matrix2` with `Matrix3x2` (#870)

* Replace `Matrix2` with `Matrix3x2`

* Update benchmarks

* Add XML documentation for `Matrix3x2`

* Add Edge Test for `Polygon.Contains` (#871)

* Added Assert for edge contains
Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

* Renamed to PolygonTests

* Replace `Size3` with `Vector3` (#872)

* Rename `Size2` to `SizeF` (#873)

* Remove `Point3` (#874)

* Remove `Point2` (#875)

* Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

* Remove `Point2`

* Added unit test to ensure issue is resolved (#876)

* Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

* Implements standard IDispose pattern (#879)

* upgrade solution to VS2022 (#880)

* update project types to net.Sdk

* upgrade solution to VS2022

* Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

* remove unused SharpDX using

introduces in #840

* remove Content.Pipeline reference from the core library

introduced in #692

* use System ZLibStream (#882)

ZLibStream was added in net6

https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

* Added changelog (#883)

* Added changelog

* Added note about unreleased

* Make links for users (#884)

* Copy Reference DLLs from NuGet Automatically (#885)

* Pack value should be `true` not `True`

* Copy content pipeline dll references to project directory for ease of use

* Forgot `/` in path

* Updated Changelog (#886)

Added information about #885

* Refactor `BitmapFont` (#887)

* Update file header

* Created initial project to move BitmapFont too

* XMl, Text, and Binar reading now supported for BMFont

* Refactor BittmapFont

* Update content pipeline from BitmapFont refactor

* Update changelog

* Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

* Update Changelog (#889)

* Updated so all projects have changelog in root when viewing in visual studio

* Updated changelog

* Texture Atlas Refactor (#890)

* Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

* Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

* Moved `RectanglExtensions` to project root
This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

* Renamed to `Rectangle.Extensions.cs`

* Separate `Rectangle` from `RectangleF` extensions

* Added `GetRelativeRectangle` method

* Updated documentation

* Added `GetRelativeRectangle` method

* Updated documentation

* Top-level namespace

* Remove whitespace

* Move properties up

* Top-level namespace

* Don't recreate structs for `Bounds` and Size`
By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

* Size should be `Size` not `SizeF` value
Textures deal in pixels (ints not floats)

* Removed setter for `Texture` property
Texture should not be set after region is created

* Added UV properties

* Refactor constructors

* Added documentation

* Added license header

* Make it an actual extension method

* Added `GetSubRegion` extension methods for `TextureRegion`

* Update documentation about ObjectDisposedException

* Move const values to top

* Resolve errors from`TextureRegion` refactor

* Update unit tests for TextureRegion refactor

* Started NinePatch rework

* Refactored NinePatch

* Update for texture region constructor change

* Remove ninepatch from atlas

* Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
These are extension methods for the sprite batch

* Updated to use new `DrawTextureRegion` method after rename

* Renamed to NinePatchJsonConverter

* Removed `GetRegion<T>`
TextureAtlas no longer contains nine patch regions, so this method isn't needed

* Update after `NinePatchRegion2DJsonConverter` name change

* Resolve errors from NinePatch refactor

* TextureAtlas rework

* Renamed `TextureRegion` to `Texture2DRegion`

* Moved ContentReaders to new Content\ContentReaders directory

* Moved TextureAtlasJsonConvert to Serialization directory

* Adjusted name from `Texture*` to `Texture2D*`

* Update runtimereader and runtimettype strings

* Kni.Extended (#892)

* KNI projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* remove test for issue #633

* build tests

* KNI TypeReaders

* KNI/XNA compatible code

* GetRuntimeReader from runtime types

* remove MockGameWindow

* Fna.Extended (#893)

* FNA projects

* update actions

fixes MSBUILD : error MSB1011: Specify which project or solution file to
use because this folder contains more than one project or solution file.

* build tests

* remove test for issue #633

* FNA/XNA compatible

* GraphicsDevice Extensions

* remove MockGameWindow

---------

Co-authored-by: Christopher Whitley <[email protected]>

* Sprite Rework (#897)

* Add file header

* Refator to file-scoped namespace

* Least complex to most complext method ordering

* Refactor: Group properties at top before constructor

* Use the new UV properties from Texture2DRegion.
This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

* No longer need to cache normalized origin to preserve it

* Use ArgumentNullException instead

* Use ArgumentNullException.ThrowIfNull

* Refactor:  Use brackets for readability

* Add xml documentation

* Add check for disposed texture

* Moved `Sprite` to `MonoGame.Extended.Graphics`

* Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

* `ISpriteBatchDrawable` is not used by anything
It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

* Add `CreateSprite` methods

* Add file header

* Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

* Move properties before constructor.

* Changed `Duration` to `TimeSpan` type

* Renamed `Index` to `FrameIndex`

* Add `TextureRegion` property

* Make property get only

* Cleanup whitespace

* Remove `SpriteSheetAnimationFrameJsonConverter`

* Cleanup unused namespaces

* Make file-scoped namespace

* Added xml documentation

* Added file header

* marked constructor as internal.
This will be created from a spritesheet itself

* Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

* File scoped namespace

* Add file header

* Reorganize: Move properties above constructor

* Make `Frames` property a read-only span

* Remove duration, this is being moved to the frame itself

* Add `Name` property

* Set looping, reversed, and ping pong properties in ctor

* Make ctor internal
This will be an object created by a spritesheet instane itself.

* Cleanup: Whitespace

* Add `FrameCount` property

* Add `GetFrame` method and accompanying `this[int]` method.

* Documentation: Added missing documentation.

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* WIP: Temporary commit for workstation change

* Refactor: Animation Refactor Completed

* Refactor: Sprite stuff finished

* Remove tests that can't be run on GitHub CI
Need to find alternative

* Make optional name param the last param in Texture2DRegion ctors

* Resolve merge conflicts

* Add Kni Package (#898)

* Capitalize KNI (#899)

* Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

* Add test to validate issue

* Resolve issue

* Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

* Replaced delegate with Action<T>

* Change delegate to Action<T>

* Add unit test to confirm issue

* Fix NullReferenceException in ObjectPool when reusing all returned items

The ObjectPool's Use() method was throwing a NullReferenceException when
all items had been returned to the pool and New() was called again. This
was due to _tailNode being null in this scenario.

Added a null check for _tailNode in Use() method to properly reinitialize
the linked list structure when the pool has been emptied and refilled.

* Moved MonoGame.Extended.Gui to its own repository (#905)

* Update animated sprite so the constructor api is similar to original MGE (#906)

* Update animated sprite so the constructor api is similar to original MGE

* Fix tests from changes

* Add pitch support to Camera & OrthographicCamera (#907)

* Added pitch support to OrthographicCamera

* Added pitch functions to base Camera class

* Reorganization (#909)

* Removed MonoGame.Extended.Animations
This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

* Rework BitmapFonts for new project organization.

* Cleanup namespaces

* Cleanup namespaces

* Move MonoGame.Extended.Collision into base project

* Moved MonoGame.Extended.Entities into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Graphics into base project

* Moved MonoGame.Extended.Input into base project

* Moved MonoGame.Extended.Particles into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tiled into base project

* Moved MonoGame.Extended.Tweening into base project

* Removing SpriteFactory support
This will be added back in at a later date once the SpriteFactory application has been updated

* Update TexturePacker content import support

* Only needs to reference base project now

* Moved to Serialization namespace

* Moved  Json serialization to Serialization.Json namespace

* Moved TexturePacker content DTOs to the Content namespace

* Renamed to Texture2DRegion.Extensions.cs

* Cleaned up namespace

* Moved ReadTiledMapProperties into the ContentReaderExtensions

* Created an Extended content manager

* Moved Tweening tests to base test project

* Moved Tiled test to base test project

* Moved Entities Tests to base test project

* Moved Entities tests to base test project

* Moved Collisions tests to base test project

* Moved Pipeline Tiled test to Pipeline tests project

* Use `var` instead of full type name

* Add Tiled namespace

* Correct `Metadata` property name to new `Meta` property name

* Cleanup namespace

* Add effects namespace

* Add Content namespace

* Update using statements to new namespaces

* Move Pipeline Tiled tests to Pipeline test project

* Use correct namespace

* Use `var` instead of typing out nested types

* Remove unused namespaces

* Update to new namespaces

* Remove unused namespaces

* Update to new namespaces

* Remove dependency on Particles csproj

* Update included content on build

* Add embedded resources

* Merge multi csproj structure into single csproj structure

* TexturePackerPoint properties should be `double` not `int`

* Update csproj

* Use dotnet tool to rebuild effects

* Move effect compilation to targets file
This will ensure the effects are always built

* Fix workflow to build effects on linux

* Set wine path

* Export instead of using actions env section

* Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

* Make CurrentFrame return the actual frame index from the source atlas

* Start the animation controller playing, don't make the consumer manually call it initially

* Play is automatically called in the controller ctor

* Added property to get name of current animation

* Only copy reference files if user opts in by specifying property in csproj

* Update Kni solution to new project structure

* Update Fna solution to new project structure

* Bump version number to 4.0.0

* Update release workflow

* Remove old test

* Fix KNI specific issues

* Update for Fna

---------

Co-authored-by: Andreas Torebring <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Matt Johnson <[email protected]>
Co-authored-by: Kus <[email protected]>
Co-authored-by: slakedclay <[email protected]>
Co-authored-by: Cairo Batista <[email protected]>
Co-authored-by: Gandifil <[email protected]>
Co-authored-by: David Fidge <[email protected]>
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
Co-authored-by: Lilith Silver <anon>
Co-authored-by: KatDevsGames <[email protected]>
Co-authored-by: LACOMBE Dominique <[email protected]>
Co-authored-by: Apllify <[email protected]>
Co-authored-by: Stephen <[email protected]>
Co-authored-by: jimmy b <[email protected]>
Co-authored-by: Nikos Kastellanos <[email protected]>
Co-authored-by: Mike Bowers <[email protected]>
Co-authored-by: James <[email protected]>

* Squashed commit of the following:

commit 8b3c2f0e1b9ada5649a4fab690e60476559f0320
Author: Christopher Whitley <[email protected]>
Date:   Tue Jul 9 15:22:33 2024 -0400

    Various fixes for the version 4 initial release (#915)

    * Remove logging statement, not needed

    * Add bmfont texture as dependency

    * Remove existing instance check, this will always be null

    * Fix BitmapFontContentReader

    * Remove TODO comment
    This was added 8 years ago, and I don't see any determinant to the states being global.

    * Renamed `Refresh` to `Update`

    * Added documentation comments

    * file scoped namespace

    * Remove unnecessary using

    * Add file header

    * Remove obsolete methods and update documentation

    * file scoped namespace

    * Remove TODO comment
    The fields being static is fine.

    * Renamed `Refersh` to `Update`

    * Add documentation

    * file scoped namespace

    * Add documentation

    * Remove deprecated methods

commit 1d440c9d7d62fee6405fc33d8e50ac248124f9c5
Author: Christopher Whitley <[email protected]>
Date:   Mon Jul 8 18:54:38 2024 -0400

    Release/v4 (#914)

    * Make CurrentFrame return the actual frame index from the source atlas

    * Start the animation controller playing, don't make the consumer manually call it initially

    * Play is automatically called in the controller ctor

    * Added property to get name of current animation

    * Only copy reference files if user opts in by specifying property in csproj

    * Update Kni solution to new project structure

    * Update Fna solution to new project structure

    * Bump version number to 4.0.0

    * Update release workflow

    * Remove old test

    * Version 4.0.0 Release (#911)

    * Remove duplicate fact

    * Add .user file to gitignore

    * Assert Rectangle translation transform

    * Assert Rectangle transform not changing size

    * Rectangle extents are rotated correctly

    * Rebuilt effects with mgfxc 3.8.1.303

    * Uncomment and fix tests

    * Remove tests always passing

    * Issue 707, Created test for null ptr during entity destroy

    * Issue 707, Added null propagation inside component manager destroy method

    * Create VelocityInterpolator

    Allow particles to change velocity as they age.

    * add power of two values to MouseButton

    * Add parallaxFactor of layers in models.

    * Add parallaxFactor in rendering logic.

    * Add checking event == 'push'

    * Fix looping animations incorrectly completing when an update contains a large elapsed time.
    Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
    Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
    Add unit tests for SpriteSheetAnimation.

    * Update README.md

    * Use actual target bounds when testing collision

    * Cleanup

    * Refactor

    Encapsulate a public property (Parents).
    Added xml-comments (to fix some compilation warnings)

    * Format comments and fix spelling

    * Add comments for public fields and properties

    * fix Bag so that it doesn't allocate during foreach enumeration

    * add bag allocation test

    * make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

    * add support for class (nested) properties

    * support type/class field in maps, layers, & tilemaps

    * Update PrimitiveDrawing.cs

    Add a new DrawSolidCircle to add a fill color

    * fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

    * Use Directory.Build.targets
    Moved common csproj properties for NuGet into Directory.Build.targets

    * Added version tag
    This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

    * PackageIconUrl is deprecated
    NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

    * Pack README.md in NuGet packages

    * Add common tags for NuGet packages
    Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

    * Added new Cake Frosting project

    * Cleaned up
    Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

    * Added BuildContext

    * Added BuildTask

    * Added Test Task

    * Added Package Task

    * Added Default task

    * Added namespace

    * Cleanup using statements

    * Ignore cake output directory

    * Updated and automated for NuGet pushing

    * Check for GCLatencyMode.NoGCRegion
    This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

    * Forgot to add System.Runtime using statement

    * Better name for package step

    * NuGet Deploy only in craftworksgames repo

    * Enable Nullable in build project

    * Add additional context variables for build script

    * Use same verbosity, restore, and logo flags as originally used

    * Use same verbosity and nologo setting as original

    * Created Restore task

    Uses same verbosity as original workflow did

    * Update TestTask to use same verbosity, nologo, and nobuild as original workflow

    * Create DeployToGithubTask

    * Create DeployToMyGetTask

    * Create DeployToNuGetTask

    * Added Deploy task

    * Simplify, move most logic into cake build script

    * Ignore Missing XML comment warnings on build

    * Remove async, ignore NU5118 on package

    * Apparently i forgot a semi colon....

    * Remove old collision code.

    * Move collision code to root folder

    * Fix namespaces

    * Add failing test for collisions.

    * Add benchmarks for collisions

    * Refactor collision update, correct reset map

    * Add BoundingRectanglle property for IShape

    * Refactor QuadTree - now we use static AABB intersection check

    * Add layers for collisions

    * Add interface for space splitting and impls

    * Refactor layers for new interface

    * Add comments for collision actor.

    * Add comments for space algo interface.

    * Add spatialHash algo for collision spacing

    * Rename Quadtree to QuadTree

    * Add inline for private methods of SpatialHash.cs

    * Refactor benchmarks for collisions.

    * Fix tests

    * Refactor layers.

    * Add method for set default layer

    * Fix ctor call's

    * Add constructor for CollisionComponent.cs

    * Add extentions for ContentImporter.

    * Add speical contentItem for referencing images.

    * Fix tiledMap processing and writing.

    * Add texture for tile.

    * Add image tileset support

    * Fix using ctor from remote

    * Fix version

    * Fix CiCD

    * Add copy constructor for KeyboardListener.

    * Revert "Add copy constructor for KeyboardListener."

    * Add serializer for RectangleF

    * Add test for new serizalizer

    * Add RectangleFJsonConverter for default serializer.

    * Fixed HSL lerp

    * Move extracting linear operations into special class.

    * Move impls of linear tweening into special class.

    * Add ColorTween

    * Add special TweenTo.

    * Fix TweenTo

    * Add tweening tests

    * Fix activator inside tweener.

    * Check for undefined layer and throw on collision actor insertion

    * Add test coverage

    * Add OrientedBoundingRectangle type

    * Add Points property to OrientedBoundingRectangle

    * Ignore Visual Studio cache

    * Be explicit about conversion of geometries

    Conversion from circle to rectangle should not pass unnoted and be explicit.

    * OrientedBoundedRectangle implements ShapeF

    In that way the OrientedBoundedRectangle can take part of collision tests.

    * Add ascii art to describe intersection tests

    * Update circle and oriented bound box intersection

    * Update dependencies

    * Add Intersects method for OBB

    * Rename to OrientedRectangle

    * Properly intersect circle and oriented rect

    * Calc coll vector for circle and oriented rect

    * Calc coll vector for oriented rects

    * Fixes incorrect rendering of flipped animation tiles

    * Call RectangleF.Intersects to resolve recursion bug
    When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

    * Update Newtonsoft.Json.dll Dependency

    * Removing MyGet Feed Deploy
    Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

    * Moved to `/src/cs`
    Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

    * Move build into `/src/cs`

    * Fix project reference

    * Fix path for project on build task

    * Capital B

    * Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

    * Move source projects into source directory

    * Moved tests into test directory

    * Moved benchmarks into benchmark directory

    * Moved build into build directory

    * Add root props file

    * Add common props for all tests

    * Added `<Authors>` to root props

    * Add common props for source  directory

    * Add props to build directory

    * Moved props from targets file

    * Removed targets file

    * Update for new .artifacts directory

    * nuget.config is not needed

    * Renamed 'Logos' directory to 'logos'
    Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

    * Use correct working directory after moving

    * Remove duplicate import statement

    * Read from props file not targets file.

    * Use new .artifacts directory

    * Updated .gitattributes

    * Updated .gitignore

    * Set ArtifactPath within the project category directory

    * Drop CAKE build and move Build CI to github workflow

    * Setup code analysis with .editorconfig

    * Don't use nullable reference in a non-nullable context

    * Correct spelling of minimal

    * Fix GitHub Nuget Push (#859)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove GitHub Deploy (#860)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove github push for now, need to check repository settings

    * Cleanup (#862)

    * Removed Roadmap
    The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

    * Added new note at top of readme

    * updated information for installing nuget

    * Made using content pipeline extensions a section and not a quote

    * Removed information about MyGet feed

    * Removed patreon from readme

    * Update License

    * renamed master branch to main

    * Remove community forum link
    MonoGame is closing the community forums in favor of discord and github discussions

    * Update workflows

    * Removed patreon added aristurtledev (#863)

    * Fix funding (#864)

    * Use ArtifactsPath to resolve include dlls for pack (#865)

    * Add additional input parameters (#866)

    * Only specify source and prerelease (#867)

    * Update prerelease version (#868)

    * Replace Newtonsoft.Json with System.Text.Json (#869)

    * Converted to use `System.Text.Json`

    * Remove Newtonsoft.Json Dependency
    Newtonsoft.Json dependency has been removed in favor of System.Text.Json

    * Treat MGFXO file as binary

    * Replace `Matrix2` with `Matrix3x2` (#870)

    * Replace `Matrix2` with `Matrix3x2`

    * Update benchmarks

    * Add XML documentation for `Matrix3x2`

    * Add Edge Test for `Polygon.Contains` (#871)

    * Added Assert for edge contains
    Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

    * Renamed to PolygonTests

    * Replace `Size3` with `Vector3` (#872)

    * Rename `Size2` to `SizeF` (#873)

    * Remove `Point3` (#874)

    * Remove `Point2` (#875)

    * Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

    * Remove `Point2`

    * Added unit test to ensure issue is resolved (#876)

    * Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

    * Implements standard IDispose pattern (#879)

    * upgrade solution to VS2022 (#880)

    * update project types to net.Sdk

    * upgrade solution to VS2022

    * Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

    * remove unused SharpDX using

    introduces in #840

    * remove Content.Pipeline reference from the core library

    introduced in #692

    * use System ZLibStream (#882)

    ZLibStream was added in net6

    https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

    * Added changelog (#883)

    * Added changelog

    * Added note about unreleased

    * Make links for users (#884)

    * Copy Reference DLLs from NuGet Automatically (#885)

    * Pack value should be `true` not `True`

    * Copy content pipeline dll references to project directory for ease of use

    * Forgot `/` in path

    * Updated Changelog (#886)

    Added information about #885

    * Refactor `BitmapFont` (#887)

    * Update file header

    * Created initial project to move BitmapFont too

    * XMl, Text, and Binar reading now supported for BMFont

    * Refactor BittmapFont

    * Update content pipeline from BitmapFont refactor

    * Update changelog

    * Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

    * Update Changelog (#889)

    * Updated so all projects have changelog in root when viewing in visual studio

    * Updated changelog

    * Texture Atlas Refactor (#890)

    * Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
    These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

    * Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

    * Moved `RectanglExtensions` to project root
    This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

    * Renamed to `Rectangle.Extensions.cs`

    * Separate `Rectangle` from `RectangleF` extensions

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Top-level namespace

    * Remove whitespace

    * Move properties up

    * Top-level namespace

    * Don't recreate structs for `Bounds` and Size`
    By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

    * Size should be `Size` not `SizeF` value
    Textures deal in pixels (ints not floats)

    * Removed setter for `Texture` property
    Texture should not be set after region is created

    * Added UV properties

    * Refactor constructors

    * Added documentation

    * Added license header

    * Make it an actual extension method

    * Added `GetSubRegion` extension methods for `TextureRegion`

    * Update documentation about ObjectDisposedException

    * Move const values to top

    * Resolve errors from`TextureRegion` refactor

    * Update unit tests for TextureRegion refactor

    * Started NinePatch rework

    * Refactored NinePatch

    * Update for texture region constructor change

    * Remove ninepatch from atlas

    * Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
    These are extension methods for the sprite batch

    * Updated to use new `DrawTextureRegion` method after rename

    * Renamed to NinePatchJsonConverter

    * Removed `GetRegion<T>`
    TextureAtlas no longer contains nine patch regions, so this method isn't needed

    * Update after `NinePatchRegion2DJsonConverter` name change

    * Resolve errors from NinePatch refactor

    * TextureAtlas rework

    * Renamed `TextureRegion` to `Texture2DRegion`

    * Moved ContentReaders to new Content\ContentReaders directory

    * Moved TextureAtlasJsonConvert to Serialization directory

    * Adjusted name from `Texture*` to `Texture2D*`

    * Update runtimereader and runtimettype strings

    * Kni.Extended (#892)

    * KNI projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * remove test for issue #633

    * build tests

    * KNI TypeReaders

    * KNI/XNA compatible code

    * GetRuntimeReader from runtime types

    * remove MockGameWindow

    * Fna.Extended (#893)

    * FNA projects

    * update actions

    fixes MSBUILD : error …
AristurtleDev added a commit that referenced this pull request Aug 18, 2024
commit da81c353f6b4aa18819da69227bc6cceee2de2c2
Author: Christopher Whitley <[email protected]>
Date:   Sat Aug 17 22:27:28 2024 -0400

    Update for Monogame 3.8.2.1105 (#931)

    * Update MonoGame references to 3.8.2.1105

    * Vector2.Rotate is not built into MonoGame

    * Update to net8

    * Update version number

    * Update changelog

    * Deprecate Vector2.Rotate for MonoGame only

    * Deprecate it but don't error it so API doesn't break for others.

commit 40d260b454bf2a1ef86dfba00b908e983c41e2c7
Author: Srayan Jana <[email protected]>
Date:   Mon Jul 29 08:25:26 2024 -0700

    fix color extension bug (#925)

    * fix color extension bug

    * add preprocessor

commit 3ca0a3ef2aafbca7afe846c69489b0ee75cd1c53
Author: Christopher Whitley <[email protected]>
Date:   Thu Jul 11 22:24:34 2024 -0400

    Resolves `ArgmentNulLException` When Loading `BitmapFont` From Disk. (#924)

    * Correctly swap rayNear and rayFar distance

    * Retrieve bmfFile.Path when reading from stream
    This closes #923

    * Return null if character not found.
    This is used for line feed characters.S

commit f1fbf9c4b81ffca8ae6e4160b0e71822b7112a23
Author: Christopher Whitley <[email protected]>
Date:   Thu Jul 11 21:48:40 2024 -0400

    Correctly swap rayNear and rayFar distance (#922)

commit f56dc7b620895586ea23bebd60ee7b0df9cd94ec
Author: Christopher Whitley <[email protected]>
Date:   Thu Jul 11 21:35:32 2024 -0400

    Use MaxSpeed when calculating speedGain (#921)

    This calculation was never implemented from the Mercury Particle Engine port

commit 331422686121ffe11316b3326e99b2aba971876a
Author: Christopher Whitley <[email protected]>
Date:   Thu Jul 11 15:18:16 2024 -0400

    Fix documentation link (#920)

commit da2de0c84d68e103afe0d41dd988f84e628d5d96
Author: Christopher Whitley <[email protected]>
Date:   Wed Jul 10 01:50:30 2024 -0400

    Added FromAbgr method (#919)

commit 4beea37b25f014ef4925365ea56ade23028af3d7
Author: Christopher Whitley <[email protected]>
Date:   Tue Jul 9 16:00:03 2024 -0400

    Sync develop with release (#917)

    * Version 4.0.0 Release (#911)

    * Remove duplicate fact

    * Add .user file to gitignore

    * Assert Rectangle translation transform

    * Assert Rectangle transform not changing size

    * Rectangle extents are rotated correctly

    * Rebuilt effects with mgfxc 3.8.1.303

    * Uncomment and fix tests

    * Remove tests always passing

    * Issue 707, Created test for null ptr during entity destroy

    * Issue 707, Added null propagation inside component manager destroy method

    * Create VelocityInterpolator

    Allow particles to change velocity as they age.

    * add power of two values to MouseButton

    * Add parallaxFactor of layers in models.

    * Add parallaxFactor in rendering logic.

    * Add checking event == 'push'

    * Fix looping animations incorrectly completing when an update contains a large elapsed time.
    Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
    Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
    Add unit tests for SpriteSheetAnimation.

    * Update README.md

    * Use actual target bounds when testing collision

    * Cleanup

    * Refactor

    Encapsulate a public property (Parents).
    Added xml-comments (to fix some compilation warnings)

    * Format comments and fix spelling

    * Add comments for public fields and properties

    * fix Bag so that it doesn't allocate during foreach enumeration

    * add bag allocation test

    * make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

    * add support for class (nested) properties

    * support type/class field in maps, layers, & tilemaps

    * Update PrimitiveDrawing.cs

    Add a new DrawSolidCircle to add a fill color

    * fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

    * Use Directory.Build.targets
    Moved common csproj properties for NuGet into Directory.Build.targets

    * Added version tag
    This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

    * PackageIconUrl is deprecated
    NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

    * Pack README.md in NuGet packages

    * Add common tags for NuGet packages
    Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

    * Added new Cake Frosting project

    * Cleaned up
    Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

    * Added BuildContext

    * Added BuildTask

    * Added Test Task

    * Added Package Task

    * Added Default task

    * Added namespace

    * Cleanup using statements

    * Ignore cake output directory

    * Updated and automated for NuGet pushing

    * Check for GCLatencyMode.NoGCRegion
    This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

    * Forgot to add System.Runtime using statement

    * Better name for package step

    * NuGet Deploy only in craftworksgames repo

    * Enable Nullable in build project

    * Add additional context variables for build script

    * Use same verbosity, restore, and logo flags as originally used

    * Use same verbosity and nologo setting as original

    * Created Restore task

    Uses same verbosity as original workflow did

    * Update TestTask to use same verbosity, nologo, and nobuild as original workflow

    * Create DeployToGithubTask

    * Create DeployToMyGetTask

    * Create DeployToNuGetTask

    * Added Deploy task

    * Simplify, move most logic into cake build script

    * Ignore Missing XML comment warnings on build

    * Remove async, ignore NU5118 on package

    * Apparently i forgot a semi colon....

    * Remove old collision code.

    * Move collision code to root folder

    * Fix namespaces

    * Add failing test for collisions.

    * Add benchmarks for collisions

    * Refactor collision update, correct reset map

    * Add BoundingRectanglle property for IShape

    * Refactor QuadTree - now we use static AABB intersection check

    * Add layers for collisions

    * Add interface for space splitting and impls

    * Refactor layers for new interface

    * Add comments for collision actor.

    * Add comments for space algo interface.

    * Add spatialHash algo for collision spacing

    * Rename Quadtree to QuadTree

    * Add inline for private methods of SpatialHash.cs

    * Refactor benchmarks for collisions.

    * Fix tests

    * Refactor layers.

    * Add method for set default layer

    * Fix ctor call's

    * Add constructor for CollisionComponent.cs

    * Add extentions for ContentImporter.

    * Add speical contentItem for referencing images.

    * Fix tiledMap processing and writing.

    * Add texture for tile.

    * Add image tileset support

    * Fix using ctor from remote

    * Fix version

    * Fix CiCD

    * Add copy constructor for KeyboardListener.

    * Revert "Add copy constructor for KeyboardListener."

    * Add serializer for RectangleF

    * Add test for new serizalizer

    * Add RectangleFJsonConverter for default serializer.

    * Fixed HSL lerp

    * Move extracting linear operations into special class.

    * Move impls of linear tweening into special class.

    * Add ColorTween

    * Add special TweenTo.

    * Fix TweenTo

    * Add tweening tests

    * Fix activator inside tweener.

    * Check for undefined layer and throw on collision actor insertion

    * Add test coverage

    * Add OrientedBoundingRectangle type

    * Add Points property to OrientedBoundingRectangle

    * Ignore Visual Studio cache

    * Be explicit about conversion of geometries

    Conversion from circle to rectangle should not pass unnoted and be explicit.

    * OrientedBoundedRectangle implements ShapeF

    In that way the OrientedBoundedRectangle can take part of collision tests.

    * Add ascii art to describe intersection tests

    * Update circle and oriented bound box intersection

    * Update dependencies

    * Add Intersects method for OBB

    * Rename to OrientedRectangle

    * Properly intersect circle and oriented rect

    * Calc coll vector for circle and oriented rect

    * Calc coll vector for oriented rects

    * Fixes incorrect rendering of flipped animation tiles

    * Call RectangleF.Intersects to resolve recursion bug
    When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

    * Update Newtonsoft.Json.dll Dependency

    * Removing MyGet Feed Deploy
    Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

    * Moved to `/src/cs`
    Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

    * Move build into `/src/cs`

    * Fix project reference

    * Fix path for project on build task

    * Capital B

    * Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

    * Move source projects into source directory

    * Moved tests into test directory

    * Moved benchmarks into benchmark directory

    * Moved build into build directory

    * Add root props file

    * Add common props for all tests

    * Added `<Authors>` to root props

    * Add common props for source  directory

    * Add props to build directory

    * Moved props from targets file

    * Removed targets file

    * Update for new .artifacts directory

    * nuget.config is not needed

    * Renamed 'Logos' directory to 'logos'
    Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

    * Use correct working directory after moving

    * Remove duplicate import statement

    * Read from props file not targets file.

    * Use new .artifacts directory

    * Updated .gitattributes

    * Updated .gitignore

    * Set ArtifactPath within the project category directory

    * Drop CAKE build and move Build CI to github workflow

    * Setup code analysis with .editorconfig

    * Don't use nullable reference in a non-nullable context

    * Correct spelling of minimal

    * Fix GitHub Nuget Push (#859)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove GitHub Deploy (#860)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove github push for now, need to check repository settings

    * Cleanup (#862)

    * Removed Roadmap
    The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

    * Added new note at top of readme

    * updated information for installing nuget

    * Made using content pipeline extensions a section and not a quote

    * Removed information about MyGet feed

    * Removed patreon from readme

    * Update License

    * renamed master branch to main

    * Remove community forum link
    MonoGame is closing the community forums in favor of discord and github discussions

    * Update workflows

    * Removed patreon added aristurtledev (#863)

    * Fix funding (#864)

    * Use ArtifactsPath to resolve include dlls for pack (#865)

    * Add additional input parameters (#866)

    * Only specify source and prerelease (#867)

    * Update prerelease version (#868)

    * Replace Newtonsoft.Json with System.Text.Json (#869)

    * Converted to use `System.Text.Json`

    * Remove Newtonsoft.Json Dependency
    Newtonsoft.Json dependency has been removed in favor of System.Text.Json

    * Treat MGFXO file as binary

    * Replace `Matrix2` with `Matrix3x2` (#870)

    * Replace `Matrix2` with `Matrix3x2`

    * Update benchmarks

    * Add XML documentation for `Matrix3x2`

    * Add Edge Test for `Polygon.Contains` (#871)

    * Added Assert for edge contains
    Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

    * Renamed to PolygonTests

    * Replace `Size3` with `Vector3` (#872)

    * Rename `Size2` to `SizeF` (#873)

    * Remove `Point3` (#874)

    * Remove `Point2` (#875)

    * Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

    * Remove `Point2`

    * Added unit test to ensure issue is resolved (#876)

    * Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

    * Implements standard IDispose pattern (#879)

    * upgrade solution to VS2022 (#880)

    * update project types to net.Sdk

    * upgrade solution to VS2022

    * Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

    * remove unused SharpDX using

    introduces in #840

    * remove Content.Pipeline reference from the core library

    introduced in #692

    * use System ZLibStream (#882)

    ZLibStream was added in net6

    https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

    * Added changelog (#883)

    * Added changelog

    * Added note about unreleased

    * Make links for users (#884)

    * Copy Reference DLLs from NuGet Automatically (#885)

    * Pack value should be `true` not `True`

    * Copy content pipeline dll references to project directory for ease of use

    * Forgot `/` in path

    * Updated Changelog (#886)

    Added information about #885

    * Refactor `BitmapFont` (#887)

    * Update file header

    * Created initial project to move BitmapFont too

    * XMl, Text, and Binar reading now supported for BMFont

    * Refactor BittmapFont

    * Update content pipeline from BitmapFont refactor

    * Update changelog

    * Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

    * Update Changelog (#889)

    * Updated so all projects have changelog in root when viewing in visual studio

    * Updated changelog

    * Texture Atlas Refactor (#890)

    * Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
    These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

    * Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

    * Moved `RectanglExtensions` to project root
    This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

    * Renamed to `Rectangle.Extensions.cs`

    * Separate `Rectangle` from `RectangleF` extensions

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Top-level namespace

    * Remove whitespace

    * Move properties up

    * Top-level namespace

    * Don't recreate structs for `Bounds` and Size`
    By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

    * Size should be `Size` not `SizeF` value
    Textures deal in pixels (ints not floats)

    * Removed setter for `Texture` property
    Texture should not be set after region is created

    * Added UV properties

    * Refactor constructors

    * Added documentation

    * Added license header

    * Make it an actual extension method

    * Added `GetSubRegion` extension methods for `TextureRegion`

    * Update documentation about ObjectDisposedException

    * Move const values to top

    * Resolve errors from`TextureRegion` refactor

    * Update unit tests for TextureRegion refactor

    * Started NinePatch rework

    * Refactored NinePatch

    * Update for texture region constructor change

    * Remove ninepatch from atlas

    * Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
    These are extension methods for the sprite batch

    * Updated to use new `DrawTextureRegion` method after rename

    * Renamed to NinePatchJsonConverter

    * Removed `GetRegion<T>`
    TextureAtlas no longer contains nine patch regions, so this method isn't needed

    * Update after `NinePatchRegion2DJsonConverter` name change

    * Resolve errors from NinePatch refactor

    * TextureAtlas rework

    * Renamed `TextureRegion` to `Texture2DRegion`

    * Moved ContentReaders to new Content\ContentReaders directory

    * Moved TextureAtlasJsonConvert to Serialization directory

    * Adjusted name from `Texture*` to `Texture2D*`

    * Update runtimereader and runtimettype strings

    * Kni.Extended (#892)

    * KNI projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * remove test for issue #633

    * build tests

    * KNI TypeReaders

    * KNI/XNA compatible code

    * GetRuntimeReader from runtime types

    * remove MockGameWindow

    * Fna.Extended (#893)

    * FNA projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * build tests

    * remove test for issue #633

    * FNA/XNA compatible

    * GraphicsDevice Extensions

    * remove MockGameWindow

    ---------

    Co-authored-by: Christopher Whitley <[email protected]>

    * Sprite Rework (#897)

    * Add file header

    * Refator to file-scoped namespace

    * Least complex to most complext method ordering

    * Refactor: Group properties at top before constructor

    * Use the new UV properties from Texture2DRegion.
    This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

    * No longer need to cache normalized origin to preserve it

    * Use ArgumentNullException instead

    * Use ArgumentNullException.ThrowIfNull

    * Refactor:  Use brackets for readability

    * Add xml documentation

    * Add check for disposed texture

    * Moved `Sprite` to `MonoGame.Extended.Graphics`

    * Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

    * `ISpriteBatchDrawable` is not used by anything
    It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

    * Add `CreateSprite` methods

    * Add file header

    * Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

    * Move properties before constructor.

    * Changed `Duration` to `TimeSpan` type

    * Renamed `Index` to `FrameIndex`

    * Add `TextureRegion` property

    * Make property get only

    * Cleanup whitespace

    * Remove `SpriteSheetAnimationFrameJsonConverter`

    * Cleanup unused namespaces

    * Make file-scoped namespace

    * Added xml documentation

    * Added file header

    * marked constructor as internal.
    This will be created from a spritesheet itself

    * Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

    * File scoped namespace

    * Add file header

    * Reorganize: Move properties above constructor

    * Make `Frames` property a read-only span

    * Remove duration, this is being moved to the frame itself

    * Add `Name` property

    * Set looping, reversed, and ping pong properties in ctor

    * Make ctor internal
    This will be an object created by a spritesheet instane itself.

    * Cleanup: Whitespace

    * Add `FrameCount` property

    * Add `GetFrame` method and accompanying `this[int]` method.

    * Documentation: Added missing documentation.

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * Refactor: Animation Refactor Completed

    * Refactor: Sprite stuff finished

    * Remove tests that can't be run on GitHub CI
    Need to find alternative

    * Make optional name param the last param in Texture2DRegion ctors

    * Resolve merge conflicts

    * Add Kni Package (#898)

    * Capitalize KNI (#899)

    * Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

    * Add test to validate issue

    * Resolve issue

    * Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

    * Replaced delegate with Action<T>

    * Change delegate to Action<T>

    * Add unit test to confirm issue

    * Fix NullReferenceException in ObjectPool when reusing all returned items

    The ObjectPool's Use() method was throwing a NullReferenceException when
    all items had been returned to the pool and New() was called again. This
    was due to _tailNode being null in this scenario.

    Added a null check for _tailNode in Use() method to properly reinitialize
    the linked list structure when the pool has been emptied and refilled.

    * Moved MonoGame.Extended.Gui to its own repository (#905)

    * Update animated sprite so the constructor api is similar to original MGE (#906)

    * Update animated sprite so the constructor api is similar to original MGE

    * Fix tests from changes

    * Add pitch support to Camera & OrthographicCamera (#907)

    * Added pitch support to OrthographicCamera

    * Added pitch functions to base Camera class

    * Reorganization (#909)

    * Removed MonoGame.Extended.Animations
    This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

    * Rework BitmapFonts for new project organization.

    * Cleanup namespaces

    * Cleanup namespaces

    * Move MonoGame.Extended.Collision into base project

    * Moved MonoGame.Extended.Entities into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Input into base project

    * Moved MonoGame.Extended.Particles into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tweening into base project

    * Removing SpriteFactory support
    This will be added back in at a later date once the SpriteFactory application has been updated

    * Update TexturePacker content import support

    * Only needs to reference base project now

    * Moved to Serialization namespace

    * Moved  Json serialization to Serialization.Json namespace

    * Moved TexturePacker content DTOs to the Content namespace

    * Renamed to Texture2DRegion.Extensions.cs

    * Cleaned up namespace

    * Moved ReadTiledMapProperties into the ContentReaderExtensions

    * Created an Extended content manager

    * Moved Tweening tests to base test project

    * Moved Tiled test to base test project

    * Moved Entities Tests to base test project

    * Moved Entities tests to base test project

    * Moved Collisions tests to base test project

    * Moved Pipeline Tiled test to Pipeline tests project

    * Use `var` instead of full type name

    * Add Tiled namespace

    * Correct `Metadata` property name to new `Meta` property name

    * Cleanup namespace

    * Add effects namespace

    * Add Content namespace

    * Update using statements to new namespaces

    * Move Pipeline Tiled tests to Pipeline test project

    * Use correct namespace

    * Use `var` instead of typing out nested types

    * Remove unused namespaces

    * Update to new namespaces

    * Remove unused namespaces

    * Update to new namespaces

    * Remove dependency on Particles csproj

    * Update included content on build

    * Add embedded resources

    * Merge multi csproj structure into single csproj structure

    * TexturePackerPoint properties should be `double` not `int`

    * Update csproj

    * Use dotnet tool to rebuild effects

    * Move effect compilation to targets file
    This will ensure the effects are always built

    * Fix workflow to build effects on linux

    * Set wine path

    * Export instead of using actions env section

    * Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

    * Make CurrentFrame return the actual frame index from the source atlas

    * Start the animation controller playing, don't make the consumer manually call it initially

    * Play is automatically called in the controller ctor

    * Added property to get name of current animation

    * Only copy reference files if user opts in by specifying property in csproj

    * Update Kni solution to new project structure

    * Update Fna solution to new project structure

    * Bump version number to 4.0.0

    * Update release workflow

    * Remove old test

    ---------

    Co-authored-by: Andreas Torebring <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: Matt Johnson <[email protected]>
    Co-authored-by: Kus <[email protected]>
    Co-authored-by: slakedclay <[email protected]>
    Co-authored-by: Cairo Batista <[email protected]>
    Co-authored-by: Gandifil <[email protected]>
    Co-authored-by: David Fidge <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: Lilith Silver <anon>
    Co-authored-by: KatDevsGames <[email protected]>
    Co-authored-by: LACOMBE Dominique <[email protected]>
    Co-authored-by: Apllify <[email protected]>
    Co-authored-by: Stephen <[email protected]>
    Co-authored-by: jimmy b <[email protected]>
    Co-authored-by: Nikos Kastellanos <[email protected]>
    Co-authored-by: Mike Bowers <[email protected]>
    Co-authored-by: James <[email protected]>

    * Release/v4 (#913)

    * Assert Rectangle transform not changing size

    * Rectangle extents are rotated correctly

    * Rebuilt effects with mgfxc 3.8.1.303

    * Uncomment and fix tests

    * Remove tests always passing

    * Issue 707, Created test for null ptr during entity destroy

    * Issue 707, Added null propagation inside component manager destroy method

    * Create VelocityInterpolator

    Allow particles to change velocity as they age.

    * add power of two values to MouseButton

    * Add parallaxFactor of layers in models.

    * Add parallaxFactor in rendering logic.

    * Add checking event == 'push'

    * Fix looping animations incorrectly completing when an update contains a large elapsed time.
    Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
    Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
    Add unit tests for SpriteSheetAnimation.

    * Update README.md

    * Use actual target bounds when testing collision

    * Cleanup

    * Refactor

    Encapsulate a public property (Parents).
    Added xml-comments (to fix some compilation warnings)

    * Format comments and fix spelling

    * Add comments for public fields and properties

    * fix Bag so that it doesn't allocate during foreach enumeration

    * add bag allocation test

    * make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

    * add support for class (nested) properties

    * support type/class field in maps, layers, & tilemaps

    * Update PrimitiveDrawing.cs

    Add a new DrawSolidCircle to add a fill color

    * fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

    * Use Directory.Build.targets
    Moved common csproj properties for NuGet into Directory.Build.targets

    * Added version tag
    This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

    * PackageIconUrl is deprecated
    NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

    * Pack README.md in NuGet packages

    * Add common tags for NuGet packages
    Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

    * Added new Cake Frosting project

    * Cleaned up
    Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

    * Added BuildContext

    * Added BuildTask

    * Added Test Task

    * Added Package Task

    * Added Default task

    * Added namespace

    * Cleanup using statements

    * Ignore cake output directory

    * Updated and automated for NuGet pushing

    * Check for GCLatencyMode.NoGCRegion
    This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

    * Forgot to add System.Runtime using statement

    * Better name for package step

    * NuGet Deploy only in craftworksgames repo

    * Enable Nullable in build project

    * Add additional context variables for build script

    * Use same verbosity, restore, and logo flags as originally used

    * Use same verbosity and nologo setting as original

    * Created Restore task

    Uses same verbosity as original workflow did

    * Update TestTask to use same verbosity, nologo, and nobuild as original workflow

    * Create DeployToGithubTask

    * Create DeployToMyGetTask

    * Create DeployToNuGetTask

    * Added Deploy task

    * Simplify, move most logic into cake build script

    * Ignore Missing XML comment warnings on build

    * Remove async, ignore NU5118 on package

    * Apparently i forgot a semi colon....

    * Remove old collision code.

    * Move collision code to root folder

    * Fix namespaces

    * Add failing test for collisions.

    * Add benchmarks for collisions

    * Refactor collision update, correct reset map

    * Add BoundingRectanglle property for IShape

    * Refactor QuadTree - now we use static AABB intersection check

    * Add layers for collisions

    * Add interface for space splitting and impls

    * Refactor layers for new interface

    * Add comments for collision actor.

    * Add comments for space algo interface.

    * Add spatialHash algo for collision spacing

    * Rename Quadtree to QuadTree

    * Add inline for private methods of SpatialHash.cs

    * Refactor benchmarks for collisions.

    * Fix tests

    * Refactor layers.

    * Add method for set default layer

    * Fix ctor call's

    * Add constructor for CollisionComponent.cs

    * Add extentions for ContentImporter.

    * Add speical contentItem for referencing images.

    * Fix tiledMap processing and writing.

    * Add texture for tile.

    * Add image tileset support

    * Fix using ctor from remote

    * Fix version

    * Fix CiCD

    * Add copy constructor for KeyboardListener.

    * Revert "Add copy constructor for KeyboardListener."

    * Add serializer for RectangleF

    * Add test for new serizalizer

    * Add RectangleFJsonConverter for default serializer.

    * Fixed HSL lerp

    * Move extracting linear operations into special class.

    * Move impls of linear tweening into special class.

    * Add ColorTween

    * Add special TweenTo.

    * Fix TweenTo

    * Add tweening tests

    * Fix activator inside tweener.

    * Check for undefined layer and throw on collision actor insertion

    * Add test coverage

    * Add OrientedBoundingRectangle type

    * Add Points property to OrientedBoundingRectangle

    * Ignore Visual Studio cache

    * Be explicit about conversion of geometries

    Conversion from circle to rectangle should not pass unnoted and be explicit.

    * OrientedBoundedRectangle implements ShapeF

    In that way the OrientedBoundedRectangle can take part of collision tests.

    * Add ascii art to describe intersection tests

    * Update circle and oriented bound box intersection

    * Update dependencies

    * Add Intersects method for OBB

    * Rename to OrientedRectangle

    * Properly intersect circle and oriented rect

    * Calc coll vector for circle and oriented rect

    * Calc coll vector for oriented rects

    * Fixes incorrect rendering of flipped animation tiles

    * Call RectangleF.Intersects to resolve recursion bug
    When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

    * Update Newtonsoft.Json.dll Dependency

    * Removing MyGet Feed Deploy
    Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

    * Moved to `/src/cs`
    Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

    * Move build into `/src/cs`

    * Fix project reference

    * Fix path for project on build task

    * Capital B

    * Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

    * Move source projects into source directory

    * Moved tests into test directory

    * Moved benchmarks into benchmark directory

    * Moved build into build directory

    * Add root props file

    * Add common props for all tests

    * Added `<Authors>` to root props

    * Add common props for source  directory

    * Add props to build directory

    * Moved props from targets file

    * Removed targets file

    * Update for new .artifacts directory

    * nuget.config is not needed

    * Renamed 'Logos' directory to 'logos'
    Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

    * Use correct working directory after moving

    * Remove duplicate import statement

    * Read from props file not targets file.

    * Use new .artifacts directory

    * Updated .gitattributes

    * Updated .gitignore

    * Set ArtifactPath within the project category directory

    * Drop CAKE build and move Build CI to github workflow

    * Setup code analysis with .editorconfig

    * Don't use nullable reference in a non-nullable context

    * Correct spelling of minimal

    * Fix GitHub Nuget Push (#859)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove GitHub Deploy (#860)

    * Fix github url for nuget push

    * forgot the h in https

    * Remove github push for now, need to check repository settings

    * Cleanup (#862)

    * Removed Roadmap
    The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

    * Added new note at top of readme

    * updated information for installing nuget

    * Made using content pipeline extensions a section and not a quote

    * Removed information about MyGet feed

    * Removed patreon from readme

    * Update License

    * renamed master branch to main

    * Remove community forum link
    MonoGame is closing the community forums in favor of discord and github discussions

    * Update workflows

    * Removed patreon added aristurtledev (#863)

    * Fix funding (#864)

    * Use ArtifactsPath to resolve include dlls for pack (#865)

    * Add additional input parameters (#866)

    * Only specify source and prerelease (#867)

    * Update prerelease version (#868)

    * Replace Newtonsoft.Json with System.Text.Json (#869)

    * Converted to use `System.Text.Json`

    * Remove Newtonsoft.Json Dependency
    Newtonsoft.Json dependency has been removed in favor of System.Text.Json

    * Treat MGFXO file as binary

    * Replace `Matrix2` with `Matrix3x2` (#870)

    * Replace `Matrix2` with `Matrix3x2`

    * Update benchmarks

    * Add XML documentation for `Matrix3x2`

    * Add Edge Test for `Polygon.Contains` (#871)

    * Added Assert for edge contains
    Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

    * Renamed to PolygonTests

    * Replace `Size3` with `Vector3` (#872)

    * Rename `Size2` to `SizeF` (#873)

    * Remove `Point3` (#874)

    * Remove `Point2` (#875)

    * Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

    * Remove `Point2`

    * Added unit test to ensure issue is resolved (#876)

    * Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877)

    * Implements standard IDispose pattern (#879)

    * upgrade solution to VS2022 (#880)

    * update project types to net.Sdk

    * upgrade solution to VS2022

    * Remove unnecessary dependencies to SharpDX and Content.Pipeline from the core library (#881)

    * remove unused SharpDX using

    introduces in #840

    * remove Content.Pipeline reference from the core library

    introduced in #692

    * use System ZLibStream (#882)

    ZLibStream was added in net6

    https://learn.microsoft.com/en-us/dotnet/api/system.io.compression.zlibstream?view=net-8.0

    * Added changelog (#883)

    * Added changelog

    * Added note about unreleased

    * Make links for users (#884)

    * Copy Reference DLLs from NuGet Automatically (#885)

    * Pack value should be `true` not `True`

    * Copy content pipeline dll references to project directory for ease of use

    * Forgot `/` in path

    * Updated Changelog (#886)

    Added information about #885

    * Refactor `BitmapFont` (#887)

    * Update file header

    * Created initial project to move BitmapFont too

    * XMl, Text, and Binar reading now supported for BMFont

    * Refactor BittmapFont

    * Update content pipeline from BitmapFont refactor

    * Update changelog

    * Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888)

    * Update Changelog (#889)

    * Updated so all projects have changelog in root when viewing in visual studio

    * Updated changelog

    * Texture Atlas Refactor (#890)

    * Moved `TextureRegion2D` and `NinePatchRegion2D` into Graphics namespace
    These are used for more than just texture atlas related things and are primarly for working with `Texture2D` instances and creating sub textures from them.  Moving them to Graphics namespace where `Texture2D` lives in MonoGame

    * Dropped the `2D` suffix from `TextureRegion2D` and `NinePatchRegion2D`

    * Moved `RectanglExtensions` to project root
    This moves the extensions for `Rectangle` to the same relative namespace location as `Rectangle` is in MonoGame.

    * Renamed to `Rectangle.Extensions.cs`

    * Separate `Rectangle` from `RectangleF` extensions

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Added `GetRelativeRectangle` method

    * Updated documentation

    * Top-level namespace

    * Remove whitespace

    * Move properties up

    * Top-level namespace

    * Don't recreate structs for `Bounds` and Size`
    By having the property return a new struct, this allocates on the stack during situations like a loop during draw.

    * Size should be `Size` not `SizeF` value
    Textures deal in pixels (ints not floats)

    * Removed setter for `Texture` property
    Texture should not be set after region is created

    * Added UV properties

    * Refactor constructors

    * Added documentation

    * Added license header

    * Make it an actual extension method

    * Added `GetSubRegion` extension methods for `TextureRegion`

    * Update documentation about ObjectDisposedException

    * Move const values to top

    * Resolve errors from`TextureRegion` refactor

    * Update unit tests for TextureRegion refactor

    * Started NinePatch rework

    * Refactored NinePatch

    * Update for texture region constructor change

    * Remove ninepatch from atlas

    * Moved `TextureAtlasExtensions` into `SpriteBatch.Extensions`
    These are extension methods for the sprite batch

    * Updated to use new `DrawTextureRegion` method after rename

    * Renamed to NinePatchJsonConverter

    * Removed `GetRegion<T>`
    TextureAtlas no longer contains nine patch regions, so this method isn't needed

    * Update after `NinePatchRegion2DJsonConverter` name change

    * Resolve errors from NinePatch refactor

    * TextureAtlas rework

    * Renamed `TextureRegion` to `Texture2DRegion`

    * Moved ContentReaders to new Content\ContentReaders directory

    * Moved TextureAtlasJsonConvert to Serialization directory

    * Adjusted name from `Texture*` to `Texture2D*`

    * Update runtimereader and runtimettype strings

    * Kni.Extended (#892)

    * KNI projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * remove test for issue #633

    * build tests

    * KNI TypeReaders

    * KNI/XNA compatible code

    * GetRuntimeReader from runtime types

    * remove MockGameWindow

    * Fna.Extended (#893)

    * FNA projects

    * update actions

    fixes MSBUILD : error MSB1011: Specify which project or solution file to
    use because this folder contains more than one project or solution file.

    * build tests

    * remove test for issue #633

    * FNA/XNA compatible

    * GraphicsDevice Extensions

    * remove MockGameWindow

    ---------

    Co-authored-by: Christopher Whitley <[email protected]>

    * Sprite Rework (#897)

    * Add file header

    * Refator to file-scoped namespace

    * Least complex to most complext method ordering

    * Refactor: Group properties at top before constructor

    * Use the new UV properties from Texture2DRegion.
    This removes the dependency on the texture size in the calculations if the TextureRegion property is changed.

    * No longer need to cache normalized origin to preserve it

    * Use ArgumentNullException instead

    * Use ArgumentNullException.ThrowIfNull

    * Refactor:  Use brackets for readability

    * Add xml documentation

    * Add check for disposed texture

    * Moved `Sprite` to `MonoGame.Extended.Graphics`

    * Moved extension methods for rendering sprite into `SpriteBatch.Extensions`

    * `ISpriteBatchDrawable` is not used by anything
    It was originally part of the ScreneGraph implementation in MonoGame.Extended which was replaced by the ECS system.  It appears that this interface was forgotten to be removed and is not used for anything anymore.

    * Add `CreateSprite` methods

    * Add file header

    * Moved `SpriteSheetAnimationFrame` to `MonoGame.Extended.Graphics`

    * Move properties before constructor.

    * Changed `Duration` to `TimeSpan` type

    * Renamed `Index` to `FrameIndex`

    * Add `TextureRegion` property

    * Make property get only

    * Cleanup whitespace

    * Remove `SpriteSheetAnimationFrameJsonConverter`

    * Cleanup unused namespaces

    * Make file-scoped namespace

    * Added xml documentation

    * Added file header

    * marked constructor as internal.
    This will be created from a spritesheet itself

    * Move `SpriteSheetAnimationCycle` to `MonoGame.Extended.Graphcis`

    * File scoped namespace

    * Add file header

    * Reorganize: Move properties above constructor

    * Make `Frames` property a read-only span

    * Remove duration, this is being moved to the frame itself

    * Add `Name` property

    * Set looping, reversed, and ping pong properties in ctor

    * Make ctor internal
    This will be an object created by a spritesheet instane itself.

    * Cleanup: Whitespace

    * Add `FrameCount` property

    * Add `GetFrame` method and accompanying `this[int]` method.

    * Documentation: Added missing documentation.

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * WIP: Temporary commit for workstation change

    * Refactor: Animation Refactor Completed

    * Refactor: Sprite stuff finished

    * Remove tests that can't be run on GitHub CI
    Need to find alternative

    * Make optional name param the last param in Texture2DRegion ctors

    * Resolve merge conflicts

    * Add Kni Package (#898)

    * Capitalize KNI (#899)

    * Resolves NullReferenceException When Getting Invalid Key From TiledMapProperties (#903)

    * Add test to validate issue

    * Resolve issue

    * Fix `NullReferenceException` in `ObjectPool` when reusing all returned items (#904)

    * Replaced delegate with Action<T>

    * Change delegate to Action<T>

    * Add unit test to confirm issue

    * Fix NullReferenceException in ObjectPool when reusing all returned items

    The ObjectPool's Use() method was throwing a NullReferenceException when
    all items had been returned to the pool and New() was called again. This
    was due to _tailNode being null in this scenario.

    Added a null check for _tailNode in Use() method to properly reinitialize
    the linked list structure when the pool has been emptied and refilled.

    * Moved MonoGame.Extended.Gui to its own repository (#905)

    * Update animated sprite so the constructor api is similar to original MGE (#906)

    * Update animated sprite so the constructor api is similar to original MGE

    * Fix tests from changes

    * Add pitch support to Camera & OrthographicCamera (#907)

    * Added pitch support to OrthographicCamera

    * Added pitch functions to base Camera class

    * Reorganization (#909)

    * Removed MonoGame.Extended.Animations
    This project was just a shell that referenced MonoGame.Extended.csproj. It added no additional functionality.

    * Rework BitmapFonts for new project organization.

    * Cleanup namespaces

    * Cleanup namespaces

    * Move MonoGame.Extended.Collision into base project

    * Moved MonoGame.Extended.Entities into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Graphics into base project

    * Moved MonoGame.Extended.Input into base project

    * Moved MonoGame.Extended.Particles into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tiled into base project

    * Moved MonoGame.Extended.Tweening into base project

    * Removing SpriteFactory support
    This will be added back in at a later date once the SpriteFactory application has been updated

    * Update TexturePacker content import support

    * Only needs to reference base project now

    * Moved to Serialization namespace

    * Moved  Json serialization to Serialization.Json namespace

    * Moved TexturePacker content DTOs to the Content namespace

    * Renamed to Texture2DRegion.Extensions.cs

    * Cleaned up namespace

    * Moved ReadTiledMapProperties into the ContentReaderExtensions

    * Created an Extended content manager

    * Moved Tweening tests to base test project

    * Moved Tiled test to base test project

    * Moved Entities Tests to base test project

    * Moved Entities tests to base test project

    * Moved Collisions tests to base test project

    * Moved Pipeline Tiled test to Pipeline tests project

    * Use `var` instead of full type name

    * Add Tiled namespace

    * Correct `Metadata` property name to new `Meta` property name

    * Cleanup namespace

    * Add effects namespace

    * Add Content namespace

    * Update using statements to new namespaces

    * Move Pipeline Tiled tests to Pipeline test project

    * Use correct namespace

    * Use `var` instead of typing out nested types

    * Remove unused namespaces

    * Update to new namespaces

    * Remove unused namespaces

    * Update to new namespaces

    * Remove dependency on Particles csproj

    * Update included content on build

    * Add embedded resources

    * Merge multi csproj structure into single csproj structure

    * TexturePackerPoint properties should be `double` not `int`

    * Update csproj

    * Use dotnet tool to rebuild effects

    * Move effect compilation to targets file
    This will ensure the effects are always built

    * Fix workflow to build effects on linux

    * Set wine path

    * Export instead of using actions env section

    * Revert back to manual effect compile until automation can be solved on GitHub Ubuntu runner

    * Make CurrentFrame return the actual frame index from the source atlas

    * Start the animation controller playing, don't make the consumer manually call it initially

    * Play is automatically called in the controller ctor

    * Added property to get name of current animation

    * Only copy reference files if user opts in by specifying property in csproj

    * Update Kni solution to new project structure

    * Update Fna solution to new project structure

    * Bump version number to 4.0.0

    * Update release workflow

    * Remove old test

    * Fix KNI specific issues

    * Update for Fna

    ---------

    Co-authored-by: Andreas Torebring <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: Matt Johnson <[email protected]>
    Co-authored-by: Kus <[email protected]>
    Co-authored-by: slakedclay <[email protected]>
    Co-authored-by: Cairo Batista <[email protected]>
    Co-authored-by: Gandifil <[email protected]>
    Co-authored-by: David Fidge <[email protected]>
    Co-authored-by: Lucas Girouard-Stranks <[email protected]>
    Co-authored-by: Lilith Silver <anon>
    Co-authored-by: KatDevsGames <[email protected]>
    Co-authored-by: LACOMBE Dominique <[email protected]>
    Co-authored-by: Apllify <[email protected]>
    Co-authored-by: Stephen <[email protected]>
    Co-authored-by: jimmy b <[email protected]>
    Co-authored-by: Nikos Kastellanos <[email protected]>
    Co-authored-by: Mike Bowers <[email protected]>
    Co-authored-by: James <[email protected]>

    * Squashed commit of the following:

    commit 8b3c2f0e1b9ada5649a4fab690e60476559f0320
    Author: Christopher Whitley <[email protected]>
    Date:   Tue Jul 9 15:22:33 2024 -0400

        Various fixes for the version 4 initial release (#915)

        * Remove logging statement, not needed

        * Add bmfont texture as dependency

        * Remove existing instance check, this will always be null

        * Fix BitmapFontContentReader

        * Remove TODO comment
        This was added 8 years ago, and I don't see any determinant to the states being global.

        * Renamed `Refresh` to `Update`

        * Added documentation comments

        * file scoped namespace

        * Remove unnecessary using

        * Add file header

        * Remove obsolete methods and update documentation

        * file scoped namespace

        * Remove TODO comment
        The fields being static is fine.

        * Renamed `Refersh` to `Update`

        * Add documentation

        * file scoped namespace

        * Add documentation

        * Remove deprecated methods

    commit 1d440c9d7d62fee6405fc33d8e50ac248124f9c5
    Author: Christopher Whitley <[email protected]>
    Date:   Mon Jul 8 18:54:38 2024 -0400

        Release/v4 (#914)

        * Make CurrentFrame return the actual frame index from the source atlas

        * Start the animation controller playing, don't make the consumer manually call it initially

        * Play is automatically called in the controller ctor

        * Added property to get name of current animation

        * Only copy reference files if user opts in by specifying property in csproj

        * Update Kni solution to new project structure

        * Update Fna solution to new project structure

        * Bump version number to 4.0.0

        * Update release workflow

        * Remove old test

        * Version 4.0.0 Release (#911)

        * Remove duplicate fact

        * Add .user file to gitignore

        * Assert Rectangle translation transform

        * Assert Rectangle transform not changing size

        * Rectangle extents are rotated correctly

        * Rebuilt effects with mgfxc 3.8.1.303

        * Uncomment and fix tests

        * Remove tests always passing

        * Issue 707, Created test for null ptr during entity destroy

        * Issue 707, Added null propagation inside component manager destroy method

        * Create VelocityInterpolator

        Allow particles to change velocity as they age.

        * add power of two values to MouseButton

        * Add parallaxFactor of layers in models.

        * Add parallaxFactor in rendering logic.

        * Add checking event == 'push'

        * Fix looping animations incorrectly completing when an update contains a large elapsed time.
        Ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete rather than firing Complete immediately upon entering the frame.  This makes it consistent with a non ping pong animation which waits for the frame delay of the last frame before it fires Complete.
        Ping Pong now finishes on the first frame rather than potentially finishing on a different frame if the elapsed time since last update was larger than the time remaining for the animation to become complete.
        Add unit tests for SpriteSheetAnimation.

        * Update README.md

        * Use actual target bounds when testing collision

        * Cleanup

        * Refactor

        Encapsulate a public property (Parents).
        Added xml-comments (to fix some compilation warnings)

        * Format comments and fix spelling

        * Add comments for public fields and properties

        * fix Bag so that it doesn't allocate during foreach enumeration

        * add bag allocation test

        * make WasKey/ButtonJustDown/Up obsolete and replace with clarified versions

        * add support for class (nested) properties

        * support type/class field in maps, layers, & tilemaps

        * Update PrimitiveDrawing.cs

        Add a new DrawSolidCircle to add a fill color

        * fix allocating WasAnyKeyJustDown method; add GetPressedKeys non-alloc overload

        * Use Directory.Build.targets
        Moved common csproj properties for NuGet into Directory.Build.targets

        * Added version tag
        This is so we don't have to rely on github runner actions to generate the version number, and we can use it in the build scripts

        * PackageIconUrl is deprecated
        NuGet packages should use PacakgeIcon with a packed image inside the NuGet insetad of PackageIconUrl

        * Pack README.md in NuGet packages

        * Add common tags for NuGet packages
        Added the `<RepositoryType>`, `<RepositoryBranch>`, `<NeutralLanguage>` and `<PacakgeLicenseExpression>` tags

        * Added new Cake Frosting project

        * Cleaned up
        Cleaned up the Program.cs for the Cake Frosting project.  Added the working direcotry directive

        * Added BuildContext

        * Added BuildTask

        * Added Test Task

        * Added Package Task

        * Added Default task

        * Added namespace

        * Cleanup using statements

        * Ignore cake output directory

        * Updated and automated for NuGet pushing

        * Check for GCLatencyMode.NoGCRegion
        This test fails occasionaly when run through the automated cake script.  Wrapped the EndNoGCREgion in a check for GCTatencyMode.NoGCRegion to resolve

        * Forgot to add System.Runtime using statement

        * Better name for package step

        * NuGet Deploy only in craftworksgames repo

        * Enable Nullable in build project

        * Add additional context variables for build script

        * Use same verbosity, restore, and logo flags as originally used

        * Use same verbosity and nologo setting as original

        * Created Restore task

        Uses same verbosity as original workflow did

        * Update TestTask to use same verbosity, nologo, and nobuild as original workflow

        * Create DeployToGithubTask

        * Create DeployToMyGetTask

        * Create DeployToNuGetTask

        * Added Deploy task

        * Simplify, move most logic into cake build script

        * Ignore Missing XML comment warnings on build

        * Remove async, ignore NU5118 on package

        * Apparently i forgot a semi colon....

        * Remove old collision code.

        * Move collision code to root folder

        * Fix namespaces

        * Add failing test for collisions.

        * Add benchmarks for collisions

        * Refactor collision update, correct reset map

        * Add BoundingRectanglle property for IShape

        * Refactor QuadTree - now we use static AABB intersection check

        * Add layers for collisions

        * Add interface for space splitting and impls

        * Refactor layers for new interface

        * Add comments for collision actor.

        * Add comments for space algo interface.

        * Add spatialHash algo for collision spacing

        * Rename Quadtree to QuadTree

        * Add inline for private methods of SpatialHash.cs

        * Refactor benchmarks for collisions.

        * Fix tests

        * Refactor layers.

        * Add method for set default layer

        * Fix ctor call's

        * Add constructor for CollisionComponent.cs

        * Add extentions for ContentImporter.

        * Add speical contentItem for referencing images.

        * Fix tiledMap processing and writing.

        * Add texture for tile.

        * Add image tileset support

        * Fix using ctor from remote

        * Fix version

        * Fix CiCD

        * Add copy constructor for KeyboardListener.

        * Revert "Add copy constructor for KeyboardListener."

        * Add serializer for RectangleF

        * Add test for new serizalizer

        * Add RectangleFJsonConverter for default serializer.

        * Fixed HSL lerp

        * Move extracting linear operations into special class.

        * Move impls of linear tweening into special class.

        * Add ColorTween

        * Add special TweenTo.

        * Fix TweenTo

        * Add tweening tests

        * Fix activator inside tweener.

        * Check for undefined layer and throw on collision actor insertion

        * Add test coverage

        * Add OrientedBoundingRectangle type

        * Add Points property to OrientedBoundingRectangle

        * Ignore Visual Studio cache

        * Be explicit about conversion of geometries

        Conversion from circle to rectangle should not pass unnoted and be explicit.

        * OrientedBoundedRectangle implements ShapeF

        In that way the OrientedBoundedRectangle can take part of collision tests.

        * Add ascii art to describe intersection tests

        * Update circle and oriented bound box intersection

        * Update dependencies

        * Add Intersects method for OBB

        * Rename to OrientedRectangle

        * Properly intersect circle and oriented rect

        * Calc coll vector for circle and oriented rect

        * Calc coll vector for oriented rects

        * Fixes incorrect rendering of flipped animation tiles

        * Call RectangleF.Intersects to resolve recursion bug
        When both params `a` and `b` are of type `RectangleF` just calling `Shape.Intersects` creates a infinite recursion bug.

        * Update Newtonsoft.Json.dll Dependency

        * Removing MyGet Feed Deploy
        Lithiums MyGet feed won't allow the NuGet push due to the SemVersions of the package containing a 4th build number value.

        * Moved to `/src/cs`
        Moved benchmark and tweening test projects into the `/src/cs` to keep project organization constancy.

        * Move build into `/src/cs`

        * Fix project reference

        * Fix path for project on build task

        * Capital B

        * Changed the Flip Flag array to be private and readonly and added a public property that returns the backing field as a ReadOnlySpan.

        * Move source projects into source directory

        * Moved tests into test directory

        * Moved benchmarks into benchmark directory

        * Moved build into build directory

        * Add root props file

        * Add common props for all tests

        * Added `<Authors>` to root props

        * Add common props for source  directory

        * Add props to build directory

        * Moved props from targets file

        * Removed targets file

        * Update for new .artifacts directory

        * nuget.config is not needed

        * Renamed 'Logos' directory to 'logos'
        Case sensitivity matters depending on operating system, so it's more convenient where possible to keep directory names lower case

        * Use correct working directory after moving

        * Remove duplicate import statement

        * Read from props file not targets file.

        * Use new .artifacts directory

        * Updated .gitattributes

        * Updated .gitignore

        * Set ArtifactPath within the project category directory

        * Drop CAKE build and move Build CI to github workflow

        * Setup code analysis with .editorconfig

        * Don't use nullable reference in a non-nullable context

        * Correct spelling of minimal

        * Fix GitHub Nuget Push (#859)

        * Fix github url for nuget push

        * forgot the h in https

        * Remove GitHub Deploy (#860)

        * Fix github url for nuget push

        * forgot the h in https

        * Remove github push for now, need to check repository settings

        * Cleanup (#862)

        * Removed Roadmap
        The Roadmap seems to have been initially added to show the plans to switch to an FNA fork and act as a bridge for katabasis.  This is no longer the case for this repository as it will remain focused at the moment on MonoGame support only.

        * Added new note at top of readme

        * updated information for installing nuget

        * Made using content pipeline extensions a section and not a quote

        * Removed information about MyGet feed

        * Removed patreon from readme

        * Update License

        * renamed master branch to main

        * Remove community forum link
        MonoGame is closing the community forums in favor of discord and github discussions

        * Update workflows

        * Removed patreon added aristurtledev (#863)

        * Fix funding (#864)

        * Use ArtifactsPath to resolve include dlls for pack (#865)

        * Add additional input parameters (#866)

        * Only specify source and prerelease (#867)

        * Update prerelease version (#868)

        * Replace Newtonsoft.Json with System.Text.Json (#869)

        * Converted to use `System.Text.Json`

        * Remove Newtonsoft.Json Dependency
        Newtonsoft.Json dependency has been removed in favor of System.Text.Json

        * Treat MGFXO file as binary

        * Replace `Matrix2` with `Matrix3x2` (#870)

        * Replace `Matrix2` with `Matrix3x2`

        * Update benchmarks

        * Add XML documentation for `Matrix3x2`

        * Add Edge Test for `Polygon.Contains` (#871)

        * Added Assert for edge contains
        Reference: https://github.com/craftworkgames/MonoGame.Extended/issues/214

        * Renamed to PolygonTests

        * Replace `Size3` with `Vector3` (#872)

        * Rename `Size2` to `SizeF` (#873)

        * Remove `Point3` (#874)

        * Remove `Point2` (#875)

        * Added `CalculateMinimumVector2` and `CalculateMaximumVector2` as replacement for `Point2.Minimum` and `Point2.Maximum`

        * Rem…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant