Skip to content

Releases: Martenfur/Monofoxe

v 3.0.0-dev.1

05 Feb 20:51
Compare
Choose a tag to compare

Added

  • Added RenderMask as a replacement to camera filters to Scene, Layer and Entity.
  • Added Clear() method to ResourceBox.
  • Added Offset() method to linear dampers.
  • Added OnFrameStart, OnFrameFinish and OnAfterDraw events to GraphicsMgr.
  • Added Pool collection.
  • Added AccumulationBuffer collection.
  • Added UnorderedList collection.
  • Added GetArea(), GetSignedArea(), IsClockwise() methods to GameMath.
  • Added new collision system.
  • Added new drawing methods.

Changed

  • BREAKING CHANGE: ResourceInfoMgr now accepts wildcards instead of directory names. For example, ResourceInfoMgr.GetResourcePaths("Graphics/Trees"); should now be replaced with ResourceInfoMgr.GetResourcePaths("Graphics/Trees/*");
  • BREAKING CHANGE: Renamed GetSafeNormalize() to SafeNormalize().
  • BREAKING CHANGE: Removed instances of Width and Height in Sprite, Frame, WindowMgr, Camera, Surface, and replaced them with Size.
  • BREAKING CHANGE: Changed boolean isOutline to ShapeFill enum for shapes.

Fixed

  • Fixed AddComponent<>() not taking generic type into account.
  • DirectoryResourceBox now ignores non-xnb files properly.
  • Fixed division by zero in dampers.

Removed

  • BREAKING CHANGE: Removed camera layer filters.
  • BREAKING CHANGE: Removed Drawable class and non-static shape fields and methods.

v 2.2.0

17 Sep 13:08
Compare
Choose a tag to compare

Added

  • Added Name field to Sprite.
  • Added Range<> class.
  • Added HEX conversion for Color.
  • Added HsvColor Lerp and basic operators.
  • Added simplified GetResource<>() methods.
  • Added OnResize event to Camera.
  • Added Global instance to RandomExt.
  • Added unit circle methods to RandomExt.
  • Added dampers based on second order motion.
  • Added job system.
  • Added started argument to Alarm constructor.
  • Added Start(time) and Pause(), Resume() metods to Alarm.
  • Added Counter.
  • Added GetOrCreateLayer to Scene.
  • Added OnFinish event to coroutines.
  • Added Projection method to Vector2 and Vector3.
  • Added PerlinNoise.
  • Added SlowRotator.
  • Added simple logger.

Changed

  • Destroy() event triggers even if an entity is disabled.
  • Migrated to NET6.
  • Updated MonoGame to 3.8.1.
  • Updated Nopipeline to 2.2.0.
  • Replaced Newtonsoft.Json dependency with System.Text.Json.
  • Removed VS2019 support.

Fixed

  • Fixed Sprite.Clone() not copying frames properly.

v 2.1.0

11 Aug 21:20
Compare
Choose a tag to compare

Changed

  • Removed VS2017 template support and added VS2022 templates.
  • Solution created from template no longer requires to manually build Content project.
  • Changed Component methods from abstract to virtual.
  • Templates now support .NET5 instead of netcore 3.

Added

  • Added support for the backgroundcolor property for Tiled maps.
  • Added OnCrash event to SceneMgr which allows to catch and recover from the exceptions within a scene.
  • Added IsFixedUpdateFrame to SceneMgr.
  • Added coroutines.

Fixed:

  • Fixed Scene not being able to delete its layers properly.
  • Made SafeList thread safe.
  • Newly created solutions set their default project to GL instead of library, which cannot be run.

v 2.0.0

26 Aug 23:23
Compare
Choose a tag to compare

Added:

  • Added Rotate method for Vector2.
  • Added half-pixel offset support for VertexBatch.
  • Added Pre and Post events to layers, scenes and scene manager.
  • Added ZDepth to all shape classes.
  • Added platform-specific projects for WindowsDX and DesktopGL.
  • Added StuffResolver class.
  • Added HsvColor class.
  • Added automatic content loaders.
  • Added sprite json mathematical expressions.
  • Added CurrentPlatform and CurrentGraphicsBackend to GameMgr.

Changed:

  • BREAKING CHANGE: Monogame version has been updated to 3.8.
  • Pipefoxe now supports netstandard2.0 and is fully crossplatform.
  • Renamed Pipefoxe to Monofoxe.Pipeline.
  • BREAKING CHANGE: Input.ScrollWheelValue now returns signed scroll speed value instead of only its sign.
  • BREAKING CHANGE: Reworked Alarm class and merged it with AutoAlarm and Timer.
  • Changed IDrawable interface to Drawable class.
  • Entity.AddComponent now returns the component class which was passed into it.
  • BREAKING CHANGE: AssetInfo has been renamed to ResourceInfo
  • BREAKING CHANGE: ResourceInfoImporter now imports .npl Content file instead of .mgcb.
  • Removed dependency on Windows-only System.Drawing for Monofoxe.Pipeline.
  • Changed the crossplatform project structure.
  • BREAKING CHANGE: AlphaBlend.fx is now baked into the library and doesn't have to be manually put into the Content directory.
  • Replaced offset_x/y with originX/Y in sprite jsons.
  • Component.Destroy() is now called when the component is removed from the entity.

