Commit Graph

276 Commits

Author SHA1 Message Date
DUznanski
2846de2ea3
Fix shuffle to avoid bias
There's a subtle trick in shuffling: you should draw only from the part of the deck you have not seen!  Otherwise, some permutations are more common than others.
2021-05-20 12:33:52 -07:00
Max Cahill
2d06ec7b9c [fixed] intersect.line_circle_overlap bug 2021-05-13 16:13:30 +10:00
Max Cahill
6fae516630 [added] :ipairs method for sequence, for convenient inline chaining - should consider making it the __call metamethod probably 2021-05-13 15:03:06 +10:00
Max Cahill
80c44f3436 [added] intersect.line_circle_overlap for checking boolean overlap circles vs lines 2021-05-13 12:24:45 +10:00
Max Cahill
af961ab2b8 [added] intersect.balance_from_mass which gets a normalised balance factor from two mass inputs, and treats <=0 or infinite or nil masses as static bodies 2021-05-11 15:47:48 +10:00
Max Cahill
a397d3d7f8 Merge remote-tracking branch 'origin/master' 2021-05-11 11:00:10 +10:00
Max Cahill
f343c1c0b7 [modified] optimised table.insert_sorted and made it _actually_ insert at the back of the range instead of at the first equal found position (not always the same) 2021-05-11 10:59:59 +10:00
Aweptimum
b5d3707939 Added aabb_circle_collide routine, modify aabb_point_collide
If circle center within aabb, calls aabb_point collide. Then, adds to the msv the difference between the closest point on the aabb to the circle and the closest point on circle to closest point on the aabb.

It failed when the circle center was exactly on the aabb edges, so COLLIDE_EPS was added to the apo_normal in aabb_point_collide to force the point off the edge. As such, the "nudge" section was removed. This should definitely be reviewed.
2021-05-10 12:29:37 -04:00
Aweptimum
06ca04bde7 Added aabb_circle_overlap
When the distance between the circle's center and the closest point on the aabb is less than the circle radius, returns true.
2021-05-10 11:55:51 -04:00
Aweptimum
bfee65762e Added helper function for aabb_circle routines
Clamps point coords to the dimensions of an aabb to get the nearest point on the aabb. Returns two integers to avoid garbage.
2021-05-10 11:55:00 -04:00
Aweptimum
9d1e563796 Added aabb_point_collide()
Pushes point out along minimum axis. Nudges it out with COLLIDE_EPS added to the msv.
2021-05-10 11:53:40 -04:00
Aweptimum
bc014db183 Added min/max ops to vec2
major/minor return the component with the max/min value.

