mirror of
https://github.com/AlexMacocian/MonoGame.Extended.git
synced 2026-07-15 15:09:29 +00:00
4beea37b25
* 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 <103014489+AristurtleDev@users.noreply.github.com> * 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 <andreas.torebring@gmail.com> Co-authored-by: Lucas Girouard-Stranks <lustranks@gmail.com> Co-authored-by: Matt Johnson <matt.johnson.dev@gmail.com> Co-authored-by: Kus <git@kus.dev> Co-authored-by: slakedclay <118028225+slakedclay@users.noreply.github.com> Co-authored-by: Cairo Batista <cairomb1@gmail.com> Co-authored-by: Gandifil <gandifilmk@gmail.com> Co-authored-by: David Fidge <dfidge@internode.on.net> Co-authored-by: Lucas Girouard-Stranks <519592+lithiumtoast@users.noreply.github.com> Co-authored-by: Lilith Silver <anon> Co-authored-by: KatDevsGames <north@tinymagnet.com> Co-authored-by: LACOMBE Dominique <lacombe.dominique@outlook.fr> Co-authored-by: Apllify <ralilahlou50@gmail.com> Co-authored-by: Stephen <stephenafoster88@gmail.com> Co-authored-by: jimmy b <tigurx@gmail.com> Co-authored-by: Nikos Kastellanos <nkastellanos@gmail.com> Co-authored-by: Mike Bowers <mbowersjr@gmail.com> Co-authored-by: James <52947350+jameskellie@users.noreply.github.com> * 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 <103014489+AristurtleDev@users.noreply.github.com> * 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 <andreas.torebring@gmail.com> Co-authored-by: Lucas Girouard-Stranks <lustranks@gmail.com> Co-authored-by: Matt Johnson <matt.johnson.dev@gmail.com> Co-authored-by: Kus <git@kus.dev> Co-authored-by: slakedclay <118028225+slakedclay@users.noreply.github.com> Co-authored-by: Cairo Batista <cairomb1@gmail.com> Co-authored-by: Gandifil <gandifilmk@gmail.com> Co-authored-by: David Fidge <dfidge@internode.on.net> Co-authored-by: Lucas Girouard-Stranks <519592+lithiumtoast@users.noreply.github.com> Co-authored-by: Lilith Silver <anon> Co-authored-by: KatDevsGames <north@tinymagnet.com> Co-authored-by: LACOMBE Dominique <lacombe.dominique@outlook.fr> Co-authored-by: Apllify <ralilahlou50@gmail.com> Co-authored-by: Stephen <stephenafoster88@gmail.com> Co-authored-by: jimmy b <tigurx@gmail.com> Co-authored-by: Nikos Kastellanos <nkastellanos@gmail.com> Co-authored-by: Mike Bowers <mbowersjr@gmail.com> Co-authored-by: James <52947350+jameskellie@users.noreply.github.com> * Squashed commit of the following: commit8b3c2f0e1bAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit1d440c9d7dAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 <103014489+AristurtleDev@users.noreply.github.com> * 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 <andreas.torebring@gmail.com> Co-authored-by: Lucas Girouard-Stranks <lustranks@gmail.com> Co-authored-by: Matt Johnson <matt.johnson.dev@gmail.com> Co-authored-by: Kus <git@kus.dev> Co-authored-by: slakedclay <118028225+slakedclay@users.noreply.github.com> Co-authored-by: Cairo Batista <cairomb1@gmail.com> Co-authored-by: Gandifil <gandifilmk@gmail.com> Co-authored-by: David Fidge <dfidge@internode.on.net> Co-authored-by: Lucas Girouard-Stranks <519592+lithiumtoast@users.noreply.github.com> Co-authored-by: Lilith Silver <anon> Co-authored-by: KatDevsGames <north@tinymagnet.com> Co-authored-by: LACOMBE Dominique <lacombe.dominique@outlook.fr> Co-authored-by: Apllify <ralilahlou50@gmail.com> Co-authored-by: Stephen <stephenafoster88@gmail.com> Co-authored-by: jimmy b <tigurx@gmail.com> Co-authored-by: Nikos Kastellanos <nkastellanos@gmail.com> Co-authored-by: Mike Bowers <mbowersjr@gmail.com> Co-authored-by: James <52947350+jameskellie@users.noreply.github.com> * Fix KNI specific issues * Update for Fna --------- Co-authored-by: Andreas Torebring <andreas.torebring@gmail.com> Co-authored-by: Lucas Girouard-Stranks <lustranks@gmail.com> Co-authored-by: Matt Johnson <matt.johnson.dev@gmail.com> Co-authored-by: Kus <git@kus.dev> Co-authored-by: slakedclay <118028225+slakedclay@users.noreply.github.com> Co-authored-by: Cairo Batista <cairomb1@gmail.com> Co-authored-by: Gandifil <gandifilmk@gmail.com> Co-authored-by: David Fidge <dfidge@internode.on.net> Co-authored-by: Lucas Girouard-Stranks <519592+lithiumtoast@users.noreply.github.com> Co-authored-by: KatDevsGames <north@tinymagnet.com> Co-authored-by: LACOMBE Dominique <lacombe.dominique@outlook.fr> Co-authored-by: Apllify <ralilahlou50@gmail.com> Co-authored-by: Stephen <stephenafoster88@gmail.com> Co-authored-by: jimmy b <tigurx@gmail.com> Co-authored-by: Nikos Kastellanos <nkastellanos@gmail.com> Co-authored-by: Mike Bowers <mbowersjr@gmail.com> Co-authored-by: James <52947350+jameskellie@users.noreply.github.com> commit0fe1064217Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit3a5269cfeaAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit00a0d4a343Author: James <52947350+jameskellie@users.noreply.github.com> 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 commit2ad7a9d3dbAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit98ee05f58aAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Sat Jun 29 18:28:12 2024 -0400 Moved MonoGame.Extended.Gui to its own repository (#905) commit1f3f1c5aa0Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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. commit93473744d7Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit9614a62292Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon Jun 24 19:08:26 2024 -0400 Capitalize KNI (#899) commit5b2a44ad28Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon Jun 24 19:04:33 2024 -0400 Add Kni Package (#898) commita501f76162Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit4ecb74f6b6Author: Nikos Kastellanos <nkastellanos@gmail.com> 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 <103014489+AristurtleDev@users.noreply.github.com> commit2bbdc38b51Author: Nikos Kastellanos <nkastellanos@gmail.com> 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 commit8850875fb4Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit9bd208184fAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit82daabb120Author: Mike Bowers <mbowersjr@gmail.com> Date: Tue Jun 11 11:14:36 2024 -0400 Updated ComponentManager to implement IEnumerable<ComponentMapper> (#823) (#888) commit66277568c8Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit1f0235c605Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon Jun 3 00:30:29 2024 -0400 Updated Changelog (#886) Added information about #885 commit792aa89809Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commitd40ad10459Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Sat Jun 1 17:34:24 2024 -0400 Make links for users (#884) commit4675bff3d4Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Sat Jun 1 17:22:23 2024 -0400 Added changelog (#883) * Added changelog * Added note about unreleased commitcfb97d47e3Author: Nikos Kastellanos <nkastellanos@gmail.com> 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 commit980d7a0c00Author: Nikos Kastellanos <nkastellanos@gmail.com> 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 commit8810a4ce7eAuthor: Nikos Kastellanos <nkastellanos@gmail.com> Date: Sun Jun 2 00:08:44 2024 +0300 upgrade solution to VS2022 (#880) * update project types to net.Sdk * upgrade solution to VS2022 commitdcf1589066Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Sat Jun 1 17:05:51 2024 -0400 Implements standard IDispose pattern (#879) commit1119f82ff6Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Wed May 29 11:40:59 2024 -0400 Add unit test for `ContentReaderExtensions.GetRelativeAssetName` (#877) commitb9c011bee9Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Wed May 29 11:11:50 2024 -0400 Added unit test to ensure issue is resolved (#876) commit9239fced04Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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` commit0427aa3dedAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Wed May 29 00:29:14 2024 -0400 Remove `Point3` (#874) commit25206c57daAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Wed May 29 00:23:49 2024 -0400 Rename `Size2` to `SizeF` (#873) commit27108ba8d0Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Wed May 29 00:01:26 2024 -0400 Replace `Size3` with `Vector3` (#872) commit89c8984079Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit49038f5d42Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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` commitd008b1bd41Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commitee0883ebb4Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon May 20 18:40:23 2024 -0400 Update prerelease version (#868) commit0867284bd7Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon May 20 18:32:46 2024 -0400 Only specify source and prerelease (#867) commit7bda811f4aAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon May 20 18:21:00 2024 -0400 Add additional input parameters (#866) commitf8376db06aAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon May 20 18:19:24 2024 -0400 Use ArtifactsPath to resolve include dlls for pack (#865) commit4d582fe850Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon May 20 02:24:27 2024 -0400 Fix funding (#864) commit43e313eb50Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Mon May 20 02:20:55 2024 -0400 Removed patreon added aristurtledev (#863) commit9a7ce46635Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit0a17af4829Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commitc16d831088Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit8b34b04651Merge:9c5f7cd38c09ca14Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Sun May 19 16:12:06 2024 -0400 Merge pull request #858 from craftworkgames/reorg Reorginze project strcture commit8c09ca1495Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sun May 19 16:07:58 2024 -0400 Correct spelling of minimal commit694b595694Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sun May 19 15:53:41 2024 -0400 Don't use nullable reference in a non-nullable context commitf25d972b88Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sun May 19 15:53:24 2024 -0400 Setup code analysis with .editorconfig commit24d9477a0fAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Sun May 19 15:28:33 2024 -0400 Drop CAKE build and move Build CI to github workflow commit6b02975755Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sun May 19 15:27:43 2024 -0400 Set ArtifactPath within the project category directory commit36eb2c66bcAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Sun May 19 15:25:54 2024 -0400 Updated .gitignore commit8b991b8041Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sun May 19 15:25:36 2024 -0400 Updated .gitattributes commit4bcf940e08Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:50:55 2024 -0400 Use new .artifacts directory commit33be368238Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:40:49 2024 -0400 Read from props file not targets file. commit126b79dd42Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:40:34 2024 -0400 Remove duplicate import statement commit7aa97cd909Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:40:22 2024 -0400 Use correct working directory after moving commit85903027f0Author: Christopher Whitley <aristurtledev@gmail.com> 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 commit399236428cAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:33:19 2024 -0400 nuget.config is not needed commita5f16a0cb9Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:30:49 2024 -0400 Update for new .artifacts directory commit00808876f1Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:29:53 2024 -0400 Removed targets file commita85188eb32Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:29:48 2024 -0400 Moved props from targets file commita5c18a6f70Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:15:58 2024 -0400 Add props to build directory commit32bb9d5601Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:01:47 2024 -0400 Add common props for source directory commit2696b4f5f4Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 21:01:16 2024 -0400 Added `<Authors>` to root props commita5209fecadAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 20:40:12 2024 -0400 Add common props for all tests commitf4aff0e6a1Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 20:39:58 2024 -0400 Add root props file commit99b995d6b1Author: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 20:04:57 2024 -0400 Moved build into build directory commit7e5ffdcf6bAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 20:02:59 2024 -0400 Moved benchmarks into benchmark directory commitf68cff17bfAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 20:01:37 2024 -0400 Moved tests into test directory commita4d72eaf6cAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Sat May 18 19:59:41 2024 -0400 Move source projects into source directory commit9c5f7cd3b4Merge:455ea4d555bfe25cAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit55bfe25c94Merge:a7b0a123aea6ee4cAuthor: jimmy b <tigurx@gmail.com> 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 commitaea6ee4c91Merge:021949fe455ea4d5Author: tigurx <tigurx@gmail.com> Date: Sat May 18 13:15:19 2024 -0500 Merge branch 'craftworkgames:develop' into tiled_animation_flip_fix commita7b0a12383Author: jimmy b <tigurx@gmail.com> 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. commit455ea4d561Merge:d650e64b6c6d00e2Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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 commit6c6d00e234Author: Christopher Whitley <aristurtledev@gmail.com> Date: Fri May 17 22:22:48 2024 -0400 Capital B commit0ff198c75fAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Fri May 17 22:19:57 2024 -0400 Fix path for project on build task commitb935e2318eAuthor: Christopher Whitley <aristurtledev@gmail.com> Date: Fri May 17 22:16:03 2024 -0400 Fix project reference commita99c384d15Author: Christopher Whitley <aristurtledev@gmail.com> Date: Fri May 17 22:15:54 2024 -0400 Move build into `/src/cs` commit021949fe8fMerge:a166f340d650e64bAuthor: tigurx <tigurx@gmail.com> Date: Fri May 17 14:23:23 2024 -0500 Merge branch 'craftworkgames:develop' into tiled_animation_flip_fix commit2c13bf1933Author: Christopher Whitley <aristurtledev@gmail.com> 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. commitd650e64b44Merge:0a25e0bded2371b5Author: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Fri May 17 10:38:51 2024 -0400 Merge pull request #856 from AristurtleDev/disable/myget-feed Removing MyGet Feed Deploy commited2371b55aAuthor: Christopher Whitley <aristurtledev@gmail.com> 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. commit0a25e0bdf7Merge:04283d5872e4490aAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> 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) commit04283d58eeMerge:4da89293cd4a47aeAuthor: Christopher Whitley <103014489+AristurtleDev@users.noreply.github.com> Date: Fri May 17 10:18:17 2024 -0400 Merge pull request #854 from AristurtleDev/fix/update-newtonsoft-dependency Update Newtonsoft.Json.dll Dependency commitcd4a47ae35Author: Christopher Whitley <aristurtledev@gmail.com> Date: Fri May 17 00:05:13 2024 -0400 Update Newtonsoft.Json.dll Dependency commit72e4490ab9Author: Christopher Whitley <aristurtledev@gmail.com> 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. commit4da8929311Merge:0dd85c7de6e26d28Author: Max Kopjev <GandifilMK@gmail.com> 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 commite6e26d28fcMerge:7b8be4ce0dd85c7dAuthor: Max Kopjev <GandifilMK@gmail.com> Date: Sun Apr 28 20:58:25 2024 +0300 Merge branch 'develop' into rename-wasbutton commit0dd85c7d80Merge:0012e0e90fe364a2Author: Max Kopjev <GandifilMK@gmail.com> Date: Sun Apr 28 19:54:50 2024 +0300 Merge pull request #820 from LilithSilver/add-missing-getpressedkeys Decrease allocation overhead on KeyboardStateExtended commita166f34078Author: jimmy b <tigurx@gmail.com> Date: Sun Apr 28 11:39:21 2024 -0500 Fixes incorrect rendering of flipped animation tiles commit0012e0e988Merge:a19b1e68a342fedfAuthor: Max Kopjev <GandifilMK@gmail.com> 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 commita19b1e6881Merge:bde79b896cc4b6cbAuthor: Max Kopjev <GandifilMK@gmail.com> 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 commita342fedfd7Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Fri Mar 15 21:27:14 2024 +0100 Calc coll vector for oriented rects commit377df89247Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Sun Mar 10 21:23:21 2024 +0100 Calc coll vector for circle and oriented rect commitbf1159d9f3Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Fri Mar 8 18:16:03 2024 +0100 Properly intersect circle and oriented rect commit6a380e381bAuthor: Andreas Torebring <andreas.torebring@gmail.com> Date: Thu Feb 29 22:11:57 2024 +0100 Rename to OrientedRectangle commit1d878727ecAuthor: Andreas Torebring <andreas.torebring@gmail.com> Date: Sat Feb 24 00:40:30 2024 +0100 Add Intersects method for OBB commit9007c6bd55Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Sun Feb 11 19:26:54 2024 +0100 Update dependencies commit0a2ce12134Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Sun Aug 6 19:32:01 2023 +0200 Update circle and oriented bound box intersection commitc1873c2decAuthor: Andreas Torebring <andreas.torebring@gmail.com> Date: Mon Nov 21 22:57:55 2022 +0100 Add ascii art to describe intersection tests commit82303e48b1Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Mon Sep 19 21:55:00 2022 +0200 OrientedBoundedRectangle implements ShapeF In that way the OrientedBoundedRectangle can take part of collision tests. commit135507e850Author: Andreas Torebring <andreas.torebring@gmail.com> 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. commitb85f526275Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Wed Feb 7 21:55:52 2024 +0100 Ignore Visual Studio cache commitdb807cd659Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Wed Sep 7 01:56:47 2022 +0200 Add Points property to OrientedBoundingRectangle commit88a51a6f68Author: Andreas Torebring <andreas.torebring@gmail.com> Date: Mon Sep 5 19:24:24 2022 +0200 Add OrientedBoundingRectangle type commitbde79b8997Merge:68c0b3d75b858d45Author: Max Kopjev <GandifilMK@gmail.com> Date: Sun Apr 7 23:20:37 2024 +0300 Merge pull request #819 from Asthegor/patch-1 Update PrimitiveDrawing.cs commit68c0b3d736Merge:370269229c0865a2Author: Max Kopjev <GandifilMK@gmail.com> 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 commit9c0865a2aeMerge:3011110b37026922Author: Max Kopjev <GandifilMK@gmail.com> Date: Sun Apr 7 23:16:31 2024 +0300 Merge branch 'develop' into pipeline-update-map-layer-tilemap-class commit37026922e1Merge:51aea6c8ce0a1a2fAuthor: Max Kopjev <GandifilMK@gmail.com> 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 commitce0a1a2f8cMerge:fba908f451aea6c8Author: Max Kopjev <GandifilMK@gmail.com> Date: Sun Apr 7 23:12:01 2024 +0300 Merge branch 'develop' into pipeline-update-class-properties commit51aea6c84aMerge:6acc822bc4e4ecb4Author: Max Kopjev <GandifilMK@gmail.com> Date: Sun Apr 7 21:19:19 2024 +0300 Merge pull request #834 from Apllify/fix-hsl-lerp Fixed HSL Lerp function commit6cc4b6cb96Author: Stephen <stephenafoster88@gmail.com> Date: Sat Feb 17 13:25:11 2024 +0000 Add test coverage commit8d95d49924Author: Stephen <stephenafoster88@gmail.com> Date: Sat Feb 17 13:15:56 2024 +0000 Check for undefined layer and throw on collision actor insertion commit6acc822be1Merge:c4f9b3cd79a20706Author: Max Kopjev <GandifilMK@gmail.com> Date: Mon Jan 22 19:12:29 2024 +0100 Merge pull request #837 from craftworkgames/tweener_enchancing3 Tweener enchancing3 commit79a20706b1Author: Gandifil <gandifilmk@gmail.com> Date: Mon Jan 22 21:11:44 2024 +0300 Fix activator inside tweener. commite93ec550c4Author: Gandifil <gandifilmk@gmail.com> Date: Mon Jan 22 21:11:30 2024 +0300 Add tweening tests commitc4f9b3cddcMerge:bb8a70c64383bb81Author: Max Kopjev <GandifilMK@gmail.com> Date: Mon Jan 22 18:26:28 2024 +0100 Merge pull request #836 from craftworkgames/tweener_enchancing2 Fix TweenTo commit4383bb8113Author: Gandifil <gandifilmk@gmail.com> Date: Mon Jan 22 20:26:00 2024 +0300 Fix TweenTo commitbb8a70c607Merge:801196c3a2e3aacbAuthor: Max Kopjev <GandifilM… * Update for Version 4.0.0 --------- Co-authored-by: Andreas Torebring <andreas.torebring@gmail.com> Co-authored-by: Lucas Girouard-Stranks <lustranks@gmail.com> Co-authored-by: Matt Johnson <matt.johnson.dev@gmail.com> Co-authored-by: Kus <git@kus.dev> Co-authored-by: slakedclay <118028225+slakedclay@users.noreply.github.com> Co-authored-by: Cairo Batista <cairomb1@gmail.com> Co-authored-by: Gandifil <gandifilmk@gmail.com> Co-authored-by: David Fidge <dfidge@internode.on.net> Co-authored-by: Lucas Girouard-Stranks <519592+lithiumtoast@users.noreply.github.com> Co-authored-by: KatDevsGames <north@tinymagnet.com> Co-authored-by: LACOMBE Dominique <lacombe.dominique@outlook.fr> Co-authored-by: Apllify <ralilahlou50@gmail.com> Co-authored-by: Stephen <stephenafoster88@gmail.com> Co-authored-by: jimmy b <tigurx@gmail.com> Co-authored-by: Nikos Kastellanos <nkastellanos@gmail.com> Co-authored-by: Mike Bowers <mbowersjr@gmail.com> Co-authored-by: James <52947350+jameskellie@users.noreply.github.com>