Removed:

  • BREAKING CHANGE: Removed AutoAlarm and Timer classes.
  • BREAKING CHANGE: Removed MousePosition from Input class.
  • BREAKING CHANGE: Removed entity templates.
  • Removed all templates except Crossplatform, since there is no need in them anymore.

Fixed:

  • Fixed instantiated rectangle shape not being drawn properly.
  • Fixed entity methods crashing the game after creating new Entity.
  • Fixed crashes when Scene's layer methods were called.
  • Fixed crashes when SceneMgr's scene methods were called.
  • Fixed Component.Initialized never being set.
  • Fixed gamepad press/release not working correctly.
  • Fixed gamepad index not being used in input methods.
  • Fixed parsing multiplne text properties from Tiled maps.

v2.0.0.0-dev+007

07 Feb 12:18
Compare
Choose a tag to compare
v2.0.0.0-dev+007 Pre-release
Pre-release

IN THIS BUILD:

  • Fixed VertexBatch.Effect being reset every frame.
  • Fixed crashing when adding/removing components during component event.
  • Fixed Text.Color not being used.

v 2.0.0.0-dev+006

07 Jan 12:56
Compare
Choose a tag to compare
v 2.0.0.0-dev+006 Pre-release
Pre-release

IN THIS BUILD:

  • Made Camera abstract class and added Camera2D class.
  • Added ZNearPlane and ZFarPlane to the camera.
  • Added projection matrix to the camera.
  • Camera's Posision and Origin are Vector3 instead of Vector2 now.
  • Added an option to set custom projection matrix to the Surface.
  • Primitive2D now uses array of vertices instead of a list.
  • Fixed circles not being drawn in some cases.
  • Fixed project templates.

v2.0.0.0-dev+005

12 Dec 11:04
Compare
Choose a tag to compare
v2.0.0.0-dev+005 Pre-release
Pre-release

v 2.0.0.0-dev+005:

IN THIS BUILD:

  • Added VertexBatch class.
  • Replaced GraphicsMgr's internal SpriteBatch with VertexBatch
  • Moved graphics states from GraphicsMgr to VertexBatch.
  • Moved matrix stack from GraphicsMgr to VertexBatch.
  • Added per-vertex z depth for sprites, surfaces and frames.
  • Fixed Origin property not being used in Surface.

FEATURES:

  • Documentation!
  • Added ResourceHub and ResourceBox instead of old loading systems.
  • Added Angle class for better angle management.
  • Added .NET Standard library template.
  • Nopipeline's NPL config supports adding references with environment variables.
  • Monofoxe is now able to launch on Android.
  • Added an ability to change entity update order.
  • Added an all-in-one multiplatform project template.
  • Added various item templates.
  • Added VertexBatch class.
  • Added per-vertex z depth for sprites, surfaces and frames.

CHANGES:

  • Camera implements IDisposable interface now.
  • Alarm, AutoAlarm and Animation use EventHandler instead of Action now.
  • Spritegroup cstemplates doesn't require quotes for variable values now.
  • Changed Draw methods in Frame, Sprite and Surface to use their properties by default instead of default struct values.
  • Moved animation argument in Sprite.Draw method after position.
  • Specifying origin in Sprite.Draw() isn't mandatory anymore.
  • Frame, Sprite and Surface's Rotation field is Angle instead of float now.
  • GameMath doesn't contain angle-related methods anymore. They are moved to Angle instead.
  • All Monofoxe libraries are .NET Standard now.
  • Nopipeline is now embedded into Monofoxe.
  • All projects reference Monofoxe libraries from common place instead of raw per-project libraries.
  • Replaced static methods in TimeKeeper with static Global instance.
  • Removed drawing methods which work with raw x;y.
  • Project templates for VS2019 now have tags.
  • Bumped .NET Framework version to 4.7.2 for templates.
  • Entity methods which count components/entities have been removed.
  • Systems have been removed entirely.
  • Components now have their own events.
  • Calling base.%EventName%() is now required in entities for EC to work.
  • Replaced GraphicsMgr's internal SpriteBatch with VertexBatch
  • Moved graphics states from GraphicsMgr to VertexBatch.
  • Moved matrix stack from GraphicsMgr to VertexBatch.

FIXES:

  • Layer depth sorting now works properly.
  • CameraMgr.Cameras is a List instead of IReadOnlyColection now.
  • KeepAspestRatio canvas mode now scales canvas correctly.
  • Fixed memory leak in Camera.
  • Fixed BasicTilemapSystem not drawing the very last row and column of tiles.
  • Nopipeline now works with paths which contain spaces.
  • Angle difference formula now works properly.
  • Uninstaller now appears in Add\Remove Programs section.
  • Fixed various project warnings.
  • Fixed Origin property not being used in Surface.

