Files
MonoGame.Extended/CHANGELOG.md
T
Christopher Whitley 8850875fb4 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
2024-06-15 01:37:18 -04:00

15 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Note

Unreleased changes exist in the current develop branch but have not been pushed as either a stable or prerelease NuGet package.

Added

  • Added unit test for PolyGon.Contains to ensure consistency in expected return values for edge touching compared to MonoGame. @AristurtleDev #871
  • Added unit test for BitmapFont.MeasureString to validate that it correctly accounts for trailing whitespace. @AristurtleDev #876
  • Added unit test for ContentReaderExtensions.GetRelativeAssetName to validate that asset name sanitization resolves to correct path. @AristurtleDev #877
  • MonoGame.Extended.Content.Pipeline.targets was added to the MonoGame.Extended.Content.Pipeline nuget. This target contains a task that will automatically copy the required dll references for the MGCB Editor to the /Content/references directory inside the project root for easier access. @AristurtleDev [#855] (https://github.com/craftworkgames/MonoGame.Extended/pull/885)
  • Updated ComponentManager to implement IEnumerable<ComponentMapper> @mbowersjr #888

Changed

  • Matrix2 was renamed Matrix3x2 to better reflect what it actually is. @AristurtleDev #870
  • Renamed Size2 to SizeF to keep naming consistency of types. @AristurtleDev #873
  • Updated solution (.sln) to Visual Studio 2022 @nkast #880
  • Updated project types to .Net.Sdk @nkast #880
  • Use System.IO.Compression.ZLibStream @nkast #822
  • BitmapFont refactored. Now supports all three BMFont export types (XML, Text, and Binary). @AristurtleDev #877
  • TextureRegion2D and NinePatchRegion2D moved to MonoGame.Exteneded.Graphics namespace. @AristurtleDev
  • TextureREgion2D and NinePatchRegion2D renamed to TextureRegion and NinePatchRegion. @AristurtleDev

Removed

  • All projects now output build artifacts to a common .artifacts directory at the root of the repository. @AristurtleDev #865
  • Dependency on NewtonSoft.Json was completely removed in favor of using dotnet's System.Text.Json @AristurtleDev #869
  • Removed Size3. It was redundant since Microsoft.Xna.Framework.Vector3 exists. @AristurtleDev #872
  • Removed Point3. It was redundant since Microsoft.Xna.Framework.Vector3 exists. @AristurtleDev #874
  • Removed Point2. It was redundant since Microsoft.Xna.Framework.Vector2 exists. @AristurtleDev #875
  • Removed unnecessary dependency introduced by previous pull requests @nkast #881

Fixed

  • Resolved Matrix3x2 (formally Matrix2) not accounting for negative when calculating scale. @AristurtleDev #870
  • Implemented standard IDispose pattern to resolve for particles @AristurtleDev #879

[3.9.0-prerelease.4]

Warning

Please note that during this release, the entire project structure was reorganized. More importantly, build artifacts like dlls and packages created by projects are now output in a .artifacts directory at the root of the repository.

Added

  • All projects now output build artifacts to a common .artifacts directory at the root of the repository. @AristurtleDev #865

Changed

  • Entire project structure was reorganized to resemble the MonoGame project so there is consistency for users who work from source. @AristurtleDev #856

Removed

[3.9.0-prerelease3]

Added

  • Added .editorconfig to project @LokiMidgard #708
  • Include XML Documentation in NuGet packages @Apostolique #733
  • Added ComponentMapper.OnPut and ComponentMapper.OnDelete events. @GrizzlyEnglish #744
  • Added ability to configure layer depth for auto triggered particle effects. @codymanix $756
  • Added support for class attribute of objects in Tiled. @carlfriess #766
  • Added VelocityInterpolator to allow particles to change velocity as they age. @slakedclay #798
  • Implemented parallax factor for Tiled maps @Gandifil #801
  • Added unit tests for SpriteSheetAnimation. @DavidFidge #806
  • Added MouseStateExtended.IsButtonPressed, MouseStateExtended.IsButtonReleased, KeyboardStateExtended.IsKeyPressed, KeyboardStateExtended.IsKeyReleased as replacements for deprecated properties. @LilithSilver #815
  • Adds support of nested class properties in Tiled. @KatDevsGames #817
  • Add support for class filed on Tiled map, layers, and tilemaps. @KatDevsGames #818
  • Added overload method for PrimitiveDrawing.DrawSolidCircle that adds a fillColor parameter. @Asthegor #819
  • Add support for Collection of Images tilest type @Gandifil #829
  • Added RectangleF serializer @Gandifil #833
  • Added OrientedRectangle for improved collision detection. @toore #840

Changed

Deprecated

  • Deprecated MouseStateExtended.WasButtonJustDown, MouseStateExtended.WasButtonJustUp, KeyboardStateExtended.WasKeyJustDown, and KeyboardStateExtended.WasKeyJustUp. @LilithSilver #815

Removed

  • Removed MyGet feed deployment. All NuGets, including pre-releases, are now pushed to NuGet.org only. @AristurtleDev #856

Fixed

  • Resolved FadeTransition glitch @topnik-code #699
  • Resolved issue where relative paths for tileset sources in .tmx caused Tiled map importer to fail. @merthsoft #713
  • Fixed ParticleEmitter always using the same random seed. @mikeparker #717
  • Resolved half pixel offset bug in TiledMapLayerModelBuilder. @kryzp #721
  • Fixed issue where Entity.Detach() did not invoke EntityChanged until next update cycle. @SjaakAlvarez #724
  • Fixed issue due to Color.TransparentBlack being removed from MonoGame 3.8.1.303 @Pizt0lmnk #735
  • Correctly resolve relative path of texture in TextureAtlasJsonConverter. @merthsoft #746
  • Fixed issue where KeyboardExtended.GetState() and MouseExtended.GetState() rewrites previous state value. @KRC2000 #770
  • Fixed crash on Android when loading AnimationSprite. @garakutanokiseki #782
  • Fixed issue when transforming a RectangleF not calculating bounding rectangle from the rotated original as intended. @toore #787
  • Effects used for Tiled rendering rebuilt using MonoGame 3.8.1.303. @mattj1 #789
  • Resolved ComponentManager.Destroy throwing a NullReferenceException. @Jeff425 #794
  • Resolved CollisionManager reporting objects as colliding even after object(s) have been moved out of collision bounds @toore #795
  • Fixed looping animations incorrectly when an update contains large elapsed time in SpriteSheetAnimation. @DavidFidge #806
  • SpiteSheetAnimation ping pong waits until frame delay is complete on re-entry of the first frame before firing Complete event. @(DavidFidge)
  • SpriteSheetAnimation ping pong finishes on the first frame instead of potentially on a different frame. @DavidFidge #806
  • Fix allocations during foreach iterations of Bag<T>. @LilithSilver #814
  • Decreased allocation overhead for KeyboardStateExtended @LilithSilver #820
  • Resolve single digit type in HSl Lerp function @Apllify #834
  • Fixed issue where animated tiles that were flipped were rendering incorrectly @tigurx #846
  • Resolve infinite recursion glitch for `Shape.Intersects(this IShapeF, IShapeF). @AristurtleDev #852