- Retire items_fall_thru group
- Add on_settle_item callback
- Open-topped storeboxes automatically capture
items settling on top of them
- Start converting form into storebox
Apparently an object having had automatic
rotate set in properties in the past will cause its
rotation to retain some unknowable offset,
presumably calculated client-side and not
matching the ent's yaw. Entity replacement
(i.e. backing out reuse) is the simplest fix and
the transient one-time flicker is better than
losing the stack fullness indicator from yaw.
If an item was settling too far away from where the item ent
landed, e.g. if pushed out by other settling items at the same
place, then it was using entity position to get visinv data
instead of node position.
Inform visinv ents of their actual node position instead of relying
on the object being reasonably close and rounding. This fixes
multiple potential issues with visinv entity display and allows
these entities to be displaced arbitrarily far from their home
node and still function.
When a thrown item settles into a node space and
becomes a visinv node, reuse the existing entity instead
of deleting the old one and creating a new one, if
possible.
- On door convey
- On item ent settling
Only able to support limited cases, and still can't
usefully animate nodes, but at least this makes
some item placement behavior look smoother.
This created a ton of dependency inversions, which
necessitated moving a number of API functions up into
higher layers, and restructuring dependency lists for
a number of mods.
BOLO: non-deterministic load errors due to missed
dependencies.
- Thrown objects inherit initial velocity.
- Player and objects have matched terminal
velocity and can free-fall in tandem.
- Thrown objects experience horizontal air
friction too.
Instead of shuffling all the shells once for each tick used,
shuffle only those shells actually used once per tick. This
should save us more time in common cases where we need
to only check a few shells to find a place to settle.
- Always prefer closest place first, then lowest height.
- Simplify search order; use a pre-built order instead of scan.
- Randomize search order only once per tick, if used.
The old method was designed for 0.4 compatibility. Since 5.0
there appears to be a flag we can just check to see if the item
is still moving according to physics or settled.