- Identify candidate spots to place loot.
- Store loot placement spots for later handling.
This will involve manipulating metadata and other
things that are not necessarily safe to do while
other mapgen_shared may run after us.
- Process the loot queue on tick.
Things left to do:
- Define loot tables and rarity values.
- Identify storeboxes and other storage mechanisms.
- Generate random stacks.
This should cause maps that have the same
seeds to have much more similar results
than before, e.g. sponge deposits will be in
the same places determined by seed and not
random each regeneration of the map.
- Mapgen shared now provides an RNG which
will be deterministic when feasible, for
repeatable mapgen results.
- Make existing rng-using mapgen hooks use
the new deterministic RNG.
- Mapgen shared hooks are also run in
deterministic order too.
- Tidy up mapgen_shared API a little more.
Mods may change singlenode mapgen to generate stone,
in which case we want them to be able to also reenable
the standard mapgen_shared hooks.
- If def.enabled == true, always run the hook.
- If def.enabled == false, never run it.
- If def.enabled is not set (nil) then run it based on
standard logic, i.e. not on singlenode.
- Register def tables instead of bare funcs.
- Add labels for mod logic use.
- Automatically skip for singlenode mapgens,
e.g. for the skyblock modpack.
- Apply stratification last in shared mapgens, so it can see all
already-placed ores.
- Support stratification for nodes other than plain stone.
- Register lode stone and lode ore for stratification.