polishing
This commit is contained in:
parent
6577f54736
commit
e6fe5f2f48
|
@ -227,9 +227,15 @@ local function sort_decorations()
|
||||||
if not deco_id then
|
if not deco_id then
|
||||||
error("Failed to register decoration "..tostring(def.name).." - name not unique?")
|
error("Failed to register decoration "..tostring(def.name).." - name not unique?")
|
||||||
end
|
end
|
||||||
if def.gen_callback then
|
if def.name then
|
||||||
minetest.set_gen_notify({decoration = true}, {deco_id})
|
deco_id = minetest.get_decoration_id(def.name)
|
||||||
gennotify_map["decoration#" .. deco_id] = def
|
if not deco_id then
|
||||||
|
error("Failed to register decoration "..tostring(def.name).." - name not unique?")
|
||||||
|
end
|
||||||
|
if def.gen_callback then
|
||||||
|
minetest.set_gen_notify({decoration = true}, {deco_id})
|
||||||
|
gennotify_map["decoration#" .. deco_id] = def
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
pending_decorations = nil -- as we will not run again
|
pending_decorations = nil -- as we will not run again
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
local mod_mcl_structures = minetest.get_modpath("mcl_structures")
|
local mod_mcl_structures = minetest.get_modpath("mcl_structures")
|
||||||
local coral_min = vl_biomes.OCEAN_MIN
|
local coral_min = vl_biomes.OCEAN_MIN
|
||||||
local coral_max = -10
|
local coral_max = -10
|
||||||
local warm_oceans = vl_biomes.by_water_temp.warm
|
local warm_oceans = table.copy(vl_biomes.by_water_temp.warm)
|
||||||
|
for _, v in ipairs(vl_biomes.by_water_temp.lukewarm) do table.insert(warm_oceans, v) end
|
||||||
|
--minetest.log("action", "Warm oceans: "..dump(warm_oceans,""))
|
||||||
|
|
||||||
-- Coral Reefs
|
-- Coral Reefs
|
||||||
for _, c in ipairs({ "brain", "horn", "bubble", "tube", "fire" }) do
|
for _, c in ipairs({ "brain", "horn", "bubble", "tube", "fire" }) do
|
||||||
|
@ -27,6 +29,9 @@ for _, c in ipairs({ "brain", "horn", "bubble", "tube", "fire" }) do
|
||||||
schematic = mod_mcl_structures .. "/schematics/mcl_structures_coral_" .. c .. "_1.mts",
|
schematic = mod_mcl_structures .. "/schematics/mcl_structures_coral_" .. c .. "_1.mts",
|
||||||
rotation = "random",
|
rotation = "random",
|
||||||
flags = "all_floors,force_placement",
|
flags = "all_floors,force_placement",
|
||||||
|
spawn_by = "mcl_core:water_source",
|
||||||
|
check_offset = 1,
|
||||||
|
num_spawn_by = 12,
|
||||||
})
|
})
|
||||||
mcl_mapgen_core.register_decoration({
|
mcl_mapgen_core.register_decoration({
|
||||||
deco_type = "schematic",
|
deco_type = "schematic",
|
||||||
|
@ -39,6 +44,9 @@ for _, c in ipairs({ "brain", "horn", "bubble", "tube", "fire" }) do
|
||||||
schematic = mod_mcl_structures .. "/schematics/mcl_structures_coral_" .. c .. "_2.mts",
|
schematic = mod_mcl_structures .. "/schematics/mcl_structures_coral_" .. c .. "_2.mts",
|
||||||
rotation = "random",
|
rotation = "random",
|
||||||
flags = "all_floors,force_placement",
|
flags = "all_floors,force_placement",
|
||||||
|
spawn_by = "mcl_core:water_source",
|
||||||
|
check_offset = 1,
|
||||||
|
num_spawn_by = 12,
|
||||||
})
|
})
|
||||||
|
|
||||||
mcl_mapgen_core.register_decoration({
|
mcl_mapgen_core.register_decoration({
|
||||||
|
@ -52,20 +60,9 @@ for _, c in ipairs({ "brain", "horn", "bubble", "tube", "fire" }) do
|
||||||
biomes = warm_oceans,
|
biomes = warm_oceans,
|
||||||
flags = "force_placement, all_floors",
|
flags = "force_placement, all_floors",
|
||||||
height = 1,
|
height = 1,
|
||||||
height_max = 1,
|
spawn_by = "mcl_core:water_source",
|
||||||
})
|
check_offset = 1,
|
||||||
mcl_mapgen_core.register_decoration({
|
num_spawn_by = 12,
|
||||||
deco_type = "simple",
|
|
||||||
place_on = {"mcl_ocean:horn_coral_block"},
|
|
||||||
sidelen = 16,
|
|
||||||
fill_ratio = 7,
|
|
||||||
y_min = coral_min,
|
|
||||||
y_max = coral_max,
|
|
||||||
decoration = "mcl_ocean:" .. c .. "_coral_fan",
|
|
||||||
biomes = warm_oceans,
|
|
||||||
flags = "force_placement, all_floors",
|
|
||||||
height = 1,
|
|
||||||
height_max = 1,
|
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -161,5 +158,8 @@ mcl_mapgen_core.register_decoration({
|
||||||
schematic = mod_mcl_structures .. "/schematics/coral_cora.mts",
|
schematic = mod_mcl_structures .. "/schematics/coral_cora.mts",
|
||||||
rotation = "random",
|
rotation = "random",
|
||||||
flags = "all_floors,force_placement",
|
flags = "all_floors,force_placement",
|
||||||
|
spawn_by = "mcl_core:water_source",
|
||||||
|
check_offset = 1,
|
||||||
|
num_spawn_by = 12,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,72 @@
|
||||||
|
-- TODO: move to mcl_ocean?
|
||||||
|
local function register_kelp_decoration(offset, scale, biomes)
|
||||||
|
local surfaces = {"mcl_core:dirt", "mcl_core:sand", "mcl_core:gravel"}
|
||||||
|
local nodes = {"mcl_ocean:kelp_dirt", "mcl_ocean:kelp_sand", "mcl_ocean:kelp_gravel"}
|
||||||
|
for s = 1, #surfaces do
|
||||||
|
mcl_mapgen_core.register_decoration({
|
||||||
|
name = "Kelp on "..surfaces[s],
|
||||||
|
deco_type = "simple",
|
||||||
|
priority = 1500,
|
||||||
|
place_on = {surfaces[s]},
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = offset,
|
||||||
|
scale = scale,
|
||||||
|
spread = vector.new(100, 100, 100),
|
||||||
|
seed = 32,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.6,
|
||||||
|
},
|
||||||
|
biomes = biomes,
|
||||||
|
y_min = vl_biomes.DEEP_OCEAN_MIN,
|
||||||
|
y_max = -6,
|
||||||
|
decoration = nodes[s],
|
||||||
|
param2 = 16,
|
||||||
|
param2_max = 96, -- height * 16
|
||||||
|
place_offset_y = -1,
|
||||||
|
flags = "force_placement",
|
||||||
|
spawn_by = "mcl_core:water_source",
|
||||||
|
check_offset = 1,
|
||||||
|
num_spawn_by = 9,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- TODO: use temperature classes, also to control amount?
|
||||||
|
register_kelp_decoration(-0.5, 1, {
|
||||||
|
"ExtremeHillsM_ocean",
|
||||||
|
"ExtremeHills+_ocean",
|
||||||
|
"MegaTaiga_ocean",
|
||||||
|
"MegaSpruceTaiga_ocean",
|
||||||
|
"Plains_ocean",
|
||||||
|
"SunflowerPlains_ocean",
|
||||||
|
"Forest_ocean",
|
||||||
|
"FlowerForest_ocean",
|
||||||
|
"BirchForest_ocean",
|
||||||
|
"BirchForestM_ocean",
|
||||||
|
"RoofedForest_ocean",
|
||||||
|
"Swampland_ocean",
|
||||||
|
"Jungle_ocean",
|
||||||
|
"JungleM_ocean",
|
||||||
|
"JungleEdge_ocean",
|
||||||
|
"JungleEdgeM_ocean",
|
||||||
|
"MushroomIsland_ocean",
|
||||||
|
|
||||||
|
"ExtremeHillsM_deep_ocean",
|
||||||
|
"ExtremeHills+_deep_ocean",
|
||||||
|
"MegaTaiga_deep_ocean",
|
||||||
|
"MegaSpruceTaiga_deep_ocean",
|
||||||
|
"Plains_deep_ocean",
|
||||||
|
"SunflowerPlains_deep_ocean",
|
||||||
|
"Forest_deep_ocean",
|
||||||
|
"FlowerForest_deep_ocean",
|
||||||
|
"BirchForest_deep_ocean",
|
||||||
|
"BirchForestM_deep_ocean",
|
||||||
|
"RoofedForest_deep_ocean",
|
||||||
|
"Swampland_deep_ocean",
|
||||||
|
"Jungle_deep_ocean",
|
||||||
|
"JungleM_deep_ocean",
|
||||||
|
"JungleEdge_deep_ocean",
|
||||||
|
"JungleEdgeM_deep_ocean",
|
||||||
|
"MushroomIsland_deep_ocean",
|
||||||
|
})
|
|
@ -17,7 +17,7 @@ for _, biome in ipairs(vl_biomes.overworld_biomes) do
|
||||||
decoration = "mcl_core:reeds",
|
decoration = "mcl_core:reeds",
|
||||||
height = 1,
|
height = 1,
|
||||||
height_max = 3,
|
height_max = 3,
|
||||||
spawn_by = {"mcl_core:water_source", "mcl_core:river_water_source", "group:frosted_ice"},
|
spawn_by = {"mcl_core:water_source", "mclx_core:river_water_source", "group:frosted_ice"},
|
||||||
num_spawn_by = 1,
|
num_spawn_by = 1,
|
||||||
biomes = {biome},
|
biomes = {biome},
|
||||||
param2 = biome._mcl_foliage_palette_index
|
param2 = biome._mcl_foliage_palette_index
|
||||||
|
|
|
@ -27,6 +27,9 @@ local function register_seagrass_decoration(offset, scale, biomes)
|
||||||
param2_max = 3,
|
param2_max = 3,
|
||||||
place_offset_y = -1,
|
place_offset_y = -1,
|
||||||
flags = "force_placement",
|
flags = "force_placement",
|
||||||
|
spawn_by = "mcl_core:water_source",
|
||||||
|
check_offset = 1,
|
||||||
|
num_spawn_by = 9,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -104,71 +107,3 @@ register_seagrass_decoration(0, 0.5, {
|
||||||
"ColdTaiga_beach_water",
|
"ColdTaiga_beach_water",
|
||||||
"ExtremeHills_beach",
|
"ExtremeHills_beach",
|
||||||
})
|
})
|
||||||
|
|
||||||
local function register_kelp_decoration(offset, scale, biomes)
|
|
||||||
local surfaces = {"mcl_core:dirt", "mcl_core:sand", "mcl_core:gravel"}
|
|
||||||
local nodes = {"mcl_ocean:kelp_dirt", "mcl_ocean:kelp_sand", "mcl_ocean:kelp_gravel"}
|
|
||||||
for s = 1, #surfaces do
|
|
||||||
mcl_mapgen_core.register_decoration({
|
|
||||||
name = "Kelp on "..surfaces[s],
|
|
||||||
deco_type = "simple",
|
|
||||||
priority = 1500,
|
|
||||||
place_on = {surfaces[s]},
|
|
||||||
sidelen = 16,
|
|
||||||
noise_params = {
|
|
||||||
offset = offset,
|
|
||||||
scale = scale,
|
|
||||||
spread = vector.new(100, 100, 100),
|
|
||||||
seed = 32,
|
|
||||||
octaves = 3,
|
|
||||||
persist = 0.6,
|
|
||||||
},
|
|
||||||
biomes = biomes,
|
|
||||||
y_min = vl_biomes.DEEP_OCEAN_MIN,
|
|
||||||
y_max = -6,
|
|
||||||
decoration = nodes[s],
|
|
||||||
param2 = 16,
|
|
||||||
param2_max = 96, -- height * 16
|
|
||||||
place_offset_y = -1,
|
|
||||||
flags = "force_placement",
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
register_kelp_decoration(-0.5, 1, {
|
|
||||||
"ExtremeHillsM_ocean",
|
|
||||||
"ExtremeHills+_ocean",
|
|
||||||
"MegaTaiga_ocean",
|
|
||||||
"MegaSpruceTaiga_ocean",
|
|
||||||
"Plains_ocean",
|
|
||||||
"SunflowerPlains_ocean",
|
|
||||||
"Forest_ocean",
|
|
||||||
"FlowerForest_ocean",
|
|
||||||
"BirchForest_ocean",
|
|
||||||
"BirchForestM_ocean",
|
|
||||||
"RoofedForest_ocean",
|
|
||||||
"Swampland_ocean",
|
|
||||||
"Jungle_ocean",
|
|
||||||
"JungleM_ocean",
|
|
||||||
"JungleEdge_ocean",
|
|
||||||
"JungleEdgeM_ocean",
|
|
||||||
"MushroomIsland_ocean",
|
|
||||||
|
|
||||||
"ExtremeHillsM_deep_ocean",
|
|
||||||
"ExtremeHills+_deep_ocean",
|
|
||||||
"MegaTaiga_deep_ocean",
|
|
||||||
"MegaSpruceTaiga_deep_ocean",
|
|
||||||
"Plains_deep_ocean",
|
|
||||||
"SunflowerPlains_deep_ocean",
|
|
||||||
"Forest_deep_ocean",
|
|
||||||
"FlowerForest_deep_ocean",
|
|
||||||
"BirchForest_deep_ocean",
|
|
||||||
"BirchForestM_deep_ocean",
|
|
||||||
"RoofedForest_deep_ocean",
|
|
||||||
"Swampland_deep_ocean",
|
|
||||||
"Jungle_deep_ocean",
|
|
||||||
"JungleM_deep_ocean",
|
|
||||||
"JungleEdge_deep_ocean",
|
|
||||||
"JungleEdgeM_deep_ocean",
|
|
||||||
"MushroomIsland_deep_ocean",
|
|
||||||
})
|
|
|
@ -87,6 +87,7 @@ vl_biomes.register_biome = function(def)
|
||||||
if def._ocean then
|
if def._ocean then
|
||||||
local odef = def._ocean
|
local odef = def._ocean
|
||||||
if odef._mcl_skycolor == nil then odef._mcl_skycolor = vl_biomes.ocean_skycolor end
|
if odef._mcl_skycolor == nil then odef._mcl_skycolor = vl_biomes.ocean_skycolor end
|
||||||
|
if odef._mcl_water_temp == nil and def._mcl_water_temp then odef._mcl_water_temp = def._mcl_water_temp end
|
||||||
if odef._mcl_water_temp == nil or odef._mcl_water_temp == "default" then odef._mcl_water_temp = "ocean" end
|
if odef._mcl_water_temp == nil or odef._mcl_water_temp == "default" then odef._mcl_water_temp = "ocean" end
|
||||||
if odef._mcl_waterfogcolor == nil then odef._mcl_waterfogcolor = waterfogcolor[odef._mcl_water_temp] end
|
if odef._mcl_waterfogcolor == nil then odef._mcl_waterfogcolor = waterfogcolor[odef._mcl_water_temp] end
|
||||||
if odef.y_min == nil and not odef.min_pos then odef.y_min = vl_biomes.OCEAN_MIN end
|
if odef.y_min == nil and not odef.min_pos then odef.y_min = vl_biomes.OCEAN_MIN end
|
||||||
|
@ -146,7 +147,7 @@ vl_biomes.register_biome = function(def)
|
||||||
-- build a biome map based on water temperature
|
-- build a biome map based on water temperature
|
||||||
if k == "_ocean" and sdef._mcl_water_temp then
|
if k == "_ocean" and sdef._mcl_water_temp then
|
||||||
local temp = sdef._mcl_water_temp
|
local temp = sdef._mcl_water_temp
|
||||||
if not vl_biomes.by_water_temp[temp] then vl_biomes.by_water_temp[temp] = {} end
|
if vl_biomes.by_water_temp[temp] == nil then vl_biomes.by_water_temp[temp] = {} end
|
||||||
table.insert(vl_biomes.by_water_temp[temp], sdef.name)
|
table.insert(vl_biomes.by_water_temp[temp], sdef.name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -326,10 +327,11 @@ elseif mg_name ~= "v6" then
|
||||||
dofile(modpath.."/deco/corals.lua")
|
dofile(modpath.."/deco/corals.lua")
|
||||||
dofile(modpath.."/deco/fern.lua")
|
dofile(modpath.."/deco/fern.lua")
|
||||||
dofile(modpath.."/deco/flowers.lua")
|
dofile(modpath.."/deco/flowers.lua")
|
||||||
|
dofile(modpath.."/deco/kelp.lua")
|
||||||
dofile(modpath.."/deco/mushrooms.lua")
|
dofile(modpath.."/deco/mushrooms.lua")
|
||||||
dofile(modpath.."/deco/pumpkin.lua")
|
dofile(modpath.."/deco/pumpkin.lua")
|
||||||
dofile(modpath.."/deco/reeds.lua")
|
dofile(modpath.."/deco/reeds.lua")
|
||||||
dofile(modpath.."/deco/seagrass_kelp.lua")
|
dofile(modpath.."/deco/seagrass.lua")
|
||||||
dofile(modpath.."/deco/snowy_dirt.lua")
|
dofile(modpath.."/deco/snowy_dirt.lua")
|
||||||
dofile(modpath.."/deco/sweet_berry.lua")
|
dofile(modpath.."/deco/sweet_berry.lua")
|
||||||
dofile(modpath.."/deco/tallgrass.lua")
|
dofile(modpath.."/deco/tallgrass.lua")
|
||||||
|
|
Loading…
Reference in New Issue