Commit Graph

133 Commits

Author SHA1 Message Date
Gaël C
f350f8785c Flow routing: Initialize basin_graph + comment where complexity might be non-linear 2024-01-22 11:46:53 +01:00
Gaël C
4bce5fab77 Completely unroll nested function in flow routing algorithm 2024-01-22 11:46:53 +01:00
Gaël C
b54f2c4546 terrainlib: More optimizations on flow routing 2024-01-22 00:33:42 +01:00
Gaël C
c723b28ec6 terrainlib/rivermapper.lua: Move checks out of the nested function 2024-01-22 00:30:07 +01:00
Gaël C
fe6e281130 terrainlib: loop only once for all singular nodes at step 2 of flow routing 2024-01-22 00:30:07 +01:00
Gaël C
2acefb2660 terrainlib: compute current queue length instead of using '#' operator.
Important speedup.
2024-01-22 00:30:07 +01:00
Gaël C
0bc100030c terrainlib_lua: Hardcode flow_local for performance
as it is unlikely that it will be changed one day.
This results in a drastic performance improvement (x4 speed for step 1)
2024-01-22 00:30:07 +01:00
Gael-de-Sailly
d00295600d Add a very brief description at the head of every file 2022-01-26 11:25:17 +01:00
Gael-de-Sailly
0983c27cca Move geometry helpers back to heightmap.lua 2022-01-26 11:09:51 +01:00
Gael-de-Sailly
6564d40b85 Refactor grid loading and reorganize code
Move grid management functions out of polygons.lua, in a new file called gridmanager.lua
Explicitly call other files and grid management functions from init.lua
to make workflow more apparent
Move mapgen loop out of init.lua, into mapgen.lua
2022-01-26 10:54:11 +01:00
Gael-de-Sailly
cd2a77803f Globalize some of the main functions
This will allow to avoid nested 'dofile's
2022-01-21 14:22:22 +01:00
Gael-de-Sailly
b0930f4d40 Fix river shape in confluences (less sharp riverbeds when a small rivers joins a big one)
Also cleaned and commented the code
2022-01-20 15:28:14 +01:00
Gael-de-Sailly
975ad02739 Exclude exact riverbanks from rivers
This avoids considering points that are exactly at the border of a polygon as rivers
2022-01-20 15:28:14 +01:00
Gael-de-Sailly
6d8ee5af1f Added settings for margin, and documented in settingtypes.txt 2022-01-20 15:28:14 +01:00
Gael-de-Sailly
fabe107336 Added margin with a settable width near grid border
Elevation gets closer to -50 when approaching the border
2022-01-20 15:28:14 +01:00
Gael-de-Sailly
7e155b7076 Express map size in Minetest nodes, not in river grid nodes
This introduces new parameters 'map_x_size' and 'map_z_size' that default to 15K
Deprecates 'grid_x_size' and 'grid_z_size'; if they are present, corresponding
values of 'map_x_size' and 'map_z_size' are automatically written in config files.
Also rework compatibility system to better compare versions,
and bump version to 1.0.2-dev1.
2022-01-20 15:28:14 +01:00
Gael-de-Sailly
b374e8ee95 Create settings_default.json to store default values for settings
Move noise parameters to settings.lua
2022-01-18 15:21:14 +01:00
Gaël C
1ad8c96b8c Remove 'default' hard dependency 2022-01-17 23:20:34 +01:00
Gael-de-Sailly
2f7098d752 Bump version (1.0.2) and add changelog 2022-01-10 12:44:33 +01:00
Gael-de-Sailly
942a869b9f Minor fix in README 2022-01-10 12:32:38 +01:00
Gaël C
b3d79eaaf8 Added more comments in terrainlib_lua 2022-01-07 14:48:36 +01:00
Gaël C
68c19c3b94 terrainlib_lua: replaced space indents by tabs 2022-01-06 15:36:31 +01:00
Gael-de-Sailly
417ce1bcbc Use builtin logging system and appropriate loglevels 2022-01-03 16:33:56 +01:00
Gael-de-Sailly
c3a798933f Localize all global functions in load.lua and geometry.lua 2022-01-03 16:20:51 +01:00
Gael-de-Sailly
0c98fc0881 Skip chunks that are fully higher than ground level 2022-01-03 16:18:48 +01:00
Gael-de-Sailly
cb71f4400a Corrected mistake in settingtypes 2022-01-03 12:04:49 +01:00
Gael-de-Sailly
f8f467ac3f Use local variables for math.* functions
and remove an unnecessary index calculation
2022-01-03 11:56:16 +01:00
Gael-de-Sailly
2e29474686 Bump version (1.0.1) 2021-09-14 15:08:29 +02:00
Gael-de-Sailly
27670addb3 Switch to singlenode mapgen if not done 2021-09-07 11:59:33 +02:00
Gael-de-Sailly
54b94e6485 Updated screenshot 2021-08-01 18:43:44 +02:00
Gael-de-Sailly
09de0fd298 Added reference to scientific paper 2021-07-28 19:50:27 +02:00
Gaël C
e3cadcdbc6 Collect garbage during pre-generation to free some space and reduce OOM problems 2021-07-26 22:28:45 +02:00
Gaël C
f7bc5ee0b4 Added logs during pre-generation 2021-07-25 10:14:15 +02:00
Gaël C
2c5e0ee5af Code style consistency: use tabs for indentation in all Lua code 2021-07-24 18:55:13 +02:00
Gaël C
95e87f8820 Updated README.md and added environment.yml
Switching to full Lua incredibly simplified the amount of stuff needed in README!
2021-07-24 18:49:17 +02:00
Gaël C
db33e58f0a Make map size a setting 2021-07-24 17:41:17 +02:00
Gaël C
31c5ea1025 Python map viewing: read conf file, and take world folder as input 2021-07-24 17:21:21 +02:00
Gaël C
c2c397c2a5 Added compatibility script
to update parameter values coming from older versions
2021-07-24 13:21:06 +02:00
Gaël C
9386ef51f1 Changed the way river width is determined in settings
- min_catchment now in square nodes instead of cells
- River widening power as input instead of calculating it from max_catchment
2021-07-24 13:18:58 +02:00
Gaël C
8ce20816e1 Some changes in default settings
- blocksize = 15 by default
- base noise is eased
- added tectonic compensation radius in settings
2021-07-24 10:23:06 +02:00
Gaël C
32bc9561b6 Made interactive loading optional but enabled by default 2021-06-26 16:02:00 +02:00
Gaël C
7e39189368 Load data on request instead of loading everything at first.
Data is cached in memory in case it is reused.
Offset values have a callback that converts them to the range ±0.5
2021-06-26 13:17:09 +02:00
Gaël C
636773487a Optimized load.lua by avoiding multi-argument packing 2021-06-26 11:49:26 +02:00
Gaël C
9cda649c93 Fixed time statistics 2021-06-26 11:26:45 +02:00
Gaël C
ecd1f0e08f Added time statistics and removed debug prints 2021-06-25 21:05:14 +02:00
Gaël C
5898354dbe Changed some default parameters
Map centered by default
Base noise higher and less wide horizontally
2021-06-25 21:05:03 +02:00
Gaël C
e14bc5216c Removed useless and deprecated files 2021-06-23 19:56:37 +02:00
Gaël C
a313244d07 Rename generate.lua -> pregenerate.lua 2021-06-23 19:53:56 +02:00
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