Box2D.NET physics integration and enhancements!
Thanks again to @Happypig375, we now have Box2D.NET physics integration! You can select this as an alternative physics engine to Aether via the <add key="PhysicsEngine2d" value="Box2dNet" /> App.config entry.
However, there are some important breaking changes that might affect your serialized Nu scenes, specifically -
- GravityOverride has been renamed to Gravity and its type changed to the new Gravity DU type.
- BreakingPoint has been renamed to BreakingPointOpt.
- Joint API has removed the OneBodyJoint cases and simplified.
- Removed GetFluidParticleCellColor property.
Otherwise, we've mostly solidified the engine with minor fixes and enhancements.
Important Changes -
- Depend ground direction on gravity (when exists) or down direction relative to rotation.
- Preventing duplicate texture loading for non-dds textures in 3D.
- Exposed deferred ImGui calls via
World.defer...API. - Exposed analog controller input (#352).
- Fix normal vector in FluidEmitterMessage.
- Updated various dependencies.
- Using modern randomization methods in Gen.
- Added 2D right-up variants.
- Ability to opt-out of synchronous logging via LogSynchronously config.
- Proper editing for Justification property (#1190).
- Proper editing for FontStyling as well.
- Increased shadow texture limits to 9 for shadow textures and maps.
- Removed Release optimization that could result in NRE's in normal Nu operations.
- Plug in logging for various native dependencies.
- Implemented Gaia layout reset (#1058).
- Using imperative accumulation to enhance tile map tile placement precision.
- Fixed regression in position3dToPosition2d and otherwise.
- Added warn when render asset is unavilable.
- Added Box2dNetPhysicsEngine
- Make Nu.Math up to date with current .NET.
- Fixed job graph regression.
- Reverted character 2d changes (removed special gravity handling).
- Implemented frame stepping in Gaia via Step button.
- Fixed #1201.
- Put shadow textures in a sampler2DArray.
- No longer needlessly adding omnipresent elements to nodes (optimization).
- Fixed BreakingPoint naming (Opt suffix required).
Full Changelog: v19.7.0...v19.8.0