This way, at the time the announcement is made,
the player has already been kicked, and any mods
that check the player list based on this (i.e.
szutil_nowonline) will show the correct list.
Visinv ents sometimes don't appear in MT
5.4+. I haven't fully investigated the
reason yet, but it could be because the
mapblocks aren't "active" yet when the
LBM is being called and trying to create the
ents, so if the creation fails, try queueing
a retry and see if we catch it later.
The original idea was to have items that are thrown and land into a
stack node smoothly "slide" into place instead of disappearing
momentarily and then reappearing in their final spot, to create a sort
of visual continuity.
However, it turns out that making this actually work is almost
certainly going to be way more complex and fragile than it's worth,
and visinvs have faced new challenges since then anyway, so it's
probably about time to kill this project officially.
- This branch has gone nowhere for a long time.
- Most players agreed they didn't like the new look.
- It would take away texture pack authors' ability to redefine the
shape of the eggcorn as they can now.
- The existing "flat item extrude mesh" look fits well enough with
the other artwork in the game that it's not needed.
This was an interesting experiment and so will be preserved in the
project history, but isn't going anywhere so doesn't deserve its own
branch head.
Apparently on top of dungeons regenerating
over top of themselves, caves can also carve
into dungeons, and this may cause issues
with dungeon loot, where the loot nodes are
removed (but w/o the destructor) so that
floating fake visinv entities are sometimes
left floating in place.
Instead, give the engine time to finish
initializing dungeons, and then use only the
ABM (sigh, it's always only ABMs that are
actually eventually reliable after all) to do
delayed initialization.
This kind of sucks if the player starts out in
a dungeon in a new map, but the old "fast"
methods weren't fast enough to prevent a
flash of uninitialized dungeon anyway, so we
just have to hope that the dungeons will get
initialized while on the map horizon before
the player gets close enough for it to matter.
Get rid of the different dungeon cobble now
to mitigate this, also since we no longer
need it to debug uninitialized dungeons.
This interferes with dungeon mobility, and
especially when shelves are placed on
stairs this makes it less believable that
someone could have once lived here and
left it this way.
Mods can now nodecore.register_dungeongen(def)
similar to how mapgen_shared works, except func is
run for each (pos, node) in dungeons. This tries to
catch all dungeons as soon as possible, but some
nodes may experience arbitrary delays before
they're processed. We hope this won't be a problem
in practice because dungeons should usually
generate on the periphery of view range and have
plenty of time to process before they arrive at the
player's current location.
This API could be used in theory to customize the
materials used in dungeons or add treasures.
Just as surrounding sprouts with higher quality
soil causes them to mature faster, planting them
direcly in higher-quality soil gives them a oneshot
boost (since the soil quality is consumed
immediately).
The idea was to have Minetest spend more of its total available
time running ABMs so that ABMs are less likely to fall behind.
The problem is that Minetest's ABM time management is so completely
TERRIBLE that this causes huge lagspikes and makes the game
largely unplayable, so we're required to waste this time instead.