Christopher Whitley a501f76162 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
2024-06-23 23:10:16 -04:00
2024-06-23 22:38:20 -04:00
2024-06-23 22:49:58 -04:00
2024-05-20 02:12:43 -04:00
2024-06-23 23:10:16 -04:00
2024-06-23 23:10:16 -04:00
2024-06-23 23:10:16 -04:00
2024-06-15 01:37:18 -04:00
2024-05-20 02:12:43 -04:00
2024-06-11 11:22:10 -04:00
2024-06-23 22:49:58 -04:00
2024-06-23 22:38:20 -04:00
2024-05-20 02:12:43 -04:00
2024-05-20 18:40:23 -04:00

Note

Hi MonoGame community, MonoGame.Extended is currently being updated to resolve outstanding bug issues, included those surrounding Tiled, and to update for MonoGame 3.8.1.303. Please bear with me as I work through the backlog. You can follow the progress in the v4.0.0 Milestones page.

  • AristurtleDev

MonoGame.Extended Logo

MonoGame.Extended

MonoGame.Extended is a set of utilities (in the form of libraries/tools) to MonoGame that makes it easier to make games. Choose what you want, the rest stays out of your way. It makes MonoGame more awesome.

Build, Test, Deploy Docs

Getting started

Code is distributed as NuGet packages in the form of libraries (.dll files). You can easily install the NuGet packages into your existing MonoGame project using the NuGet Package Manager UI in Visual Studio or by using the command line interface (CLI) in a terminal.

Current Stable Release

Warning

The current stable release is not compatible with MonoGame 3.8.1.303.

dotnet add package MonoGame.Extended --version 3.8.0

Current Prerelease

Note

Prerelease is based on current develop branch snapshot. There it is not considered stable and may contain bugs

dotnet add package MonoGame.Extended --version 3.9.0-prerelease.4

Using the Content Pipeline Extensions

To use the content pipeline extensions, you will need to edit your .mgcb file to reference the .dll. To see an example of how to do this with NuGet see the samples at https://github.com/craftworkgames/MonoGame.Extended-samples. The important pieces are the NuGet.config file and the .mgcb file.

Where to next?

News

We're in the process of developing MonoGame.Extended 4.0! Stay tuned.

Patreon Supporters

The patreon has been removed. If you would like to support the maintainers of this project, please consider using the GitHub sponsors link for one of the maintainers.

As a special thanks to those that supported this project through Patreon in the past, their websites were linked in this readme and have been preserved below:

Special Thanks

License

MonoGame.Extended is released under the The MIT License (MIT).

S
Description
Extensions to make MonoGame more awesome
Readme MIT 16 MiB
Languages
C# 99.7%
HLSL 0.3%