start getting some MCL equivalents set up

This commit is contained in:
FaceDeer 2022-08-02 04:09:18 -06:00
parent 8f713d6fa4
commit c5fd4917b4
5 changed files with 131 additions and 104 deletions

View File

@ -115,7 +115,7 @@ end)
minetest.register_ore({
ore_type = "scatter",
ore = "mine_gas:gas_seep",
wherein = "default:stone",
wherein = df_caverns.node_name.stone,
clust_scarcity = 32 * 32 * 32,
clust_num_ores = 27,
clust_size = 6,

View File

@ -1,5 +1,33 @@
local S = minetest.get_translator(minetest.get_current_modname())
local mods_required = {}
local select_required = function(def)
local count = 0
local total = 0
local ret
for mod, item in pairs(def) do
total = total + 1
mods_required[mod] = true
if minetest.get_modpath(mod) then
count = count + 1
ret = item
end
end
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(total == 2, "number of options other than two for " .. dump(def))
return ret
end
local select_optional = function(def)
for mod, item in pairs(def) do
if minetest.get_modpath(mod) then
return item
end
end
end
--- From "default"
if minetest.get_modpath("default") then
df_dependencies.sound_dirt = default.node_sound_dirt_defaults
@ -10,66 +38,82 @@ if minetest.get_modpath("default") then
df_dependencies.sound_stone = default.node_sound_stone_defaults
df_dependencies.sound_water = default.node_sound_water_defaults
df_dependencies.sound_wood = default.node_sound_wood_defaults
df_dependencies.soundfile_grass_footstep = "default_grass_footstep"
df_dependencies.soundfile_snow_footstep = "default_snow_footstep"
df_dependencies.soundfile_gravel_footstep = "default_gravel_footstep"
df_dependencies.node_name_apple = "default:apple"
df_dependencies.node_name_chest = "default:chest"
df_dependencies.node_name_coalblock = "default:coalblock"
df_dependencies.node_name_cobble = "default:cobble"
df_dependencies.node_name_coral_skeleton = "default:coral_skeleton"
df_dependencies.node_name_desert_sand = "default:desert_sand"
df_dependencies.node_name_dirt = "default:dirt"
df_dependencies.node_name_dry_grass_3 = "default:dry_grass_3"
df_dependencies.node_name_dry_grass_4 = "default:dry_grass_4"
df_dependencies.node_name_dry_shrub = "default:dry_shrub"
df_dependencies.node_name_furnace = "default:furnace"
df_dependencies.node_name_gold_ingot = "default:gold_ingot"
df_dependencies.node_name_gravel = "default:gravel"
df_dependencies.node_name_ice = "default:ice"
df_dependencies.node_name_junglewood = "default:junglewood"
df_dependencies.node_name_lava_source = "default:lava_source"
df_dependencies.node_name_mese_crystal = "default:mese_crystal"
df_dependencies.node_name_meselamp = "default:meselamp"
df_dependencies.node_name_mossycobble = "default:mossycobble"
df_dependencies.node_name_obsidian = "default:obsidian"
df_dependencies.node_name_paper = "default:paper"
df_dependencies.node_name_river_water_flowing = "default:river_water_flowing"
df_dependencies.node_name_river_water_source = "default:river_water_source"
df_dependencies.node_name_sand = "default:sand"
df_dependencies.node_name_sand = "default:sand"
df_dependencies.node_name_silver_sand = "default:silver_sand"
df_dependencies.node_name_snow = "default:snow"
df_dependencies.node_name_stone = "default:stone"
df_dependencies.node_name_stone_with_coal = "default:stone_with_coal"
df_dependencies.node_name_stone_with_mese = "default:stone_with_mese"
df_dependencies.node_name_torch = "default:torch"
df_dependencies.node_name_torch_wall = "default:torch_wall"
df_dependencies.node_name_water_flowing = "default:water_flowing"
df_dependencies.node_name_water_source = "default:water_source"
df_dependencies.texture_cobble = "default_cobble.png"
df_dependencies.texture_coral_skeleton = "default_coral_skeleton.png"
df_dependencies.texture_dirt = "default_dirt.png"
df_dependencies.texture_gold_block = "default_gold_block.png"
df_dependencies.texture_ice = "default_ice.png"
df_dependencies.texture_sand = "default_sand.png"
df_dependencies.texture_stone = "default_stone.png"
df_dependencies.texture_wood = "default_wood.png"
-- used to determine colour of spindlestem caps
df_dependencies.data_iron_containing_nodes = {"default:stone_with_iron", "default:steelblock"}
df_dependencies.data_copper_containing_nodes = {"default:stone_with_copper", "default:copperblock"}
df_dependencies.data_mese_containing_nodes = {"default:stone_with_mese", "default:mese"}
df_dependencies.register_leafdecay = default.register_leafdecay
df_dependencies.after_place_leaves = default.after_place_leaves
df_dependencies.LIGHT_MAX = default.LIGHT_MAX
elseif minetest.get_modpath("mcl_sounds") then
df_dependencies.sound_dirt = mcl_sounds.node_sound_dirt_defaults
df_dependencies.sound_glass = mcl_sounds.node_sound_glass_defaults
df_dependencies.sound_gravel = function(table)
table = table or {}
table.footstep = table.footstep or {name="default_gravel_footstep", gain=0.45}
return mcl_sounds.node_sound_dirt_defaults(table)
end
df_dependencies.sound_leaves = mcl_sounds.node_sound_leaves_defaults
df_dependencies.sound_sand = mcl_sounds.node_sound_sand_defaults
df_dependencies.sound_stone = mcl_sounds.node_sound_stone_defaults
df_dependencies.sound_water = mcl_sounds.node_sound_water_defaults
df_dependencies.sound_wood = mcl_sounds.node_sound_wood_defaults
else
assert(false, "One of [default] or [mcl_sounds] must be active")
end
df_dependencies.soundfile_grass_footstep = select_required({default="default_grass_footstep", mcl_sounds="default_grass_footstep"})
df_dependencies.soundfile_snow_footstep = select_required({default="default_snow_footstep", mcl_sounds="pedology_snow_soft_footstep"})
df_dependencies.soundfile_gravel_footstep = select_required({default="default_gravel_footstep", mcl_sounds="default_gravel_footstep"})
df_dependencies.node_name_apple = select_required({default="default:apple", mcl_core="mcl_core:apple"})
df_dependencies.node_name_chest = select_required({default="default:chest", mcl_chests="mcl_chests:chest"})
df_dependencies.node_name_coalblock = select_required({default="default:coalblock", mcl_core="mcl_core:coalblock"})
df_dependencies.node_name_cobble = select_required({default="default:cobble", mcl_core="mcl_core:cobble"})
df_dependencies.node_name_coral_skeleton = select_required({default="default:coral_skeleton", mcl_ocean="mcl_ocean:dead_horn_coral_block"})
df_dependencies.node_name_desert_sand = select_required({default="default:desert_sand", mcl_core="mcl_core:redsand"})
df_dependencies.node_name_dirt = select_required({default="default:dirt", mcl_core="mcl_core:dirt"})
df_dependencies.node_name_dry_grass_3 = select_required({default="default:dry_grass_3", mcl_core="mcl_core:deadbush"}) -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_dry_grass_4 = select_required({default="default:dry_grass_4", mcl_core="mcl_core:deadbush"}) -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_dry_shrub = select_required({default="default:dry_shrub", mcl_core="mcl_core:deadbush"})
df_dependencies.node_name_furnace = select_required({default="default:furnace", mcl_furnaces="mcl_furnaces:furnace"})
df_dependencies.node_name_gold_ingot = select_required({default="default:gold_ingot", mcl_core="mcl_core:gold_ingot"})
df_dependencies.node_name_gravel = select_required({default="default:gravel", mcl_core="mcl_core:gravel"})
df_dependencies.node_name_ice = select_required({default="default:ice", mcl_core="mcl_core:ice"})
df_dependencies.node_name_junglewood = select_required({default="default:junglewood", mcl_core="mcl_core:junglewood"})
df_dependencies.node_name_lava_source = select_required({default="default:lava_source", mcl_core="mcl_core:lava_source"})
df_dependencies.node_name_mese_crystal = select_required({default="default:mese_crystal", mesecons="mesecons:redstone"}) -- TODO make sure this is properly balanced. Also, mesecons mod conflict with non-mcl mesecons?
df_dependencies.node_name_meselamp = select_required({default="default:meselamp", })
df_dependencies.node_name_mossycobble = select_required({default="default:mossycobble", mcl_core="mcl_core:mossycobble"})
df_dependencies.node_name_obsidian = select_required({default="default:obsidian", mcl_core="mcl_core:obsidian"})
df_dependencies.node_name_paper = select_required({default="default:paper", mcl_core="mcl_core:paper"})
df_dependencies.node_name_river_water_flowing = select_required({default="default:river_water_flowing", mclx_core="mclx_core:river_water_flowing"})
df_dependencies.node_name_river_water_source = select_required({default="default:river_water_source", mclx_core="mclx_core:river_water_source"})
df_dependencies.node_name_sand = select_required({default="default:sand", mcl_core="mcl_core:sand"})
df_dependencies.node_name_silver_sand = select_required({default="default:silver_sand", mcl_core="mcl_core:sand"}) -- There doesn't seem to be an MCL equivalent of this
df_dependencies.node_name_snow = select_required({default="default:snow", mcl_core="mcl_core:snow"})
df_dependencies.node_name_stone = select_required({default="default:stone", mcl_core="mcl_core:stone"})
df_dependencies.node_name_stone_with_coal = select_required({default="default:stone_with_coal", mcl_core="mcl_core:stone_with_coal"})
df_dependencies.node_name_stone_with_mese = select_required({default="default:stone_with_mese", })
df_dependencies.node_name_torch = select_required({default="default:torch", mcl_torches="mcl_torches:torch"})
df_dependencies.node_name_torch_wall = select_required({default="default:torch_wall", mcl_torches="mcl_torches:torch_wall"})
df_dependencies.node_name_water_flowing = select_required({default="default:water_flowing", mcl_core="mcl_core:water_flowing"})
df_dependencies.node_name_water_source = select_required({default="default:water_source", mcl_core="mcl_core:water_source"})
df_dependencies.texture_cobble = select_required({default="default_cobble.png", mcl_core="default_cobble.png"})
df_dependencies.texture_coral_skeleton = select_required({default="default_coral_skeleton.png", mcl_ocean="mcl_ocean_dead_horn_coral_block.png"})
df_dependencies.texture_dirt = select_required({default="default_dirt.png", mcl_core="default_dirt.png"})
df_dependencies.texture_gold_block = select_required({default="default_gold_block.png", mcl_core="default_gold_block.png"})
df_dependencies.texture_ice = select_required({default="default_ice.png", mcl_core="default_ice.png"})
df_dependencies.texture_sand = select_required({default="default_sand.png", mcl_core="default_sand.png"})
df_dependencies.texture_stone = select_required({default="default_stone.png", mcl_core="default_stone.png"})
df_dependencies.texture_wood = select_required({default="default_wood.png", mcl_core="default_wood.png"})
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
-- used to determine colour of spindlestem caps
df_dependencies.data_iron_containing_nodes = {"default:stone_with_iron", "default:steelblock"}
df_dependencies.data_copper_containing_nodes = {"default:stone_with_copper", "default:copperblock"}
df_dependencies.data_mese_containing_nodes = {"default:stone_with_mese", "default:mese"}
df_dependencies.register_leafdecay = default.register_leafdecay
df_dependencies.after_place_leaves = default.after_place_leaves
df_dependencies.LIGHT_MAX = default.LIGHT_MAX
-- Note that a circular table reference will result in a crash, TODO: guard against that.
-- Unlikely to be needed, though - it'd take a lot of work for users to get into this bit of trouble.
local function deep_copy(table_in)
@ -202,17 +246,12 @@ if minetest.get_modpath("farming") then
end
-- from "bucket"
if minetest.get_modpath("bucket") then
df_dependencies.node_name_bucket_empty = "bucket:bucket_empty"
df_dependencies.bucket_register_liquid = bucket.register_liquid
end
df_dependencies.node_name_bucket_empty = select_required({bucket="bucket:bucket_empty", mcl_buckets="mcl_buckets:bucket_empty"})
df_dependencies.bucket_register_liquid = bucket.register_liquid
-- from "wool"
if minetest.get_modpath("wool") then
df_dependencies.node_name_wool_white = "wool:white"
end
df_dependencies.node_name_wool_white = select_required({wool="wool:white", mcl_wool="mcl_wool:white"})
-- from "fireflies"
if minetest.get_modpath("fireflies") then
@ -221,11 +260,16 @@ end
-- from "vessels"
if minetest.get_modpath("vessels") then
df_dependencies.node_name_glass_bottle = "vessels:glass_bottle"
end
df_dependencies.node_name_glass_bottle = select_required({vessels="vessels:glass_bottle", mcl_potions="mcl_potions:glass_bottle"})
df_dependencies.node_name_shelf = select_required({vessels="vessels:shelf", })
df_dependencies.texture_glass_bottle = select_required({vessels="vessels_glass_bottle.png", mcl_potions="mcl_potions_potion_bottle.png"})
if minetest.get_modpath("beds") then
df_dependencies.node_name_bed_bottom = "beds:bed_bottom"
df_dependencies.node_name_bed_top = "beds:bed_top"
end
-- from "beds"
df_dependencies.node_name_bed_bottom = select_required({beds="beds:bed_bottom", mcl_beds="mcl_beds:bed_red_bottom"})
df_dependencies.node_name_bed_top = select_required({beds="beds:bed_top", mcl_beds="mcl_beds:bed_red_top"})
-- from "doors"
df_dependencies.node_name_door_wood_a = select_required({doors="doors:door_wood_a", mcl_doors="mcl_doors:wooden_door"})
df_dependencies.node_name_door_hidden = select_required({doors="doors:hidden"})
minetest.debug(dump(mods_required))

View File

@ -28,6 +28,9 @@ df_trees.node_names.torch = df_dependencies.node_name_torch
df_trees.node_names.torch_wall = df_dependencies.node_name_torch_wall
df_trees.node_names.water_flowing = df_dependencies.node_name_water_flowing
df_trees.node_names.water_source = df_dependencies.node_name_water_source
df_trees.node_names.door_wood_a = df_dependencies.node_name_door_wood_a
df_trees.node_names.door_hidden = df_dependencies.node_name_door_hidden
df_trees.node_names.shelf = df_dependencies.node_name_shelf
df_trees.textures = {}
df_trees.textures.gold_block = df_dependencies.texture_gold_block

View File

@ -4,14 +4,14 @@ local n3 = {name = "stairs:slab_goblin_cap_stem_wood", param2 = 2} -- porch top
local n4 = { name = "df_trees:goblin_cap_gills" }
local n6 = { name = "df_trees:goblin_cap_stem", force_place=true } -- walls
local n7 = { name = "df_trees:goblin_cap_stem_wood", force_place=true } -- internal floor
local n8 = { name = "doors:door_wood_a", force_place=true }
local n9 = { name = "doors:hidden", force_place=true }
local n8 = { name = df_trees.node_names.door_wood_a or "air", force_place=true }
local n9 = { name = df_trees.node_names.door_hidden or "air", force_place=true }
local n10 = { name = df_trees.node_names.furnace, param2 = 3, force_place=true }
local n11 = { name = "air", force_place=true } -- internal air
local n12 = { name = df_trees.node_names.bed_bottom, force_place=true }
local n12 = { name = df_trees.node_names.bed_bottom or "air", force_place=true }
local n13 = { name = "df_trees:goblin_cap_stem", prob = 198, force_place=true } -- possible window holes
local n16 = { name = df_trees.node_names.chest, param2 = 3, force_place=true }
local n17 = { name = df_trees.node_names.bed_top, force_place=true }
local n17 = { name = df_trees.node_names.bed_top or "air", force_place=true }
local n18 = { name = df_trees.node_names.torch_wall, param2 = 4, force_place=true }
local n19 = { name = "df_trees:goblin_cap_stem" } -- base
@ -23,16 +23,6 @@ if minetest.get_modpath("vessels") then
n18 = { name = "df_trees:glowing_bottle_red", force_place=true}
end
if not minetest.get_modpath("doors") then
-- replace the door with air
n8 = n11
n9 = n11
end
if not df_trees.node_names.bed_top then
--replace the bed with air
n12 = n11
n17 = n11
end
if not minetest.get_modpath("stairs") then
-- replace stairs with air
n3 = nil

View File

@ -9,34 +9,24 @@ local n8 = { name = df_trees.node_names.furnace, param2 = 2, force_place=true }
local n9 = { name = "air", force_place=true } -- internal air
local n10 = { name = df_trees.node_names.torch_wall, param2 = 3, force_place = true }
local n12 = {name = "stairs:slab_goblin_cap_stem_wood", param2 = 2} -- porch top
local n13 = { name = "doors:door_wood_a", param2 = 3, force_place = true }
local n14 = { name = "doors:hidden", param2 = 3, force_place = true }
local n13 = { name = df_trees.node_names.door_wood_a or "air", param2 = 3, force_place = true }
local n14 = { name = df_trees.node_names.door_hidden or "air", param2 = 3, force_place = true }
local n15 = n9 -- internal air, but could be a vessel shelf
local n16 = { name = df_trees.node_names.bed_top, param2 = 3, force_place = true }
local n17 = { name = df_trees.node_names.bed_bottom, param2 = 3, force_place = true }
local n16 = { name = df_trees.node_names.bed_top or "air", param2 = 3, force_place = true }
local n17 = { name = df_trees.node_names.bed_bottom or "air", param2 = 3, force_place = true }
local n18 = { name = df_trees.node_names.chest, force_place = true }
local n19 = { name = df_trees.node_names.torch_wall, param2 = 2, force_place = true }
local n20 = {name = "stairs:stair_goblin_cap_stem_wood" }
local n21 = {name = "stairs:stair_goblin_cap_stem_wood", param2 = 2 }
local n22 = {name = "stairs:slab_goblin_cap_stem_wood", param2 = 22}
if minetest.get_modpath("vessels") then
if df_trees.node_names.shelf then
-- replace torches with glowing bottles, add vessel shelf
n10 = { name = "df_trees:glowing_bottle_red", force_place=true}
n19 = n10
n15 = { name = "vessels:shelf", param2 = 3, force_place = true }
n15 = { name = df_trees.node_names.shelf, param2 = 3, force_place = true }
end
if not minetest.get_modpath("doors") then
-- replace the door with air
n13 = n9
n14 = n9
end
if not df_trees.node_names.bed_top then
--replace the bed with air
n16 = n9
n17 = n9
end
if not minetest.get_modpath("stairs") then
-- replace stairs with air
n12 = nil