Linden
aebe248e39
refactor: localise globals to prevent shadowing
...
See #456 .
2023-12-07 08:36:40 +11:00
DokaDoka
4b99aa0953
fix(client/zones): force debug colour values to be integers
...
for some reason scripts not using oal treat any float above 0 as 255 when used as a colour value
2023-08-13 16:01:12 +10:00
GaDGeT
964e67f9a6
fix(client/zones): store debug colours as a table
2023-08-13 15:57:52 +10:00
Linden
43e521e65b
chore(zones): rename CZone field __type
2023-08-03 04:45:26 +10:00
DokaDoka
f04534d879
refactor(client/zones): rename type property to __type to avoid conflicts
2023-07-30 17:50:34 +10:00
Linden
d2c5be8ea8
fix(client/zones): setDebug early return
2023-07-27 00:38:36 +10:00
Linden
fe0f28921f
fix(client/zones): race condition when setting debug function
2023-07-25 14:13:09 +10:00
BerkieBb
8f5880aad7
feat(zones): add setDebug and debugColour ( #369 )
2023-07-23 19:37:29 +10:00
Linden
8a0f5e946d
fix(client/zones): prevent malformed polyzone deadlock with debug
...
Temp workaround.
2023-06-20 09:19:27 +10:00
Linden
51da742138
feat(zones): add new getter functions
2023-04-20 15:52:55 +10:00
DokaDoka
f8788d74b6
fix(client/zones): abort triangle creation if polygon is not simple
2023-01-15 16:20:11 +11:00
DokaDoka
ba9380b39a
feat(client/zones): ensure polyzone is coplanar
2023-01-13 22:26:50 +11:00
DokaDoka
6e10ebe464
feat(client/zones): break triangle creating loop of it is going to deadloop
2023-01-13 16:08:37 +11:00
DokaDoka
0e052ed7c5
fix(client/zones): get diagonal offsets in 2d
...
avoids floating point weirdness with the z coord
2023-01-13 16:07:25 +11:00
DokaDoka
6bfd6091d7
refactor(client/zones): break polygon into triangles with the ear clipping method
2023-01-07 19:16:36 +11:00
Linden
012b68a3be
fix(client/zones): remove all zone references
...
Should resolve #191 .
2022-12-30 21:07:32 +11:00
Linden
6a704c40fe
refactor(client/zones): re-order zones and call onExit before onEnter
...
insideZones will be stored as a map rather than an array for simplicity.
Store zones the player is entering and exiting, then sort based on distance;
always triggering onExit for all zones before onEnter.
See #179 .
2022-12-24 16:08:21 +11:00
Linden
08a725105b
fix(client/zones): disable marker rotation
2022-12-17 06:21:22 +11:00
DokaDoka
61a940a188
refactor(client/zones): redo triangle algorithm
2022-12-13 14:29:23 +11:00
Linden
9b7eef2880
fix(client/zones): convert vector4 to vector3
...
Sometimes people send the incorrect types, and it's apparently on us (???)
to allow them to do the wrong thing and catch their mistakes for them.
2022-11-09 16:04:03 +11:00
Linden
0e9ad23fb3
fix: types
2022-10-02 20:19:35 +11:00
DokaDoka
0014dfbe1f
fix(client/zones): expand vectors
...
for oal enjoyers
2022-09-21 14:45:22 +10:00
DokaDoka
ad219b2508
feat(client/zones): debug walls
...
brings the debug display more in line with the creator
2022-09-20 23:52:56 +10:00
Linden
cd8e4bbd4d
fix(client/zones): yet another debug fix
...
Because a zone vanishing upon entry is of no use.
2022-09-17 18:21:38 +10:00
Linden
032e0e2db1
fix(client/zones): CZone.contains return type
2022-09-14 08:12:12 +10:00
Linden
62d56fa885
refactor(client/zones): add types and change indentation
2022-09-14 08:08:00 +10:00
Linden
26538b8148
refactor(imports): assign modules directly to lib namespace
...
Mostly a change for improved intellisense with sumneko lua.
Includes some type fixes and deprecation notices.
2022-09-14 01:20:50 +10:00
Linden
0ccdf5675c
fix(client/zones): scuffed ternary
...
Since Lua "ternary" expressions run until they have a truthy value,
boxzone and polyzone will try compare distance to radius.
2022-09-11 12:27:23 +10:00
Linden
57187c8c30
perf(client/zones): reduce overhead
...
In a naive test with 10k sphere zones vs points, zones ran 0.02~0.04ms higher.
Overhead is roughly halved with these tweaks.
2022-09-11 12:06:30 +10:00
Linden
77ff8e977b
feat(client/zones): set cache.coords
...
People keep asking for coords to be added to cache, but it be problematic
to spam the events system every tick with that information.
If zones is loaded, we can set cache locally without relying on events.
2022-09-11 11:06:38 +10:00
Linden
99b146d7b9
fix(client/zones): zone triggers twice when inside and debug is enabled
...
Zones would be added to the temporary array twice, so callback functions
and the zone draw would trigger twice.
2022-09-11 11:02:04 +10:00
Linden
5d71c4efdf
fix(client/zones): debug erroneously triggers zone:inside
...
Should only trigger when the player is, in fact, inside the zone.
2022-09-02 22:23:24 +10:00
Linden
3a97a0c569
fix(client/zones): convert tables to vectors
...
Ensure tables (either array or map) set as points, coords, or size are
converted into vectors.
Includes complementary reformatting.
2022-08-30 02:58:41 +10:00
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