Skip to content

ZoneService v0.3.0-beta

Choose a tag to compare

@breadboardengineer1234 breadboardengineer1234 released this 27 Sep 23:50
· 57 commits to main since this release
6d912a1
  • BVH module can now instantiate separate trees
  • Trees can now be reset, which allows ZoneService to be reset to a clean state
  • Tables and buffers are now reused on tree rebuilds (buffers only if the number of tree nodes remains the same)
  • Replaced default table.sort with custom quicksort, which allows 2 flat arrays to be sorted at once without having to allocate intermediate tables
  • Added a morton bounds cumulative tracker which replaces O(N) bounds recalculation on tree rebuilds (only applies for dynamic zones)
  • Rebuilding tree no longer allocates a new zones array each time
  • Dynamic zones now use a BVH tree instead of a flat dictionary (significantly better scalability)
  • Added shape support for Wedge and CornerWedge
  • Replaced :rebuildBVH with :rebuildStaticBVH and :rebuildDynamicBVH
  • Added :updateDynamicBounds which forces a morton bounds recalculation for the dynamic tree
  • Modified :updateZone to allow optional CFrame and Size arguments
  • :getSubjectsInZoneFlags changed to :getSubjectsInZone
  • Fixed :getRandomPointInZone bug where cylinder height was on the Y axis