Commit Graph

59 Commits

Author SHA1 Message Date
Marcel Märtens
ef40ebe0c8 update toolchain to nightly-2021-11-24 2021-11-24 10:09:22 +01:00
Joshua Barretto
c0bf9503bd Addressed review issues, added cloning docs to BodySpec::Manifests 2021-11-13 17:20:23 +00:00
Joshua Barretto
46ec4203a2 Arbitrary volume airships 2021-11-13 17:13:08 +00:00
socksonme
2ef668a16c removed unnecessary self 2021-10-29 15:23:49 +03:00
socksonme
42ed5c43f5 fixed code quality 2021-10-29 15:01:21 +03:00
socksonme
584e379e40 Removed beams and shockwaves from phys.rs
calc_z_limit doesn't use an Opyion anymore, construct_spacial_grid also doesn't check for beams or shockwaves, collider_other in apply_pushback is also required now and resolve_e2e_pushback also doesn't use Options anymore.
2021-10-29 09:43:01 +03:00
socksonme
052e09039a Made the pushback cache require colliders 2021-10-19 15:05:30 +03:00
Imbris
4f6eb286e6 Remove dead commented code, updated changelog, commented profiling spans
(but left in for easy reuse later), fix clippy complaint
2021-10-10 03:09:03 -04:00
Imbris
7f6ba90f59 simplify water/walls check code, interally iterate in chonks (but not
chunks)
2021-10-10 02:42:06 -04:00
Imbris
e7b92789f9 Refactor some of the terrain collision code, failed pre-emptive liquid check experiment 2021-10-10 02:42:06 -04:00
Imbris
8987f6128e Do iteration check for snapping after checking the other conditions 2021-10-10 02:42:06 -04:00
Imbris
798e02b9e5 Convert water/walls check to the new iteration function 2021-10-10 02:42:06 -04:00
Imbris
59bd5b4acd Initial iterator optimization by using internal iteration at the vol_grid level, water/walls not switched over yet 2021-10-10 02:42:06 -04:00
Joshua Barretto
a76496c339 Use previous position caches for airship collision detection 2021-09-17 22:34:28 +01:00
juliancoffee
19f0cf4ee5 Set z_min to 0 for terrain collision checks
This allows us have different z_min for e2e checks
2021-09-17 13:28:34 +03:00
juliancoffee
4e3fb87526 Adress review
- Rename Collider::get_radius to bounding_radius
- Check origin difference in CapsulePrism with EPSILON * 10.0 instead of
  magic 0.00001
- Add comments for closest_points, hardnened expression against NaNs
- Add comments to try_e2e_collision function, renamed to
  resolve_e2e_collision, make it return whether collision was triggered.
- Remove Collider::Box (it is Cylinder, which is subset of CapsulePrism
  with p0=p1=Vec2::zero())
2021-09-17 13:28:34 +03:00
juliancoffee
3dd6aa9dea Implement capsule2capsule collisions 2021-09-17 13:28:34 +03:00
juliancoffee
fdb4b7111a Fix bug with zero-pushback for bigger colliders 2021-09-17 13:28:34 +03:00
juliancoffee
c069a3523d Fix beam offsets
- Introduce notion of min and max radius for Body instead of old
  `radius()` function (which is renamed to `max_radius()`).
2021-09-17 13:28:34 +03:00
juliancoffee
7d97fe7ec5 Fix colliding bugs
- Make cylinder-like capsules prisms work without NaN in origin offsets.
Just return p0 as both origins instead of getting NaN by further
normalizing required because of how we rotate offsets.
- Fix pushback direction.
Make sure that pushback is calculated as our_pos - their_pos (and not
other way around).
- Fix colliding boundary detection.
Calculate center as Vec3::new(0, 0, height) and
not as `Vec3::new(0, height, 0)`.
2021-09-17 13:28:34 +03:00
juliancoffee
eeb3bec8ad Refactor implementation of e2e collision
+ Add some hopefully helpful comments
+ Extract colliding tries to separate function
+ Move to Capsule + Cylinder collider combination instead of Capsule +
  Capsule.
