forked from mtcontrib/watershed
No luxore abm. Terblen exponent returns. Bugfix: enable xlscale. Grass, flowers return to forest, grassland
This commit is contained in:
parent
b804a06c64
commit
cc4e445d5b
|
@ -230,7 +230,8 @@ if SINGLENODE then
|
|||
local BASAMP = 0.3 -- Base terrain amplitude
|
||||
local MIDAMP = 0.1 -- Mid terrain amplitude
|
||||
local CANAMP = 0.4 -- Canyon terrain maximum amplitude
|
||||
local ATANAMP = 1
|
||||
local ATANAMP = 1.1
|
||||
local BLENEXP = 2
|
||||
local xsp
|
||||
local ysp
|
||||
local zsp
|
||||
|
@ -294,13 +295,16 @@ if SINGLENODE then
|
|||
local n_absmid = math.abs(nvals_mid[nixz])
|
||||
local n_absbase = math.abs(nvals_base[nixz])
|
||||
local n_xlscale = nvals_xlscale[nixz]
|
||||
|
||||
local n_invbase = (1 - n_absbase)
|
||||
local terblen = (math.max(n_invbase, 0)) ^ BLENEXP
|
||||
local grad = math.atan((TERCEN - y) / TERSCA) * ATANAMP
|
||||
local densitybase = n_invbase * BASAMP + grad + 0.1
|
||||
local densitybase = n_invbase * BASAMP + n_xlscale * XLSAMP + grad
|
||||
local densitymid = n_absmid * MIDAMP + densitybase
|
||||
local canexp = 0.2 + n_invbase * 0.8
|
||||
local canamp = n_invbase * CANAMP
|
||||
local canexp = 0.5 + terblen * 0.5
|
||||
local canamp = terblen * CANAMP
|
||||
local density = n_absterrain ^ canexp * canamp * n_absmid + densitymid
|
||||
|
||||
if y >= 1 and density > -0.01 and density < 0 then
|
||||
ysp = y + 1
|
||||
xsp = x
|
||||
|
@ -340,19 +344,7 @@ end
|
|||
|
||||
-- ABM
|
||||
|
||||
-- update luxore light
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"watershed:luxoreoff"},
|
||||
interval = 13,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
minetest.remove_node(pos)
|
||||
minetest.place_node(pos, {name="watershed:luxoreon"})
|
||||
end,
|
||||
})
|
||||
|
||||
-- Lava water cooling
|
||||
-- Lava-water cooling
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"group:lava"},
|
||||
|
|
52
init.lua
52
init.lua
|
@ -4,8 +4,10 @@
|
|||
-- License: code WTFPL, textures CC BY-SA
|
||||
-- Red cobble texture CC BY-SA by brunob.santos
|
||||
|
||||
-- ore/strata vertical scale of 512
|
||||
-- tune params via riverdev
|
||||
-- no luxore abm
|
||||
-- terblen exponent returns
|
||||
-- enable xlscale
|
||||
-- grass, flowers return to forest, grassland
|
||||
|
||||
-- Parameters
|
||||
|
||||
|
@ -23,13 +25,14 @@ local XLSAMP = 0.1 -- Extra large scale height variation amplitude
|
|||
local BASAMP = 0.3 -- Base terrain amplitude
|
||||
local MIDAMP = 0.1 -- Mid terrain amplitude
|
||||
local CANAMP = 0.4 -- Canyon terrain maximum amplitude
|
||||
local ATANAMP = 1 -- Arctan function amplitude, smaller = more and larger floatlands above ridges
|
||||
local ATANAMP = 1.1 -- Arctan function amplitude, smaller = more and larger floatlands above ridges
|
||||
local BLENEXP = 2 -- Terrain blend exponent
|
||||
|
||||
local TSTONE = 0.02 -- Density threshold for stone, depth of soil at TERCEN
|
||||
local TRIVER = -0.028
|
||||
local TRSAND = -0.035
|
||||
local TSTREAM = -0.004
|
||||
local TSSAND = -0.005
|
||||
local TRIVER = -0.028 -- Densitybase threshold for river surface
|
||||
local TRSAND = -0.035 -- Densitybase threshold for river sand
|
||||
local TSTREAM = -0.004 -- Densitymid threshold for stream surface
|
||||
local TSSAND = -0.005 -- Densitymid threshold for stream sand
|
||||
local TLAVA = 2.3 -- Maximum densitybase threshold for lava, small because grad is non-linear
|
||||
local TFIS = 0.01 -- Fissure threshold, controls width
|
||||
local TSEAM = 0.1 -- Seam threshold, width of seams
|
||||
|
@ -48,16 +51,16 @@ local BLEND = 0.02 -- Biome blend randomness
|
|||
|
||||
local PINCHA = 36 -- Pine tree 1/x chance per node
|
||||
local APTCHA = 36 -- Appletree
|
||||
local FLOCHA = 121 -- Flower
|
||||
local GRACHA = 25 -- Grassland grasses
|
||||
local FLOCHA = 289 -- Flower
|
||||
local GRACHA = 36 -- Grassland grasses
|
||||
local JUTCHA = 16 -- Jungletree
|
||||
local JUGCHA = 16 -- Junglegrass
|
||||
local CACCHA = 841 -- Cactus
|
||||
local DRYCHA = 169 -- Dry shrub
|
||||
local DRYCHA = 121 -- Dry shrub
|
||||
local ACACHA = 841 -- Acacia tree
|
||||
local GOGCHA = 16 -- Golden grass
|
||||
local PAPCHA = 4 -- Papyrus
|
||||
local DUGCHA = 25 -- Dune grass
|
||||
local DUGCHA = 16 -- Dune grass
|
||||
|
||||
-- 3D noise for terrain
|
||||
|
||||
|
@ -236,7 +239,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||
local c_wslava = minetest.get_content_id("watershed:lava")
|
||||
local c_wsfreshice = minetest.get_content_id("watershed:freshice")
|
||||
local c_wscloud = minetest.get_content_id("watershed:cloud")
|
||||
local c_wsluxoreoff = minetest.get_content_id("watershed:luxoreoff")
|
||||
local c_wsluxore = minetest.get_content_id("watershed:luxore")
|
||||
local c_wsicydirt = minetest.get_content_id("watershed:icydirt")
|
||||
-- perlinmap stuff
|
||||
local sidelen = x1 - x0 + 1 -- chunk sidelength
|
||||
|
@ -285,14 +288,14 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||
local n_magma = nvals_magma[nixz]
|
||||
-- get densities
|
||||
local n_invbase = (1 - n_absbase)
|
||||
local terblen = (math.max(n_invbase, 0)) ^ BLENEXP
|
||||
local grad = math.atan((TERCEN - y) / TERSCA) * ATANAMP
|
||||
local densitybase = n_invbase * BASAMP + grad + 0.1
|
||||
local densitybase = n_invbase * BASAMP + n_xlscale * XLSAMP + grad
|
||||
local densitymid = n_absmid * MIDAMP + densitybase
|
||||
local canexp = 0.2 + n_invbase * 0.8
|
||||
local canamp = n_invbase * CANAMP
|
||||
local canexp = 0.5 + terblen * 0.5
|
||||
local canamp = terblen * CANAMP
|
||||
local density = n_absterrain ^ canexp * canamp * n_absmid + densitymid
|
||||
-- other values
|
||||
local terblen = math.max(1 - n_absbase, 0) -- = 1 at ridge
|
||||
local triver = TRIVER * n_absbase -- river threshold
|
||||
local trsand = TRSAND * n_absbase -- river sand
|
||||
local tstream = TSTREAM * (1 - n_absmid) -- stream threshold
|
||||
|
@ -407,7 +410,7 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||
elseif densityper >= 0.55 and densityper <= 0.55 + ORETHI * 2 then
|
||||
data[vi] = c_gravel
|
||||
elseif densityper >= 0.1 and densityper <= 0.1 + ORETHI * 2 then
|
||||
data[vi] = c_wsluxoreoff
|
||||
data[vi] = c_wsluxore
|
||||
elseif densityper >= 0.2 and densityper <= 0.2 + ORETHI * 2
|
||||
and math.random(2) == 2 then
|
||||
data[vi] = c_stoiron
|
||||
|
@ -440,10 +443,10 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||
elseif y <= ysand then -- seabed/beach/dune sand not cut by fissures
|
||||
data[vi] = c_sand
|
||||
under[si] = 10 -- beach/dunes
|
||||
elseif densitybase >= trsand + math.random() * 0.003 then -- river sand
|
||||
elseif densitybase >= trsand + math.random() * 0.001 then -- river sand
|
||||
data[vi] = c_sand
|
||||
under[si] = 11 -- riverbank papyrus
|
||||
elseif densitymid >= tssand + math.random() * 0.003 then -- stream sand
|
||||
elseif densitymid >= tssand + math.random() * 0.001 then -- stream sand
|
||||
data[vi] = c_sand
|
||||
under[si] = 0
|
||||
elseif nofis then -- fine materials cut by fissures
|
||||
|
@ -516,6 +519,9 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||
local fnoise = n_fissure -- noise for flower colours
|
||||
if under[si] == 1 then
|
||||
data[viu] = c_wsicydirt
|
||||
if math.random(DRYCHA) == 2 then
|
||||
data[vi] = c_dryshrub
|
||||
end
|
||||
elseif under[si] == 2 then
|
||||
data[viu] = c_dirtsnow
|
||||
data[vi] = c_snowblock
|
||||
|
@ -528,8 +534,16 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
|||
end
|
||||
elseif under[si] == 4 then
|
||||
data[viu] = c_wsdrygrass
|
||||
if math.random(DRYCHA) == 2 then
|
||||
data[vi] = c_dryshrub
|
||||
end
|
||||
elseif under[si] == 5 then
|
||||
data[viu] = c_wsgrass
|
||||
if math.random(FLOCHA) == 2 then
|
||||
watershed_flower(data, vi, fnoise)
|
||||
elseif math.random(GRACHA) == 2 then
|
||||
data[vi] = c_grass5
|
||||
end
|
||||
elseif under[si] == 6 then
|
||||
if math.random(APTCHA) == 2 then
|
||||
watershed_appletree(x, y, z, area, data)
|
||||
|
|
14
nodes.lua
14
nodes.lua
|
@ -205,18 +205,8 @@ minetest.register_node("watershed:cloud", {
|
|||
post_effect_color = {a=23, r=241, g=248, b=255},
|
||||
})
|
||||
|
||||
minetest.register_node("watershed:luxoreoff", {
|
||||
description = "WS Lux Ore Off",
|
||||
tiles = {"watershed_luxore.png"},
|
||||
light_source = 14,
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3},
|
||||
drop = "watershed:luxcrystal 8",
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("watershed:luxoreon", {
|
||||
description = "WS Lux Ore On",
|
||||
minetest.register_node("watershed:luxore", {
|
||||
description = "WS Lux Ore",
|
||||
tiles = {"watershed_luxore.png"},
|
||||
light_source = 14,
|
||||
groups = {cracky=3},
|
||||
|
|
Loading…
Reference in New Issue
Block a user