Linden
46a525e057
fix(zones/client): debug DrawPoly and DrawLine
...
Debug for boxes broke with the oal fixes, since vectors don't unpack.
Also fixes flicker when entering a debug zone.
2022-08-13 17:08:39 +10:00
Linden
231ca90b8f
fix(zones/client): do not overwrite zone.distance with contains
...
Manually calling the contains method would overwrite zone distance.
Also move Wait to the end of the thread to prevent race conditions.
2022-08-10 23:45:48 +10:00
Linden
d33df54f0e
tweak(zones): store distance to zone center
...
Should make sphere "zones" nearly 1:1 with the points api.
Distance added for polygons too for consistency and some use-cases,
but generally only worthwhile for smaller zones.
2022-06-26 12:30:25 +10:00
Linden
84867900eb
fix(zones): zone.inside should not depend on zone.onEnter
2022-05-18 01:46:58 +10:00
DokaDoka
d52d5adac2
fix(zones): debug thickness misalignment and standardize defaults
...
all total sizes now default to 4
2022-05-14 12:45:50 +10:00
DokaDoka
14ce365de1
fix(zones): thickness workaround
...
thickness is calculated incorrectly by glm.polygon.contains so this is required until it is fixed
2022-05-14 12:34:12 +10:00
DokaDoka
6a8ebb5a0d
chore(zones): rearrange variables
2022-05-11 13:38:27 +10:00
DokaDoka
2a1ae2e287
feat(zones): consistent zone debug appearance
...
through merging debugPoly and debugBox
2022-05-11 13:36:36 +10:00
DokaDoka
38dbc2ac34
refactor(zones): create data.triangles even if the polygon is convex
2022-05-11 13:34:06 +10:00
DokaDoka
9b5ac35ab3
refactior(zones): make makeTriangles available outside of getTriangles
2022-05-11 13:29:18 +10:00
Linden
7a4745c0da
chore(zones): adjust debug rgba
2022-05-10 15:29:07 +10:00
Linden
55bfa7ca3d
refactor(zones): global Zones
2022-05-07 11:47:39 +10:00
Linden
ce3f916c42
refactor(zones): centroid -> coords
...
While centroid is a more accurate term, coords is a little simpler when
writing it a million times.
Prefer to use a single term (sphere was using coords) to simplify API.
2022-05-07 11:19:27 +10:00
Linden
d3718622cf
feat(zones): sphere zone
...
It's just a distance check and works exactly like lib.points, with some
minor API changes for consistency.
2022-05-06 14:28:45 +10:00
Linden
4555fa0a22
refactor(zones): call zone:contains instead of zone.polygon:contains
...
Added this function earlier but forgot to include thickness, so
it didn't work.
2022-05-06 14:26:56 +10:00
DokaDoka
18f55ffefe
refactor(zones): handle multiple points in the same horizontal line
...
- new intersection points are generated per vertical coord present in the original polygon rather than per vertex and are grouped together rather than associated directly with the parent
- hopefully better code structure and organisation for the entire triangle generating section
2022-05-01 12:49:56 +10:00
Linden
c7bab9b47f
fix(zones): debug functions should not be global
2022-04-29 02:01:51 +10:00
Linden
634dd747b7
refactor(zones): assign X directly and store triangles as matrices
2022-04-29 02:01:17 +10:00
Linden
754ae1bd8d
refactor(zones): use array table structure when creating triangles
2022-04-29 01:50:31 +10:00
Linden
247b9916e1
refactor(zones): rename variables and minor perf
...
Set box vertices and poly triangles once during creation (with debug).
2022-04-29 01:38:01 +10:00
DokaDoka
65787d3b6d
fix(zones): draw complex polygons properly
...
convex polygons are split into triangles more simply
complex polygons are split into trapezoids and then triangles to be drawn
2022-04-29 00:41:21 +10:00
Linden
cfffcee577
feat(zones): debugBox draw lines on edges
...
It's an abomination until Doka works his magic.
2022-04-27 17:13:26 +10:00
Linden
5dce90682f
refactor(zones): reduce value reassignments
2022-04-27 17:11:36 +10:00
Linden
fc3e5d6339
feat(zones): add contains method to zones
...
Reduces number of table lookups for micro-optimisation.
zone:contains(coords) is also a bit nicer than zone.polygon:contains(coords).
2022-04-27 17:09:32 +10:00
Linden
a340c83e1a
perf(zones): assign inside count and index to local
...
Reduce number of times the inside table needs to be indexed or have length checked.
Also assign debug zones to table without having to be inside the zone.
2022-04-27 17:07:24 +10:00
Linden
cc770ada64
refactor(zones): change new to poly, default box rotation
2022-04-27 10:33:18 +10:00
DokaDoka
de201dcf03
feat(zones): box
...
streamlined rectangle polygon creation for the lazy, with rotation
2022-04-26 23:06:23 +10:00
Linden
f651a91bf6
perf(zones): debug
...
Iterate polygon userdata directly, instead of creating a new table each frame.
2022-04-25 21:51:03 +10:00
Linden
94a460903d
refactor(zones): perf, args, and insideZone
...
lib.zones.new should take a single argument containing all
data related to the new zone, then append new fields to the table.
No need for a distance check and 'nearby', instead check if player
is inside the polygon.
Use a function ref instead of closures for debug (drawPolygon).
2022-04-25 21:33:56 +10:00
DokaDoka
adb110d8d8
feat(imports/zones): basic glm polygon zones
...
build on the points structure
2022-04-25 20:28:10 +10:00