Commit Graph

85 Commits

Author SHA1 Message Date
Gaël C 0de2f746cf Update settingtypes.txt 2021-06-06 17:17:28 +02:00
Gaël C de8d685471 New settings system, use a conf file instead of datastorage
Added many missing settings, including pregeneration-related ones
TODO: update settingtypes.txt
2021-06-06 13:25:43 +02:00
Gaël C 51f3a2719d Generate and load map after mod loading
This has needed to globalize map tables
2021-06-05 11:24:28 +02:00
Gaël C b02387944d Pre-generation: reverse X and Y directions everywhere
to make directions compatible with the mapgen code
2021-06-04 18:24:06 +02:00
Gaël C 74733549df Various bugfixes and workarounds
Now working in pure Lua!
Some parts of the code are very hacky (e.g. noise) and the way new and old codes have been glued together is sometimes to be rewritten.
But at least it works.
2021-06-03 23:30:04 +02:00
Gaël C cb297af047 Add all code for generating a grid on world creation.
Not tested ; will likely need much testing and bugfix.
2021-06-03 20:08:57 +02:00
Gaël C 19efeaaff6 Globalize modpath and worldpath 2021-06-03 20:04:08 +02:00
Gaël C 0427b42d17 Removed Python terrainlib 2021-06-02 18:56:46 +02:00
Gaël C 7495d8a690 Added grid twisting (twist.lua)
Equivalent of Python terrainlib's 'bounds.py'
2021-06-02 18:42:40 +02:00
Gaël C c99b8338e0 Lua Terrainlib: added first Lua files for erosion and flow routing
Tested, but not linked with the mod, yet.
2021-06-01 19:07:09 +02:00
Gael-de-Sailly c175f2bbf7 Document conf files 2020-12-24 14:48:17 +01:00
Gael-de-Sailly ca68738ba7 Reworked parameters, and rename 'terrain.conf' to 'terrain_default.conf' 2020-12-24 14:48:17 +01:00
Gael-de-Sailly 85e545d5ac Fixed sea level variations 2020-12-24 14:48:17 +01:00
Gael-de-Sailly e0aecdc3f3 Added a second method for local flow calculation. It is possible to switch between them using the 'flow_method' parameter. 2020-12-24 14:48:17 +01:00
Gael-de-Sailly 83728cc932 Fixed lakes elevation
There were sometimes missing water patches near a lake's edge, when the neighbour catchment area was lower.
This commit allows to divide a cell into several mini-catchment basins, to fill only a part of it with water.
2020-12-24 14:48:17 +01:00
Gael-de-Sailly 9ffa150263 Added function 'noisemap' to generate a noise map with a quite unified parameter set, and an option for logarithmic noise. For future use. 2020-12-24 14:48:17 +01:00
Gael-de-Sailly 2a9335332b Added optional sea level variations for the simulation.
This results in more varied coastline morphologies.
2020-12-24 14:48:17 +01:00
Gael-de-Sailly 9b4a9b2516 Rework default erosion parameters,
Fix ignored values of K and m,
and changed processes order.
2020-12-24 14:48:17 +01:00
Gael-de-Sailly 7529291ab4 For bounds.py (calculation of offsets), use the same data type as rivers 2020-12-24 14:48:17 +01:00
Gael-de-Sailly b4f97bec61 For noise map seed: don't go over ±4096, to prevent rounding errors on coordinates (because noise library uses 32-bit floats) 2020-12-24 14:48:17 +01:00
Gael-de-Sailly 3dc874a494 Added description of the algorithm + acknowledge the authors of the paper. 2020-12-24 14:48:17 +01:00
Gael-de-Sailly f0dddee33c Lakes map: keep initial height (reduces file size)
Lake height is calculated for every basin, and there is a lake if lake height is higher than ground height. If it is lower, there is no lake.
In that case, it was previously raised to ground level, but since this can be done in Lua, we can write initial lakes height in the files.
This has the advantage of reducing file size, since there are bigger areas of equal values, that are more efficiently compressed.
2020-12-24 14:48:17 +01:00
Gael-de-Sailly ecd2c7d3f9 Completely change flow routing algorithm,
use a local flow calculation, determine depressions, and link them using a minimum spanning tree (Boruvka's algorithm).
This is based on a paper by Cordonnier et al, 2019.
2020-12-24 14:48:17 +01:00
Gael-de-Sailly 40098d6be3 Use standard int instead of uint8, int32, etc.
Much faster with NumPy.
2020-12-24 14:48:17 +01:00
Gael-de-Sailly faef1658a9 Fixed map centering, and converted polygon coordinates to map nodes instead of grid nodes. 2020-12-22 16:38:30 +01:00
Gael-de-Sailly d5cf4a6267 Optionally center the map around x=0 z=0 2020-12-20 22:28:54 +01:00
Gael-de-Sailly 53f88d337d Protect map preview from exceptions
Since map preview is optional, an exception should not propagate to terrain calculation, so print an error message + traceback but keep the script running.
2020-11-25 13:12:24 +01:00
Gael-de-Sailly 3644965842 Fix bool settings being improperly loaded as strings 2020-11-17 20:56:02 +01:00
Gael-de-Sailly 9725979363 Fix increments for argument parsing 2020-11-17 20:45:11 +01:00
Gael-de-Sailly ebacd3cdd4 Add license, update/improve documentation 2020-11-15 11:43:30 +01:00
Gael-de-Sailly fc0a158385 Disable glaciers by default 2020-11-15 11:26:50 +01:00
Gael-de-Sailly 050ca3b779 Change demo data, update to a grid using new default parameters 2020-11-15 11:19:28 +01:00
Gael-de-Sailly 1f41423104 Print a clear message when grid is ready
Also use plt.pause before plotting, ensuring plot is updated in real time
2020-11-15 11:13:42 +01:00
Gael-de-Sailly 52766e8918 Added settingtypes 2020-11-15 11:10:19 +01:00
Gael-de-Sailly 28c674d57c Decrease default diffusion factor 2020-11-14 19:14:09 +01:00
Gael-de-Sailly 90f60ea6fb typo 2020-11-14 19:13:58 +01:00
Gael-de-Sailly 803114aaab Generate data in `river_data` instead of `data` 2020-11-14 19:12:12 +01:00
Gael-de-Sailly 9594a79f8b Configurable output directory
Now relative to the directory the script is *run in*.
2020-11-14 18:26:13 +01:00
Gael-de-Sailly d93234c9b7 Moved Python files inside a folder (package), except the 2 that are directly executable 2020-11-14 17:35:27 +01:00
Gael-de-Sailly 7acd0af550 Use biomegen.generate_all 2020-11-14 17:35:03 +01:00
Gael-de-Sailly 3792cd5dc8 Added support for biomegen mod 2020-11-14 17:35:03 +01:00
Gael-de-Sailly 6b9c091dd5 Fix file opening mode on the Lua side, to avoid crashes on Windows 2020-11-14 17:31:36 +01:00
Gael-de-Sailly b90cecdaf7 Allow command-line options for Python processing 2020-11-14 14:30:53 +01:00
Gael-de-Sailly c33f2d9582 Python side: rework config system.
Load `terrain.conf` of the script directory by default.
Add a `terrain_higher.conf` for alternative terrain.
2020-11-14 12:19:40 +01:00
Gael-de-Sailly 8a15bc924d Dynamic map displaying
Map is displayed at every iteration if matplotlib library is installed
2020-11-14 12:05:52 +01:00
Gael-de-Sailly 3fda369fb5 Rewritten map viewer
Now displays map statistics even if there is no matplotlib
2020-11-13 11:04:27 +01:00
Gael-de-Sailly 30136bf60a Added scale (blocksize) parameter for view_map.py 2020-11-10 13:19:20 +01:00
Gael-de-Sailly 9475b49b8d Removed duplicate calls to 2 scripts 2020-11-10 13:18:02 +01:00
Gael-de-Sailly 36b49a7fe2 Add settings for parameters in terrain_rivers.py 2020-07-21 14:12:20 +02:00
Gaël de Sailly 103cd49d78 Optionally disable distorsion
by setting 'mapgen_rivers_distort = false' in minetest.conf
2020-07-21 14:01:29 +02:00