2021-09-17 13:28:34 +03:00
juliancoffee
44962958d8 Adress feedback
- Rewrite 2 * PI to TAU
- Some comment formatting
2021-09-17 13:28:34 +03:00
juliancoffee
6c3b61dc25 Implement CapsulePrism collisions 2021-09-17 13:28:34 +03:00
juliancoffee
7712976b86 Refactor box_voxel_collision function 2021-09-17 13:28:34 +03:00
juliancoffee
3b308a3f6f Add CapsulePrism collider variant
+ Add placeholder physics collision implementation as copy of cylinder
  Box collider.
+ Display it with debug hitboxes.
2021-09-17 13:28:34 +03:00
Joshua Barretto
0b1a820762 Make arrows 'bonk' hanging sprites 2021-08-31 13:31:27 +01:00
Sam
7dcbd6aaf0 Renamed variable to make more explicit what it does. 2021-08-28 18:31:44 -04:00
Sam
0a648e2e8f Fixed arrows dealing damage to entities if entity walked near arrow that stuck to terrain several seconds prior. 2021-08-26 19:00:28 -04:00
juliancoffee
c2247686db Make is_mid_air use on_surface().is_none() 2021-08-13 23:16:38 +03:00
juliancoffee
86b9e2d8e6 Make Fireballs explode EnsnaringVines 2021-08-12 01:25:55 +03:00
Illia Denysenko
0858279810 Gliding Debug Info 2021-08-07 13:19:58 +00:00
Joshua Barretto
665951946f Fixed block snapping 2021-08-04 14:12:10 +01:00
Imbris
01d1089a46 Add comment to physics and replace magic number in climbing boost with a named constant, fixes #1002 2021-07-29 03:11:44 -04:00
Joshua Barretto
199d56b1db Fix block-hopping with strangely sized blocks 2021-07-25 20:03:17 +01:00
Imbris
d2b8a5a169 Fix check before calculating entity pushback, was causing a NaN and probably other bugs 2021-07-19 01:31:40 -04:00
Jonathan Berglin
b15f426ee5 Resolve all approved error supressions 2021-07-18 17:11:46 +00:00
Joshua Barretto
eade248e1f Fixed handling of orientation changes for airships 2021-07-18 01:13:36 +01:00
Sam
0a32b676c8 Vines now ensnare you by applying a buff. 2021-06-23 22:38:16 -05:00
Sam
763461ebef Ensnaring vines now ensnare you. 2021-06-23 22:38:16 -05:00
Avi Weinstock
f1a1160b80 Make lava solid w.r.t. rendering while still being liquid w.r.t. physics. 2021-06-19 16:52:21 -04:00
Avi Weinstock
2226a4c6a9 Add lava to caves, which sets you on fire if you swim in it. Currently requires uncommenting #define LAVA in the shaders, and only looks good with cheap fluid mode. 2021-06-19 16:31:21 -04:00
Avi Weinstock
96ffae4387 Address MR 2460 comments.
- Switch from point query to AABB query to take into account block thickness.
2021-06-15 22:52:02 -04:00
Avi Weinstock
5e6363dbcc Make e2t hitboxes tighter by checking the floating point coordinates before looking up voxels. 2021-06-15 21:29:29 -04:00
Avi Weinstock
1af9ac568f Move force-movement e2e check so that it doesn't confer immunity to arrows. 2021-06-13 20:38:03 -04:00
Avi Weinstock
d02ff2db20 Don't apply e2e pushback during a forced movement character state. 2021-06-12 11:10:06 -04:00
Sam
c81e1534f7 First 3 abilities for tidal warrior functional. Added bubble particles. 2021-06-03 21:39:13 -05:00
Ygor Souza
d890a58b93 Reset on_ceiling state
Previously, the on_ceiling state would remain true for the entire
lifetime of the entity after it touched the ceiling once.
2021-05-30 21:49:11 +02:00
Avi Weinstock
d38db15411 Fixed entities with voxel colliders being off by one physics tick for collision. 2021-05-28 20:25:57 -04:00
James Melkonian
419cd2a5e4 Don't modify position in glide character state 2021-05-23 07:26:11 +00:00
Ludvig Böklin
46d1bb5f18 Adjusted masses; less excessive knockbacks; prevent loot shooting off 2021-05-22 17:56:13 +00:00