mirror of
https://gitlab.com/rautars/weather_pack.git
synced 2025-07-16 13:50:21 +02:00
added biome check based on noice parameters
This commit is contained in:
55
utils.lua
55
utils.lua
@ -73,4 +73,57 @@ hw_utils.get_random_pos = function(player, offset)
|
||||
|
||||
|
||||
return {x=random_pos_x, y=random_pos_y, z=random_pos_z}
|
||||
end
|
||||
end
|
||||
|
||||
local np_temp = {
|
||||
offset = 50,
|
||||
scale = 50,
|
||||
spread = {x = 1000, y = 1000, z = 1000},
|
||||
seed = 5349,
|
||||
octaves = 3,
|
||||
persist = 0.5,
|
||||
lacunarity = 2.0
|
||||
}
|
||||
|
||||
local np_humid = {
|
||||
offset = 50,
|
||||
scale = 50,
|
||||
spread = {x = 1000, y = 1000, z = 1000},
|
||||
seed = 842,
|
||||
octaves = 3,
|
||||
persist = 0.5,
|
||||
lacunarity = 2.0
|
||||
}
|
||||
|
||||
hw_utils.is_biome_frozen = function(position)
|
||||
local posx = math.floor(position.x)
|
||||
local posz = math.floor(position.z)
|
||||
local noise_obj = minetest.get_perlin(np_temp)
|
||||
local noise_temp = noise_obj:get2d({x = posx, y = posz})
|
||||
|
||||
-- below 35 heat biome considered to be frozen type
|
||||
return noise_temp < 35
|
||||
end
|
||||
|
||||
hw_utils.is_biome_dry = function(position)
|
||||
local posx = math.floor(position.x)
|
||||
local posz = math.floor(position.z)
|
||||
local noise_obj = minetest.get_perlin(np_humid)
|
||||
local noise_humid = noise_obj:get2d({x = posx, y = posz})
|
||||
|
||||
-- below 50 humid biome considered to be dry type (at least by this mod)
|
||||
return noise_humid < 50
|
||||
end
|
||||
|
||||
hw_utils.is_biome_tropic = function(position)
|
||||
local posx = math.floor(position.x)
|
||||
local posz = math.floor(position.z)
|
||||
local noise_obj = minetest.get_perlin(np_humid)
|
||||
local noise_humid = noise_obj:get2d({x = posx, y = posz})
|
||||
noise_obj = minetest.get_perlin(np_temp)
|
||||
local noise_temp = noise_obj:get2d({x = posx, y = posz})
|
||||
|
||||
-- humid and temp values are taked by testing flying around world (not sure actually)
|
||||
return noise_humid > 55 and noise_temp > 80
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user