Commit graph

115 commits

Author SHA1 Message Date
Erik Ogenvik
166a5aaba3 Initial work on planting entities. 2018-03-23 19:22:35 +01:00
Erik Ogenvik
ed0878dd5f Added missing spinning friction check. 2018-03-12 18:56:30 +01:00
Erik Ogenvik
ad8e6e9134 Support older versions of Bullet.
"spinning friction" is nice to have, but not necessary.
2018-03-12 18:43:28 +01:00
Erik Ogenvik
380b4e21d9 Added rolling and spinning friction. 2018-03-12 18:15:20 +01:00
Erik Ogenvik
72e7a5e0c2 Move resting entities along.
I.e. when an entity is moved, and there are other entities resting on
top of it, move them along too.
2018-03-09 14:37:11 +01:00
Erik Ogenvik
065505b07e Added compound shapes.
These are useful when you want to represent concave shapes with more
fidelity (since they otherwise would be represented by a convex hull
when on "free" mode).
2018-03-07 15:22:13 +01:00
Erik Ogenvik
8913f454dd Use convex hulls for moving meshes.
GImpact is just too slow, and we don't need the fidelity.
2018-03-06 16:30:08 +01:00
Erik Ogenvik
63d36617ed Fixed issues with terrain mods and moving entities. 2018-03-05 22:14:58 +01:00
Erik Ogenvik
98166a57e0 Added support for free mesh geometry.
We do this by using the GImpact shapes. These work, but are resource
intensive. So make sure you don't use too many of these in free mode.
This isn't thouroughly researched though. It might be worth looking into
btCollisionHull, or to alter some of the parameters to fine tune the
simulation.
2018-03-05 12:42:10 +01:00
Erik Ogenvik
f21e7509dc Avoid segfaults when removing water bodies. 2018-02-28 11:43:19 +01:00
Erik Ogenvik
d0585e9eb8 Enabled oceans and lakes.
Through the "water_body" property. An entity which has this is a water
body. If there's a bbox the entity is a lake (bounded), otherwise it's
an ocean (infinite bounds).
2018-02-28 09:34:05 +01:00
Erik Ogenvik
4cabaed1c8 Add support for submerged entities.
An entity becomes "submerged" when it moves into a body of water.
Currently we only check if its y-position is below 0, but we aim to
provide better support for various water entities in the future.
2018-02-24 00:20:02 +01:00
Erik Ogenvik
dffd89db29 Handle floating entities.
These are like planted entities, but will float when placed in water.
2018-02-23 14:51:35 +01:00
Erik Ogenvik
c19576d694 Added property for jumping, "speed-jump".
Entities without it cannot jump.
2018-02-20 23:08:14 +01:00
Erik Ogenvik
2590f4ded9 Fixed issue with invalid inertia for meshes. 2018-02-20 22:26:27 +01:00
Erik Ogenvik
0bc9450cff Standarize on double precision. 2018-02-12 09:46:30 +01:00
Erik Ogenvik
ca2abb94b5 Refactor how movement is handled and sent.
We've introduced the properties "speed-ground", "speed-water" and
"speed-flight" which specifies the top speed in m/s for each medium.

The "propel" attribute is now normalized, since it's multiplied with the
applicable top speed (depending on the medium, although currently we
only use the ground speed, TODO).
2018-02-11 23:22:20 +01:00
Erik Ogenvik
a3560c817f Use "propel" property for movement.
Clients shouldn't set the "velocity", instead setting the "propel"
property.
2018-02-11 21:15:35 +01:00
Erik Ogenvik
38433c11d0 Remove "creator" hacks. 2018-02-06 13:45:10 +01:00
Erik Ogenvik
99640d26aa Use a left hand coord system. 2018-02-06 13:45:10 +01:00
Erik Ogenvik
0acdd29674 Properly take offset into account when placing.
Fixes an issue with unsynced bullet representations when an entity was
moved.
2018-01-11 17:07:05 +01:00
Erik Ogenvik
eb2bb200e5 Clean up and remove unused structs. 2017-07-25 23:40:39 +02:00
Erik Ogenvik
6e6fe3b9b6 Handle (dis)appear ops when moving between locs. 2017-06-27 21:06:07 +02:00
Erik Ogenvik
b40c613a78 Improve handling of broadcasts.
Use the domains for determining broadcasts.
2017-06-24 21:47:43 +02:00
Erik Ogenvik
b9cdbbbd1a Handle inventory domain better. 2017-06-12 18:01:52 +02:00
Erik Ogenvik
e56200cfde Reset vertical movement if grounded when stopping. 2017-05-28 15:42:52 +02:00
Erik Ogenvik
b71125cd84 Remove code that tries to step up automatically.
This is really tricky to get right; we'll leave it out and instead rely
on clients sending commands to step up when they need to.
2017-05-28 15:41:54 +02:00
Erik Ogenvik
2c842050c0 Read property from correct entity. 2017-05-28 14:27:06 +02:00
Erik Ogenvik
be920d8e27 Use our own Bullet world class.
The main difference beeing that we only sync world state after all
substeps have been handled, which fit our use case well.
2017-05-28 00:13:41 +02:00
Erik Ogenvik
737005b624 Added step-factor to control stepping.
It's a float property which determines how high the entity can step,
relative to its height.
2017-03-24 17:19:10 +01:00
Erik Ogenvik
7aaa9b9ba7 Optimize includes. 2017-03-19 21:36:52 +01:00
Erik Ogenvik
df77523d16 Properly handle mesh geometry. 2017-03-19 14:36:35 +01:00
Erik Ogenvik
7c9f0da03a Prevent mobiles from slipping on slopes.
Any mobile should manage to cling onto slopes.
2017-03-16 21:32:05 +01:00
Erik Ogenvik
08c9ac0ded Fixed issue with observers not seeing themselves. 2017-03-16 21:12:17 +01:00
Erik Ogenvik
0b9fcf5c83 Control CCD better. 2017-03-15 22:28:44 +01:00
Erik Ogenvik
fe77a2d268 Always step with 60 hz. 2017-03-15 21:16:46 +01:00
Erik Ogenvik
72c6163d36 Scale visibility spheres, so they are smaller.
Bullet is optimized to work with "human sized" collision objects.
By making the visibility spheres too large we tax the system too much.
Better to scale the position the other way.
2017-02-18 23:04:51 +01:00
Erik Ogenvik
8f1373d18c Apply z-offset correctly. 2017-02-14 17:57:40 +01:00
Erik Ogenvik
9d873cf079 Removed kinetic character controller.
The performance is just too bad, we can't use it with the amount of
characters we intend to support.
2017-01-31 23:05:46 +01:00
Erik Ogenvik
696033a8fd Added ability to jump. 2017-01-31 22:14:01 +01:00
Erik Ogenvik
69f99f3302 Improve performance for static entities.
We do this by deactivating automatic aabb updates for static entities.
And also by using the COLLISION_MASK_STATIC mask for static entities.
2017-01-29 23:07:51 +01:00
Erik Ogenvik
651ea52a70 Set correct mask and filter for terrain. 2017-01-29 20:46:16 +01:00
Erik Ogenvik
95be39e268 Provide single method for setting velocity. 2017-01-29 20:45:23 +01:00
Erik Ogenvik
09ff936111 Turn on CCD to prevent tunneling. 2017-01-29 17:06:39 +01:00
Erik Ogenvik
12e6eb4cfc Clip free objects to terrain. 2017-01-28 16:38:37 +01:00
Erik Ogenvik
6b4302dc5f Let property handle tick rate.
And other smaller fixes to the physical domain.
2017-01-27 20:39:00 +01:00
Erik Ogenvik
d40c2261e1 Added comments for clarity. 2017-01-22 19:26:37 +01:00
Erik Ogenvik
93f3450ea5 Only send changed location data.
To try to keep the amount of data down.
2017-01-21 14:31:19 +01:00
Erik Ogenvik
fb89b03302 Added ability to jump. 2017-01-05 00:28:31 +01:00
Erik Ogenvik
c15a2f80cd Implemented more functioanlity for characters. 2017-01-04 23:25:46 +01:00