Commit graph

304 commits

Author SHA1 Message Date
kno10
7a8b632057 Drop non-persistent tracking of generated chunks. 2024-10-29 19:28:43 +01:00
kno10
38c333981f polishing 2024-10-29 19:28:43 +01:00
kno10
54d1c4f774 template specialization for param2 2024-10-29 19:28:43 +01:00
kno10
3436e6a545 improvments to mineshaft cart variety + /locate 2024-10-29 19:28:43 +01:00
kno10
9ba0337a36 use swap_node instead of set_node in mapgen, tweaks to end 2024-10-29 19:28:43 +01:00
kno10
4430d1299e further fixes and improvements. 2024-10-29 19:28:43 +01:00
kno10
99e3aeea4e disable foliage 'fixes' that cause multi-colored trees 2024-10-29 19:28:43 +01:00
kno10
49a90a0dc4 Huge update of new terraforming, structures, and village code 2024-10-29 19:28:42 +01:00
kno10
acb5aef76b Big rewrite of structure spawning using voxel manipulators 2024-10-29 19:28:42 +01:00
kno10
27802fe2df move structures code from mcl_mapgen_core to mcl_structures 2024-10-29 19:28:42 +01:00
kno10
2a4fe39d5c prioritize map decorations to make the generations more deterministic 2024-10-29 19:28:42 +01:00
kno10
9a305b56a8 Make structure generation more deterministic
Pseudorandom now depends on position hash, not on blockseed + structure table order.
This should make structure generation more deterministic.
2024-10-29 19:28:42 +01:00
kno10
5fe4822f30 Some optimizations for mapgen 2024-10-29 19:28:42 +01:00
kno10
71881154e9 use vector.in_area instead of own code in mapgen (#4562)
`between` and `in_cube` duplicate functionality already in minetest `vector`.

Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4562
Reviewed-by: the-real-herowl <the-real-herowl@noreply.git.minetest.land>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-09-09 20:05:59 +02:00
kno10
444c491e14 Remove mcl_structures:structblocks (#4619)
As spawning happens via gennotify anyway, we can omit placing a
structblock right away.

This also avoids certain cases of holes in snow cover or water.
Plus, the code is simpler.

Isolated from the big mapgen overhaul, for the main branch.

Reviewed-on: https://git.minetest.land/VoxeLibre/VoxeLibre/pulls/4619
Reviewed-by: Mikita Wiśniewski <rudzik8@protonmail.com>
Co-authored-by: kno10 <erich.schubert@gmail.com>
Co-committed-by: kno10 <erich.schubert@gmail.com>
2024-08-31 21:01:44 +02:00
teknomunk
98eed36938 Update matrix link, update git link in source code and one module README that has a link to git 2024-05-07 11:38:00 +00:00
Zasco
351e31a889 Move deepslate ore registration within generation check 2023-12-12 23:16:51 +00:00
ancientmarinerdev
10a3d06360 Fix global variable references and exit mob_step if missing pos 2023-05-22 21:05:12 +00:00
ancientmarinerdev
3b1464ecc8 Tweak leaf generator numbers to catch missed jungle leaves 2023-04-16 17:50:22 +01:00
ancientmarinerdev
1015f5a569 Optimize folliage fixes code 2023-04-16 16:20:45 +00:00
ancientmarinerdev
31b65bac91 Move generator code to functions to aid in profiling 2023-04-16 16:20:45 +00:00
FossFanatic
01ac9ad685 Add old method back for foliage
This commit adds back the old `set_node` method for the foliage, since the foliage is much more difficult to work with via the VoxelManip method due to them being part of schematics that could span across mapblocks in some cases.

The old method will complement the new one by running after the VoxelManip has done its job, and fixes any foliage that the VoxelManip had missed.
2023-04-16 16:20:45 +00:00
FossFanatic
d28dcb1b10 Another small change to account for mangrove leaves
This one should actually work as expected.
2023-04-16 16:20:45 +00:00
FossFanatic
aac6af4c20 Small change to account for mangrove leaves 2023-04-16 16:20:45 +00:00
FossFanatic
d8d83dd21c Make vines use voxelmanip colouring as well
This commit adds some code to the `set_foliage_palette` function which checks for the `param2` of the foliage node in question to see whether or not said `param2` value is `0` upon first being generated.

If it isn't, then it's safe to assume that said foliage is a vine, and therefore needs to use the other method of calculating the final `param2` value.
2023-04-16 16:20:45 +00:00
FossFanatic
76bf98b26c Use voxelmanip to set the correct param2 for nodes
Voxelmanip is now used to set the correct `param2` for the nodes which use biome colouring or, in the case of seagrass, the correct meshoption.
2023-04-16 16:20:44 +00:00
ancientmarinerdev
0abc0ffc48 Mapgen optimisations 2023-04-01 18:53:51 +00:00
ancientmarinerdev
6989e00af7 Tweak lapis distribution. 2023-03-19 18:01:39 +00:00
FossFanatic
b80dd0294c Change the grass LBM & generator
This commit makes the grass LBM & generator look for nodes in the `grass_palette` group, instead of looking at a local list.
2023-03-05 12:45:44 +00:00
FossFanatic
a457853938 Improve code relating to vines
This commit makes the LBM and `register_on_generated` for foliage now use the better calculation for the vines.
2023-02-27 20:25:36 +00:00
FossFanatic
686bb38546 Add lbm and register_on_generated for water 2023-02-18 08:23:40 +00:00
FossFanatic
10d9eb2980 Upload files to 'mods/MAPGEN/mcl_mapgen_core' 2023-02-15 12:23:58 +00:00
FossFanatic
3d9df5c797 Fix issue with vines in certain biomes
This commit removes some excessive checks which caused vines to not get a biome colour in certain biomes at certain rotations.
2023-02-15 12:20:15 +00:00
FossFanatic
f919f73c24 Improve some code 2023-02-14 18:14:10 +00:00
FossFanatic
fee4ccf096 Convert old player leaves into new system
This commit adds a couple of lines to the `mcl_mapgen_core:fix_foliage_palette_indexes"` LBM, which ensures that player leaves which were placed before this update get converted into the new player leaves.

I would have included mangrove leaves, but decided against it because of an issue where the `param2` of mangrove leaves was accidentally set to 1 (in the schematics?). This meant that if I included mangrove leaves, the LBM would have converted the natural leaves as well.

This would have made it very tedious to clean up the leaves after chopping down a mangrove tree, since these would not rot by themselves.
2023-02-14 11:20:00 +00:00
FossFanatic
f653f47f26 Improve the new code somewhat 2023-02-14 08:36:49 +00:00
FossFanatic
aeddb7675f Don't run LBMs at every load
This commit makes it so the LBMs don't run at every load.

This commit also adds some new `minetest.register_on_generated()` code, which should ensure that any newly generated mapblocks have the correct foliage colours.
2023-02-13 18:50:26 +00:00
FossFanatic
2ccfd89379 Add nil checks 2023-02-13 15:49:19 +00:00
FossFanatic
1c84bc6572 Put all affected grass blocks in a local
This commit puts all nodes which make use of the grass palette in a local, to make for less messy code.
2023-02-13 10:33:47 +00:00
FossFanatic
3590ff6dfb Improve some LBM code 2023-02-12 08:23:19 +00:00
FossFanatic
b789845f62 Indentation improvements 2023-02-10 15:19:02 +00:00
FossFanatic
4ddab8bdf1 Remove the ABMs
There are likely better ways to fix any palettes that the LBMs missed.
2023-02-09 16:16:13 +00:00
FossFanatic
b95ebb3fca Add LBMs, ABMs, and more
This commit adds 1 new LBM (for foliage) and 2 new ABMs (one for foliage, and one for grass).

This also adds a new generator so any new maps created will have biome coloured leaves with a faster method. (Vines are excluded from this generator since I don't know yet how to get those to work with this.)
2023-02-08 16:17:33 +00:00
FossFanatic
cbb3260471 Make the palette fix LBM not run on v6 & singlenode
This fixes a crash when loading a world that doesn't have any biomes and the LBM tries to give the grassy nodes a biome colour.
2023-02-01 22:35:13 +00:00
FossFanatic
9afdd09d9d Fix wrong init accident
I accidentally put the `init.lua` of `mcl_biomes` instead of `mcl_mapgen_core` in my previous commit. This fixes that.
2023-01-23 10:25:48 +00:00
FossFanatic
2d81d153bd Unsimplify the LBM 2023-01-22 18:02:31 +00:00
FossFanatic
dc7a46df4e Simplify the LBM even more 2023-01-22 17:46:17 +00:00
FossFanatic
ad25b0bc4b Make set palette safer 2023-01-22 16:51:40 +00:00
FossFanatic
b77260253a Make grass palette fix LBM more efficient 2023-01-22 15:59:10 +00:00
FossFanatic
9746dbc376 Make the LBM run at every load again
After testing this out, it seems that the LBM only works consistenly when it runs at every load.
2023-01-17 16:04:12 +00:00