forked from mtcontrib/minetest-mod-snow
Disable mapgen by default, minetest has snow biomes now.
This commit is contained in:
parent
ee3b12c07d
commit
7f394447f1
@ -33,3 +33,6 @@ mapgen_rarity (Snow Biome Rarity %) float 18
|
|||||||
|
|
||||||
#size of the generated… (has an effect to the rarity, too)
|
#size of the generated… (has an effect to the rarity, too)
|
||||||
mapgen_size (Snow Biome Size) float 210
|
mapgen_size (Snow Biome Size) float 210
|
||||||
|
|
||||||
|
#Minetest finally has capable snow biomes by default, lets not mess it up with the old snowgen.
|
||||||
|
disable_mapgen (Disable mod-generated biomes) bool true
|
||||||
|
103
src/mapgen.lua
103
src/mapgen.lua
@ -12,63 +12,66 @@ saplings grow into trees. --]]
|
|||||||
|
|
||||||
-- Part 1: To disable the mapgen, add the *starting* comment under this line.
|
-- Part 1: To disable the mapgen, add the *starting* comment under this line.
|
||||||
|
|
||||||
|
if not snow.disable_mapgen then
|
||||||
|
print("[snow] Mapgen enabled!")
|
||||||
|
|
||||||
|
snow.mapgen = snow.mapgen or {}
|
||||||
|
local mg = snow.mapgen
|
||||||
|
|
||||||
snow.mapgen = snow.mapgen or {}
|
-- perlin noise "hills" are not peaks but looking like sinus curve
|
||||||
local mg = snow.mapgen
|
local function upper_rarity(rarity)
|
||||||
|
return math.sign(rarity)*math.sin(math.abs(rarity)*math.pi/2)
|
||||||
-- perlin noise "hills" are not peaks but looking like sinus curve
|
|
||||||
local function upper_rarity(rarity)
|
|
||||||
return math.sign(rarity)*math.sin(math.abs(rarity)*math.pi/2)
|
|
||||||
end
|
|
||||||
|
|
||||||
local rarity = snow.mapgen_rarity
|
|
||||||
local size = snow.mapgen_size
|
|
||||||
local smooth = snow.smooth_biomes
|
|
||||||
|
|
||||||
local nosmooth_rarity, perlin_scale
|
|
||||||
local function calc_values()
|
|
||||||
nosmooth_rarity = 1-rarity/50
|
|
||||||
perlin_scale = size*100/rarity
|
|
||||||
mg.perlin_scale = perlin_scale
|
|
||||||
local smooth_rarity_max, smooth_rarity_min, smooth_rarity_dif
|
|
||||||
if smooth then
|
|
||||||
local smooth_trans_size = 4 --snow.smooth_trans_size
|
|
||||||
mg.smooth_rarity_max = upper_rarity(nosmooth_rarity+smooth_trans_size*2/perlin_scale)
|
|
||||||
mg.smooth_rarity_min = upper_rarity(nosmooth_rarity-smooth_trans_size/perlin_scale)
|
|
||||||
mg.smooth_rarity_dif = mg.smooth_rarity_max-mg.smooth_rarity_min
|
|
||||||
end
|
end
|
||||||
nosmooth_rarity = upper_rarity(nosmooth_rarity)
|
|
||||||
mg.nosmooth_rarity = nosmooth_rarity
|
|
||||||
end
|
|
||||||
calc_values()
|
|
||||||
|
|
||||||
snow.register_on_configuring(function(name, v)
|
local rarity = snow.mapgen_rarity
|
||||||
if name == "mapgen_rarity" then
|
local size = snow.mapgen_size
|
||||||
rarity = v
|
local smooth = snow.smooth_biomes
|
||||||
elseif name == "mapgen_size" then
|
|
||||||
size = v
|
local nosmooth_rarity, perlin_scale
|
||||||
elseif name == "smooth_biomes" then
|
local function calc_values()
|
||||||
smooth = v
|
nosmooth_rarity = 1-rarity/50
|
||||||
else
|
perlin_scale = size*100/rarity
|
||||||
return
|
mg.perlin_scale = perlin_scale
|
||||||
|
local smooth_rarity_max, smooth_rarity_min, smooth_rarity_dif
|
||||||
|
if smooth then
|
||||||
|
local smooth_trans_size = 4 --snow.smooth_trans_size
|
||||||
|
mg.smooth_rarity_max = upper_rarity(nosmooth_rarity+smooth_trans_size*2/perlin_scale)
|
||||||
|
mg.smooth_rarity_min = upper_rarity(nosmooth_rarity-smooth_trans_size/perlin_scale)
|
||||||
|
mg.smooth_rarity_dif = mg.smooth_rarity_max-mg.smooth_rarity_min
|
||||||
|
end
|
||||||
|
nosmooth_rarity = upper_rarity(nosmooth_rarity)
|
||||||
|
mg.nosmooth_rarity = nosmooth_rarity
|
||||||
end
|
end
|
||||||
-- TODO: if e.g. size and rarity get changed at once, don't calculate the values more times
|
|
||||||
calc_values()
|
calc_values()
|
||||||
end)
|
|
||||||
|
snow.register_on_configuring(function(name, v)
|
||||||
|
if name == "mapgen_rarity" then
|
||||||
|
rarity = v
|
||||||
|
elseif name == "mapgen_size" then
|
||||||
|
size = v
|
||||||
|
elseif name == "smooth_biomes" then
|
||||||
|
smooth = v
|
||||||
|
else
|
||||||
|
return
|
||||||
|
end
|
||||||
|
-- TODO: if e.g. size and rarity get changed at once, don't calculate the values more times
|
||||||
|
calc_values()
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
--Identify the mapgen.
|
--Identify the mapgen.
|
||||||
local mgname = minetest.get_mapgen_setting"mg_name"
|
local mgname = minetest.get_mapgen_setting"mg_name"
|
||||||
if not mgname then
|
if not mgname then
|
||||||
minetest.log("error", "[MOD] Snow Biomes: WARNING! mapgen could not be identifyed!")
|
minetest.log("error", "[MOD] Snow Biomes: WARNING! mapgen could not be identifyed!")
|
||||||
end
|
end
|
||||||
local path = minetest.get_modpath"snow"
|
local path = minetest.get_modpath"snow"
|
||||||
if mgname == "v7" then
|
if mgname == "v7" then
|
||||||
--Load mapgen_v7 compatibility.
|
--Load mapgen_v7 compatibility.
|
||||||
dofile(path.."/src/mapgen_v7.lua")
|
dofile(path.."/src/mapgen_v7.lua")
|
||||||
else
|
else
|
||||||
--Load mapgen_v6 compatibility.
|
--Load mapgen_v6 compatibility.
|
||||||
dofile(path.."/src/mapgen_v6.lua")
|
dofile(path.."/src/mapgen_v6.lua")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- To complete the commenting-out add the *closing* comment under this line.
|
-- To complete the commenting-out add the *closing* comment under this line.
|
||||||
|
@ -142,10 +142,10 @@ local function define_contents()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local smooth = snow.smooth_biomes
|
local smooth = snow.smooth_biomes
|
||||||
local smooth_rarity_max = mg.smooth_rarity_max
|
local smooth_rarity_max = mg.smooth_rarity_max or 0
|
||||||
local smooth_rarity_min = mg.smooth_rarity_min
|
local smooth_rarity_min = mg.smooth_rarity_min or 0
|
||||||
local smooth_rarity_dif = mg.smooth_rarity_dif
|
local smooth_rarity_dif = mg.smooth_rarity_dif or 0
|
||||||
local nosmooth_rarity = mg.nosmooth_rarity
|
local nosmooth_rarity = mg.nosmooth_rarity or 0
|
||||||
|
|
||||||
snow.register_on_configuring(function(name, v)
|
snow.register_on_configuring(function(name, v)
|
||||||
if name == "debug" then
|
if name == "debug" then
|
||||||
@ -235,7 +235,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||||||
for z = z0, z1 do
|
for z = z0, z1 do
|
||||||
for x = x0, x1 do
|
for x = x0, x1 do
|
||||||
local in_biome = false
|
local in_biome = false
|
||||||
local test
|
local test = 0
|
||||||
if nvals_default[ni] < 0.35 then
|
if nvals_default[ni] < 0.35 then
|
||||||
nvals_cold = nvals_cold or perlin_objs.cold:get2dMap_flat({x=x0, y=z0}, nbuf_cold)
|
nvals_cold = nvals_cold or perlin_objs.cold:get2dMap_flat({x=x0, y=z0}, nbuf_cold)
|
||||||
test = math.min(nvals_cold[ni], 1)
|
test = math.min(nvals_cold[ni], 1)
|
||||||
|
@ -12,6 +12,7 @@ snow = {
|
|||||||
min_height = tonumber(minetest.settings:get("min_height")) or 3,
|
min_height = tonumber(minetest.settings:get("min_height")) or 3,
|
||||||
mapgen_rarity = tonumber(minetest.settings:get("mapgen_rarity")) or 18,
|
mapgen_rarity = tonumber(minetest.settings:get("mapgen_rarity")) or 18,
|
||||||
mapgen_size = tonumber(minetest.settings:get("mapgen_size")) or 210,
|
mapgen_size = tonumber(minetest.settings:get("mapgen_size")) or 210,
|
||||||
|
disable_mapgen = minetest.settings:get_bool("disable_mapgen"),
|
||||||
}
|
}
|
||||||
|
|
||||||
-- functions for dynamically changing settings
|
-- functions for dynamically changing settings
|
||||||
|
Loading…
Reference in New Issue
Block a user