mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-26 04:21:07 +01:00
Update biomeinfo to 1.0.3
This commit is contained in:
parent
d8cb7a7164
commit
b2c8d7cff0
2 changed files with 37 additions and 5 deletions
|
@ -6,6 +6,6 @@ Most importantly, you can get the heat, humidity and biome in the v6 mapgen.
|
||||||
|
|
||||||
See `API.md` for the API documentation.
|
See `API.md` for the API documentation.
|
||||||
|
|
||||||
Current version: 1.0.1 (this is a [SemVer](https://semver.org/))
|
Current version: 1.0.3 (this is a [SemVer](https://semver.org/))
|
||||||
|
|
||||||
License: MIT License
|
License: MIT License
|
||||||
|
|
|
@ -19,6 +19,28 @@ local seed = tonumber(minetest.get_mapgen_setting("seed")) or 0
|
||||||
|
|
||||||
local mgv6_perlin_biome, mgv6_perlin_humidity, mgv6_np_biome
|
local mgv6_perlin_biome, mgv6_perlin_humidity, mgv6_np_biome
|
||||||
|
|
||||||
|
-- v6 default noiseparams are hardcoded here because Minetest doesn't give us those
|
||||||
|
local mgv6_np_biome_default = {
|
||||||
|
offset = 0,
|
||||||
|
scale = 1,
|
||||||
|
spread = { x = 500, y = 500, z = 500},
|
||||||
|
seed = 9130,
|
||||||
|
octaves = 3,
|
||||||
|
persistence = 0.50,
|
||||||
|
lacunarity = 2.0,
|
||||||
|
flags = "eased",
|
||||||
|
}
|
||||||
|
local mgv6_np_humidity_default = {
|
||||||
|
offset = 0.5,
|
||||||
|
scale = 0.5,
|
||||||
|
spread = { x = 500, y = 500, z = 500},
|
||||||
|
seed = 72384,
|
||||||
|
octaves = 3,
|
||||||
|
persistence = 0.50,
|
||||||
|
lacunarity = 2.0,
|
||||||
|
flags = "eased",
|
||||||
|
}
|
||||||
|
|
||||||
local v6_flags_str = minetest.get_mapgen_setting("mgv6_spflags")
|
local v6_flags_str = minetest.get_mapgen_setting("mgv6_spflags")
|
||||||
if v6_flags_str == nil then
|
if v6_flags_str == nil then
|
||||||
v6_flags_str = ""
|
v6_flags_str = ""
|
||||||
|
@ -86,15 +108,19 @@ biomeinfo.all_v6_biomes = {
|
||||||
local function init_perlins()
|
local function init_perlins()
|
||||||
if not mgv6_perlin_biome then
|
if not mgv6_perlin_biome then
|
||||||
mgv6_np_biome = minetest.get_mapgen_setting_noiseparams("mgv6_np_biome")
|
mgv6_np_biome = minetest.get_mapgen_setting_noiseparams("mgv6_np_biome")
|
||||||
if mgv6_np_biome then
|
if not mgv6_np_biome then
|
||||||
mgv6_perlin_biome = minetest.get_perlin(mgv6_np_biome)
|
mgv6_np_biome = mgv6_np_biome_default
|
||||||
|
minetest.log("action", "[biomeinfo] Using hardcoded mgv6_np_biome default")
|
||||||
end
|
end
|
||||||
|
mgv6_perlin_biome = minetest.get_perlin(mgv6_np_biome)
|
||||||
end
|
end
|
||||||
if not mgv6_perlin_humidity then
|
if not mgv6_perlin_humidity then
|
||||||
local np_humidity = minetest.get_mapgen_setting_noiseparams("mgv6_np_humidity")
|
local np_humidity = minetest.get_mapgen_setting_noiseparams("mgv6_np_humidity")
|
||||||
if np_humidity then
|
if not np_humidity then
|
||||||
mgv6_perlin_humidity = minetest.get_perlin(np_humidity)
|
np_humidity = mgv6_np_humidity_default
|
||||||
|
minetest.log("action", "[biomeinfo] Using hardcoded mgv6_np_humidity default")
|
||||||
end
|
end
|
||||||
|
mgv6_perlin_humidity = minetest.get_perlin(np_humidity)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -112,6 +138,9 @@ end
|
||||||
|
|
||||||
function biomeinfo.get_v6_heat(pos)
|
function biomeinfo.get_v6_heat(pos)
|
||||||
init_perlins()
|
init_perlins()
|
||||||
|
if not mgv6_perlin_biome then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
local bpos = vector.floor(pos)
|
local bpos = vector.floor(pos)
|
||||||
-- The temperature noise needs a special offset (see calculateNoise in mapgen_v6.cpp)
|
-- The temperature noise needs a special offset (see calculateNoise in mapgen_v6.cpp)
|
||||||
return mgv6_perlin_biome:get_2d({x=bpos.x + mgv6_np_biome.spread.x*0.6, y=bpos.z + mgv6_np_biome.spread.z*0.2})
|
return mgv6_perlin_biome:get_2d({x=bpos.x + mgv6_np_biome.spread.x*0.6, y=bpos.z + mgv6_np_biome.spread.z*0.2})
|
||||||
|
@ -119,6 +148,9 @@ end
|
||||||
|
|
||||||
function biomeinfo.get_v6_humidity(pos)
|
function biomeinfo.get_v6_humidity(pos)
|
||||||
init_perlins()
|
init_perlins()
|
||||||
|
if not mgv6_perlin_humidity then
|
||||||
|
return nil
|
||||||
|
end
|
||||||
local bpos = vector.floor(pos)
|
local bpos = vector.floor(pos)
|
||||||
return mgv6_perlin_humidity:get_2d({x=bpos.x, y=bpos.z})
|
return mgv6_perlin_humidity:get_2d({x=bpos.x, y=bpos.z})
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue