Skip to content

Void Engine 1.2.0

Choose a tag to compare

@Shmellyorc Shmellyorc released this 07 Sep 16:50

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, scale is now scale, alignment
  • DrawText parameter order changed: scale, depth is now scale, depth (depth always last)