mirror of
https://github.com/FaceDeer/dfcaverns.git
synced 2025-02-03 14:00:25 +01:00
split mapgen compatibility code into its own file
This commit is contained in:
parent
a1e837f9c0
commit
67bde482e1
@ -17,7 +17,6 @@ df_dependencies.select_required = function(def)
|
|||||||
end
|
end
|
||||||
assert(count ~= 0, "Unable to find item for dependency set " .. dump(def))
|
assert(count ~= 0, "Unable to find item for dependency set " .. dump(def))
|
||||||
assert(count == 1, "Found more than one item for dependency set " .. dump(def))
|
assert(count == 1, "Found more than one item for dependency set " .. dump(def))
|
||||||
--assert(total == 2, "number of options other than two for " .. dump(def))
|
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -36,6 +35,7 @@ dofile(modpath.."/nodes.lua")
|
|||||||
dofile(modpath.."/sounds.lua")
|
dofile(modpath.."/sounds.lua")
|
||||||
dofile(modpath.."/helper_functions.lua")
|
dofile(modpath.."/helper_functions.lua")
|
||||||
dofile(modpath.."/misc.lua")
|
dofile(modpath.."/misc.lua")
|
||||||
|
dofile(modpath.."/mapgen.lua")
|
||||||
|
|
||||||
local mods_required = ""
|
local mods_required = ""
|
||||||
local mods_sorted = {}
|
local mods_sorted = {}
|
||||||
|
88
df_dependencies/mapgen.lua
Normal file
88
df_dependencies/mapgen.lua
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
|
local prefix = "dfcaverns_"
|
||||||
|
-- NOTE: These defaults are from df_caverns' config. Update them if those change.
|
||||||
|
|
||||||
|
local lowest_elevation = tonumber(minetest.settings:get(prefix.."sunless_sea_min")) or -2512
|
||||||
|
if minetest.settings:get_bool(prefix.."enable_oil_sea", true) then
|
||||||
|
lowest_elevation = (tonumber(minetest.settings:get(prefix.."oil_sea_level")) or -2700)
|
||||||
|
end
|
||||||
|
if minetest.settings:get_bool(prefix.."enable_lava_sea", true) then
|
||||||
|
lowest_elevation = (tonumber(minetest.settings:get(prefix.."lava_sea_level")) or -2900)
|
||||||
|
end
|
||||||
|
if minetest.settings:get_bool(prefix.."enable_underworld", true) then
|
||||||
|
lowest_elevation = (tonumber(minetest.settings:get(prefix.."underworld_level")) or -3200)
|
||||||
|
end
|
||||||
|
if minetest.settings:get_bool(prefix.."enable_primordial", true) then
|
||||||
|
lowest_elevation = (tonumber(minetest.settings:get(prefix.."primordial_min")) or -4032)
|
||||||
|
end
|
||||||
|
lowest_elevation = lowest_elevation - 193 -- add a little buffer space
|
||||||
|
|
||||||
|
df_dependencies.mods_required.mcl_init = true
|
||||||
|
df_dependencies.mods_required.mcl_worlds = true
|
||||||
|
df_dependencies.mods_required.mcl_strongholds = true
|
||||||
|
df_dependencies.mods_required.mcl_compatibility = true
|
||||||
|
df_dependencies.mods_required.mcl_mapgen = true
|
||||||
|
|
||||||
|
local old_overworld_min
|
||||||
|
|
||||||
|
if minetest.get_modpath("mcl_init") then -- Mineclone 2
|
||||||
|
old_overworld_min = mcl_vars.mg_overworld_min -- remember this for weather control
|
||||||
|
|
||||||
|
mcl_vars.mg_overworld_min = lowest_elevation
|
||||||
|
mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min
|
||||||
|
mcl_vars.mg_lava_overworld_max = mcl_vars.mg_overworld_min + 10
|
||||||
|
mcl_vars.mg_end_max = mcl_vars.mg_overworld_min - 2000
|
||||||
|
|
||||||
|
-- Important note. This doesn't change the values for the various ores and mobs and biomes and whatnot that have already been registered.
|
||||||
|
-- to keep things consistent, add dependencies to
|
||||||
|
|
||||||
|
dofile(minetest.get_modpath(minetest.get_current_modname()).."/ores.lua")
|
||||||
|
|
||||||
|
-- never mind - add dependency on mcl_strongholds and these will get generated before overworld_min gets changed.
|
||||||
|
--if minetest.get_modpath("mcl_structures") and minetest.get_modpath("mcl_strongholds") then
|
||||||
|
-- local elevation_delta = old_overworld_min - lowest_elevation
|
||||||
|
-- local strongholds = mcl_structures.get_structure_data("stronghold")
|
||||||
|
-- mcl_structures.register_structure_data("stronghold", strongholds)
|
||||||
|
--end
|
||||||
|
end
|
||||||
|
if minetest.get_modpath("mcl_compatibility") then -- Mineclone 5
|
||||||
|
old_overworld_min = mcl_vars.mg_overworld_min -- remember this for weather control
|
||||||
|
|
||||||
|
mcl_vars.mg_overworld_min = lowest_elevation
|
||||||
|
mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min
|
||||||
|
mcl_vars.mg_bedrock_overworld_max = mcl_vars.mg_overworld_min+4
|
||||||
|
mcl_vars.mg_lava_overworld_max = mcl_vars.mg_overworld_min+6
|
||||||
|
mcl_vars.mg_lava = false
|
||||||
|
mcl_vars.mg_end_max = mcl_vars.mg_overworld_min - 2000
|
||||||
|
mcl_vars.mg_realm_barrier_overworld_end_max = mcl_vars.mg_end_max
|
||||||
|
mcl_vars.mg_realm_barrier_overworld_end_min = mcl_vars.mg_end_max-11
|
||||||
|
end
|
||||||
|
if minetest.get_modpath("mcl_mapgen") then -- Mineclone 5
|
||||||
|
old_overworld_min = mcl_mapgen.overworld.min -- remember this for weather control
|
||||||
|
|
||||||
|
mcl_mapgen.overworld.min = lowest_elevation
|
||||||
|
mcl_mapgen.overworld.bedrock_min = mcl_mapgen.overworld.min
|
||||||
|
mcl_mapgen.overworld.bedrock_max = mcl_mapgen.overworld.bedrock_min + (mcl_mapgen.bedrock_is_rough and 4 or 0)
|
||||||
|
mcl_mapgen.overworld.lava_max = mcl_mapgen.overworld.min+6
|
||||||
|
mcl_mapgen.overworld.railcorridors_height_min = -50
|
||||||
|
mcl_mapgen.overworld.railcorridors_height_max = -2
|
||||||
|
|
||||||
|
mcl_mapgen.end_.max = mcl_mapgen.overworld.min - 2000
|
||||||
|
mcl_mapgen.realm_barrier_overworld_end_max = mcl_mapgen.end_.max
|
||||||
|
mcl_mapgen.realm_barrier_overworld_end_min = mcl_mapgen.end_.max - 11
|
||||||
|
|
||||||
|
if mcl_mapgen.on_settings_changed then
|
||||||
|
mcl_mapgen.on_settings_changed()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if minetest.get_modpath("mcl_worlds") then
|
||||||
|
local old_has_weather = mcl_worlds.has_weather
|
||||||
|
mcl_worlds.has_weather = function(pos)
|
||||||
|
-- No weather in the deep caverns
|
||||||
|
if pos.y >= lowest_elevation and pos.y <= old_overworld_min then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return old_has_weather(pos)
|
||||||
|
end
|
||||||
|
end
|
@ -41,92 +41,3 @@ df_dependencies.texture_wood = select_required({default="default_wood.png", mcl_
|
|||||||
df_dependencies.texture_mineral_coal = select_required({default="default_mineral_coal.png", mcl_core="mcl_core_coal_ore.png"}) -- MCL's coal texture isn't transparent, but is only used with gas seeps and should work fine that way
|
df_dependencies.texture_mineral_coal = select_required({default="default_mineral_coal.png", mcl_core="mcl_core_coal_ore.png"}) -- MCL's coal texture isn't transparent, but is only used with gas seeps and should work fine that way
|
||||||
df_dependencies.texture_glass_bottle = select_required({vessels="vessels_glass_bottle.png", mcl_potions="mcl_potions_potion_bottle.png"})
|
df_dependencies.texture_glass_bottle = select_required({vessels="vessels_glass_bottle.png", mcl_potions="mcl_potions_potion_bottle.png"})
|
||||||
df_dependencies.texture_meselamp = "dfcaverns_glow_mese.png"
|
df_dependencies.texture_meselamp = "dfcaverns_glow_mese.png"
|
||||||
|
|
||||||
--------------------------------------- mapgen
|
|
||||||
|
|
||||||
local prefix = "dfcaverns_"
|
|
||||||
-- NOTE: These defaults are from df_caverns' config. Update them if those change.
|
|
||||||
|
|
||||||
local lowest_elevation = tonumber(minetest.settings:get(prefix.."sunless_sea_min")) or -2512
|
|
||||||
if minetest.settings:get_bool(prefix.."enable_oil_sea", true) then
|
|
||||||
lowest_elevation = (tonumber(minetest.settings:get(prefix.."oil_sea_level")) or -2700)
|
|
||||||
end
|
|
||||||
if minetest.settings:get_bool(prefix.."enable_lava_sea", true) then
|
|
||||||
lowest_elevation = (tonumber(minetest.settings:get(prefix.."lava_sea_level")) or -2900)
|
|
||||||
end
|
|
||||||
if minetest.settings:get_bool(prefix.."enable_underworld", true) then
|
|
||||||
lowest_elevation = (tonumber(minetest.settings:get(prefix.."underworld_level")) or -3200)
|
|
||||||
end
|
|
||||||
if minetest.settings:get_bool(prefix.."enable_primordial", true) then
|
|
||||||
lowest_elevation = (tonumber(minetest.settings:get(prefix.."primordial_min")) or -4032)
|
|
||||||
end
|
|
||||||
lowest_elevation = lowest_elevation - 193 -- add a little buffer space
|
|
||||||
|
|
||||||
df_dependencies.mods_required.mcl_init = true
|
|
||||||
df_dependencies.mods_required.mcl_worlds = true
|
|
||||||
df_dependencies.mods_required.mcl_strongholds = true
|
|
||||||
df_dependencies.mods_required.mcl_compatibility = true
|
|
||||||
df_dependencies.mods_required.mcl_mapgen = true
|
|
||||||
|
|
||||||
local old_overworld_min
|
|
||||||
|
|
||||||
if minetest.get_modpath("mcl_init") then -- Mineclone 2
|
|
||||||
old_overworld_min = mcl_vars.mg_overworld_min -- remember this for weather control
|
|
||||||
|
|
||||||
mcl_vars.mg_overworld_min = lowest_elevation
|
|
||||||
mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min
|
|
||||||
mcl_vars.mg_lava_overworld_max = mcl_vars.mg_overworld_min + 10
|
|
||||||
mcl_vars.mg_end_max = mcl_vars.mg_overworld_min - 2000
|
|
||||||
|
|
||||||
-- Important note. This doesn't change the values for the various ores and mobs and biomes and whatnot that have already been registered.
|
|
||||||
-- to keep things consistent, add dependencies to
|
|
||||||
|
|
||||||
dofile(minetest.get_modpath(minetest.get_current_modname()).."/ores.lua")
|
|
||||||
|
|
||||||
-- never mind - add dependency on mcl_strongholds and these will get generated before overworld_min gets changed.
|
|
||||||
--if minetest.get_modpath("mcl_structures") and minetest.get_modpath("mcl_strongholds") then
|
|
||||||
-- local elevation_delta = old_overworld_min - lowest_elevation
|
|
||||||
-- local strongholds = mcl_structures.get_structure_data("stronghold")
|
|
||||||
-- mcl_structures.register_structure_data("stronghold", strongholds)
|
|
||||||
--end
|
|
||||||
end
|
|
||||||
if minetest.get_modpath("mcl_compatibility") then -- Mineclone 5
|
|
||||||
old_overworld_min = mcl_vars.mg_overworld_min -- remember this for weather control
|
|
||||||
|
|
||||||
mcl_vars.mg_overworld_min = lowest_elevation
|
|
||||||
mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min
|
|
||||||
mcl_vars.mg_bedrock_overworld_max = mcl_vars.mg_overworld_min+4
|
|
||||||
mcl_vars.mg_lava_overworld_max = mcl_vars.mg_overworld_min+6
|
|
||||||
mcl_vars.mg_lava = false
|
|
||||||
mcl_vars.mg_end_max = mcl_vars.mg_overworld_min - 2000
|
|
||||||
mcl_vars.mg_realm_barrier_overworld_end_max = mcl_vars.mg_end_max
|
|
||||||
mcl_vars.mg_realm_barrier_overworld_end_min = mcl_vars.mg_end_max-11
|
|
||||||
end
|
|
||||||
if minetest.get_modpath("mcl_mapgen") then -- Mineclone 5
|
|
||||||
old_overworld_min = mcl_mapgen.overworld.min -- remember this for weather control
|
|
||||||
|
|
||||||
mcl_mapgen.overworld.min = lowest_elevation
|
|
||||||
mcl_mapgen.overworld.bedrock_min = mcl_mapgen.overworld.min
|
|
||||||
mcl_mapgen.overworld.bedrock_max = mcl_mapgen.overworld.bedrock_min + (mcl_mapgen.bedrock_is_rough and 4 or 0)
|
|
||||||
mcl_mapgen.overworld.lava_max = mcl_mapgen.overworld.min+6
|
|
||||||
mcl_mapgen.overworld.railcorridors_height_min = -50
|
|
||||||
mcl_mapgen.overworld.railcorridors_height_max = -2
|
|
||||||
|
|
||||||
mcl_mapgen.end_.max = mcl_mapgen.overworld.min - 2000
|
|
||||||
mcl_mapgen.realm_barrier_overworld_end_max = mcl_mapgen.end_.max
|
|
||||||
mcl_mapgen.realm_barrier_overworld_end_min = mcl_mapgen.end_.max - 11
|
|
||||||
|
|
||||||
if mcl_mapgen.on_settings_changed then
|
|
||||||
mcl_mapgen.on_settings_changed()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if minetest.get_modpath("mcl_worlds") then
|
|
||||||
local old_has_weather = mcl_worlds.has_weather
|
|
||||||
mcl_worlds.has_weather = function(pos)
|
|
||||||
-- No weather in the deep caverns
|
|
||||||
if pos.y >= lowest_elevation and pos.y <= old_overworld_min then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
return old_has_weather(pos)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
@ -7,6 +7,9 @@ local function select_required(...)
|
|||||||
end
|
end
|
||||||
local ret = df_dependencies.select_required(newdef)
|
local ret = df_dependencies.select_required(newdef)
|
||||||
minetest.after(0, function()
|
minetest.after(0, function()
|
||||||
|
-- "after" needs to be used here because some of these nodes actually get registered in DF Caverns itself
|
||||||
|
-- stair nodes, for example, depend on the stairs mod but get registered from here. Kind of weird but
|
||||||
|
-- one goes to war with the mods one has.
|
||||||
assert(minetest.registered_items[ret] ~= nil, "Node " .. ret .. " was returned by a selection call but is not registered.")
|
assert(minetest.registered_items[ret] ~= nil, "Node " .. ret .. " was returned by a selection call but is not registered.")
|
||||||
end)
|
end)
|
||||||
return ret
|
return ret
|
||||||
@ -42,7 +45,7 @@ df_dependencies.node_name_gravel = select_required("default:gravel", "mcl_core:g
|
|||||||
df_dependencies.node_name_ice = select_required("default:ice", "mcl_core:ice")
|
df_dependencies.node_name_ice = select_required("default:ice", "mcl_core:ice")
|
||||||
df_dependencies.node_name_junglewood = select_required("default:junglewood", "mcl_core:junglewood")
|
df_dependencies.node_name_junglewood = select_required("default:junglewood", "mcl_core:junglewood")
|
||||||
df_dependencies.node_name_lava_source = select_required("default:lava_source", "mcl_core:lava_source")
|
df_dependencies.node_name_lava_source = select_required("default:lava_source", "mcl_core:lava_source")
|
||||||
df_dependencies.node_name_mese_crystal = select_required("default:mese_crystal", "mesecons:redstone") -- TODO make sure this is properly balanced. Also, mesecons mod conflict with non-mcl mesecons?
|
df_dependencies.node_name_mese_crystal = select_required("default:mese_crystal", "mesecons:redstone")
|
||||||
df_dependencies.node_name_mossycobble = select_required("default:mossycobble", "mcl_core:mossycobble")
|
df_dependencies.node_name_mossycobble = select_required("default:mossycobble", "mcl_core:mossycobble")
|
||||||
df_dependencies.node_name_obsidian = select_required("default:obsidian", "mcl_core:obsidian")
|
df_dependencies.node_name_obsidian = select_required("default:obsidian", "mcl_core:obsidian")
|
||||||
df_dependencies.node_name_paper = select_required("default:paper", "mcl_core:paper")
|
df_dependencies.node_name_paper = select_required("default:paper", "mcl_core:paper")
|
||||||
|
Loading…
Reference in New Issue
Block a user