farthest/closest return the component with the max/min magnitude
2021-05-10 11:52:08 -04:00
Max Cahill
89ecd4258e Merge remote-tracking branch 'origin/master'
# Conflicts:
#	tablex.lua
2021-05-04 21:07:35 +10:00
Max Cahill
5cd33398a5 [added] tablex.swap 2021-05-04 20:52:47 +10:00
Max Cahill
d9da4749e2 [added] some randomness helper functions to mathx 2021-05-04 11:41:22 +10:00
Max Cahill
7c975e8c4a [removed] prime stuff from mathx; hard to justify the filesize 2021-05-04 11:40:20 +10:00
Max Cahill
bc7754ae0b [modified] minor refactor of how tablex.clear is or isn't initialised as needed 2021-05-04 10:38:31 +10:00
Max Cahill
c2a9d39bcf [added] set.clear which does what you'd expect 2021-05-04 10:38:07 +10:00
Max Cahill
97eac9c51a Merge branch 'feature/insert-sorted-binary-search' 2021-04-30 11:47:03 +10:00
Max Cahill
826a2797c8 [modified] refactored insert_sorted to get PR #18 merged 2021-04-30 11:46:51 +10:00
Max Cahill
5601d9415b Merge remote-tracking branch 'origin/master' into feature/insert-sorted-binary-search 2021-04-30 11:22:11 +10:00
Alvaro Frias Garay
5ed6d68f6c added binary search to insert_sorted
Added method tablex.is_sorted
2021-04-15 21:09:04 -03:00
Max Cahill
87834e9267 [modified] sequence wrappers a bit more; exposed functional query interface 2021-04-15 10:31:06 +10:00
Max Cahill
39268148d8 Merge remote-tracking branch 'origin/master' 2021-04-15 10:22:37 +10:00
Max Cahill
d1b7e77b8a [modified] vec2 to support direct use for conversion in functional.map 2021-04-15 10:22:26 +10:00
Max Cahill
d476bc9c9c [modified] how sequence binds the functional interface to make binding new methods less error prone and shorter 2021-04-15 10:21:41 +10:00
Max Cahill
49505af37e Merge PR #17 2021-04-14 17:07:14 +10:00
Max Cahill
62957a9270 [modified] PR #17 a little; simplified various unneeded sections and added comments 2021-04-14 17:06:31 +10:00
Max Cahill
c840bd01a5 [added] more intersection/resolution helpers 2021-04-14 13:32:14 +10:00
Max Cahill
bfad0baba9 [added] experimental intersect.bounce_off (needs to be verified) 2021-04-13 15:39:36 +10:00
Max Cahill
ab0839430a [fixed] broken intersect.circle_circle_collide result 2021-04-13 15:38:52 +10:00
Alvaro Frias
dbadd9af83 Refactored rtrim and ltrim to use _whitespace_bytes table 2021-04-12 12:38:03 -03:00
Max Cahill
6eb979a68c [fixed] off-by-one in functional.cycle 2021-04-12 16:13:46 +10:00
Max Cahill
4f380d8afe [added] functional.stitch and functional.cycle specialised mapping variants 2021-04-12 13:04:08 +10:00
Alvaro Frias Garay
6042e3a705 Renamed variable properly 2021-04-07 14:09:40 -03:00
Alvaro Frias Garay
fb4c187347 Added ends_with method to stringx 2021-04-07 13:59:42 -03:00
Alvaro Frias Garay
e8bb432999 Added ltrim and rtrim methods
complementary methods to trim
2021-04-05 23:43:35 -03:00
Max Cahill
41985928d2 [modified] timer to support changing the time in reset 2021-03-12 21:44:09 +11:00
Max Cahill
89ad4c2dda [added] pubsub and timer modules 2021-03-12 21:23:54 +11:00
Max Cahill
16c183ec31 [added] tablex.take_random which is like pick_random but removes the element 2021-03-09 20:07:41 +11:00
Max Cahill
24bcc78616 [added] tablex.append_inplace and tablex.append can both take variable numbers of tables 2021-03-05 12:07:28 +11:00
Max Cahill
290b39236c [modified] stringx.starts_with to not generate garbage 2021-03-02 11:47:28 +11:00
Max Cahill
dfd1a1c69f [added] stringx.starts_with 2021-03-02 11:45:19 +11:00
Max Cahill
eef0d8d126
Merge pull request #15 from pakeke-constructor/patch-1
Fixed `start` state inclusion in state_machine
2021-01-25 10:41:37 +11:00
pakeke-constructor
f4a924aced
Fixed start state inclusion in state_machine 2021-01-25 12:22:37 +13:00
Max Cahill
7185a91fc5 [dev] note about oklab colour space 2021-01-15 16:22:01 +11:00
Max Cahill
d5938f098e Happy new year! 2021-01-08 17:06:44 +11:00
Max Cahill
9bb2f0367d [modified] readme 2021-01-05 15:20:55 +11:00
Max Cahill
70d6a99891 [modified] state machine api; no longer gets the machine on all callbacks.
benefit is being able to use a plain old class with `:update(dt)` as a state, and therefore nest state machines directly without a wrapper.
2020-12-01 15:33:22 +11:00
Max Cahill
f3038d5bc0
Merge pull request #13 from speakk/patch-1
Mention varargs being passed into state callbacks
2020-12-01 09:15:33 +11:00