v 2.0.0.0-dev+004

01 Dec 17:00
Compare
Choose a tag to compare
v 2.0.0.0-dev+004 Pre-release
Pre-release

NOTE: This is an in-dev build. Some stuff may not work, some may be broken.

IN THIS BUILD:

  • Monofoxe is now able to launch on Android.
  • Added an ability to change entity update order.
  • Added an all-in-one multiplatform project template.
  • Added various item templates.
  • Entity methods which count components/entities have been removed.
  • Systems have been removed entirely.
  • Components now have their own events.
  • Calling base.%EventName%() is now required in entities for EC to work.

FEATURES:

  • Documentation!
  • Added ResourceHub and ResourceBox instead of old loading systems.
  • Added Angle class for better angle management.
  • Added .NET Standard library template.
  • Nopipeline's NPL config supports adding references with environment variables.
  • Monofoxe is now able to launch on Android.
  • Added an ability to change entity update order.
  • Added an all-in-one multiplatform project template.
  • Added various item templates.

CHANGES:

  • Camera implements IDisposable interface now.
  • Alarm, AutoAlarm and Animation use EventHandler instead of Action now.
  • Spritegroup cstemplates doesn't require quotes for variable values now.
  • Changed Draw methods in Frame, Sprite and Surface to use their properties by default instead of default struct values.
  • Moved animation argument in Sprite.Draw method after position.
  • Specifying origin in Sprite.Draw() isn't mandatory anymore.
  • Frame, Sprite and Surface's Rotation field is Angle instead of float now.
  • GameMath doesn't contain angle-related methods anymore. They are moved to Angle instead.
  • All Monofoxe libraries are .NET Standard now.
  • Nopipeline is now embedded into Monofoxe.
  • All projects reference Monofoxe libraries from common place instead of raw per-project libraries.
  • Replaced static methods in TimeKeeper with static Global instance.
  • Removed drawing methods which work with raw x;y.
  • Project templates for VS2019 now have tags.
  • Bumped .NET Framework version to 4.7.2 for templates.
  • Entity methods which count components/entities have been removed.
  • Systems have been removed entirely.
  • Components now have their own events.
  • Calling base.%EventName%() is now required in entities for EC to work.

FIXES:

  • Layer depth sorting now works properly.
  • CameraMgr.Cameras is a List instead of IReadOnlyColection now.
  • KeepAspestRatio canvas mode now scales canvas correctly.
  • Fixed memory leak in Camera.
  • Fixed BasicTilemapSystem not drawing the very last row and column of tiles.
  • Nopipeline now works with paths which contain spaces.
  • Angle difference formula now works properly.
  • Uninstaller now appears in Add\Remove Programs section.
  • Fixed various project warnings.

v 2.0.0.0-dev+003

25 Oct 10:33
Compare
Choose a tag to compare
v 2.0.0.0-dev+003 Pre-release
Pre-release

NOTE: This is an in-dev build. Some stuff may not work, some may be broken.

IN THIS BUILD:

  • Bumped .NET Framework version to 4.7.2 for templates.
  • Fixed various project warnings.

FEATURES:

  • Documentation!
  • Added ResourceHub and ResourceBox instead of old loading systems.
  • Added Angle class for better angle management.
  • Added .NET Standard library template.
  • Nopipeline's NPL config supports adding references with environment variables.

CHANGES:

  • Camera implements IDisposable interface now.
  • Alarm, AutoAlarm and Animation use EventHandler instead of Action now.
  • Spritegroup cstemplates doesn't require quotes for variable values now.
  • Changed Draw methods in Frame, Sprite and Surface to use their properties by default instead of default struct values.
  • Moved animation argument in Sprite.Draw method after position.
  • Specifying origin in Sprite.Draw() isn't mandatory anymore.
  • Frame, Sprite and Surface's Rotation field is Angle instead of float now.
  • GameMath doesn't contain angle-related methods anymore. They are moved to Angle instead.
  • All Monofoxe libraries are .NET Standard now.
  • Nopipeline is now embedded into Monofoxe.
  • All projects reference Monofoxe libraries from common place instead of raw per-project libraries.
  • Replaced static methods in TimeKeeper with static Global instance.
  • Removed drawing methods which work with raw x;y.
  • Project templates for VS2019 now have tags.
  • Bumped .NET Framework version to 4.7.2 for templates.

FIXES:

  • Layer depth sorting now works properly.
  • CameraMgr.Cameras is a List instead of IReadOnlyColection now.
  • KeepAspestRatio canvas mode now scales canvas correctly.
  • Fixed memory leak in Camera.
  • Fixed BasicTilemapSystem not drawing the very last row and column of tiles.
  • Nopipeline now works with paths which contain spaces.
  • Angle difference formula now works properly.
  • Uninstaller now appears in Add\Remove Programs section.
  • Fixed various project warnings.

v1.0.1.1

29 Jun 23:08
Compare
Choose a tag to compare

FIXES:

  • Fixed MapBuilder crashing when some tilesets are ignored.