Repository navigation
Void Engine 1.2.0
What's New in 1.2.0
This release focuses on API consistency, collision improvements, math utilities, and performance optimizations.
Added
- Rect2.Lerp and Rect2.SmoothStep with static/instance variants
- LineRect with hit point/normal output
- Angle utilities to MathHelper (WrapAngle, WrapAngleDegrees, AngleDifference, MoveTowardsAngle)
- Damp for exponential decay smoothing
- Repeat for value wrapping in range
- SmootherStep for 5th order interpolation
- Frac for fractional part extraction
- Epsilon guard in RaycastRect to prevent division by zero
- Missing Ninepatch and DrawText overloads for API consistency
- Additional datatypes for JsonHelper GetPropertyOrDefault and GetElementOrDefault
Fixed
- MoveAndSlideRect corner sticking by separating X and Y axis collision resolution
- MoveAndSlideCircle X axis position being overwritten
- LineLine edge cases (collinear lines, shared endpoints, point-on-line)
- Swept collision hitPoint/hitNormal assignment
- ClosestPointCircle center-point edge case
- LDtk Array FilePath settings returning incorrect type
- BeaconHandle TryGet returning true for value types on type mismatch
- DrawCommandComparer texture validity checks
- Visibility checks accounting for scale and origin
Changed
- SpriteBatcher public API parameter ordering is now consistent
- EnumExtensions now supports all common enum underlying types via Convert.ToInt64
- Collision resolution replaced with direct position snapping based on movement direction
- Deterministic 2-pass collision checks (X axis, then Y axis)
- Ninepatch drawing extracted to EngineDrawNinePatch to eliminate duplication
- Implementation details moved to private regions
Removed
- Pre-scaling of dstRect in EngineDraw and EngineDrawBypassAtlas
- Per-frame List allocations in MoveAndSlide methods
- Iteration parameter from collision resolution
NuGet Package
Breaking Changes
- DrawText parameter order changed:
alignment, scaleis nowscale, alignment - DrawText parameter order changed:
scale, depthis nowscale, depth(depth always last)