stair dependencies

This commit is contained in:
FaceDeer
2022-08-06 19:54:14 -06:00
parent aec23c703d
commit 9f9389c9d5
24 changed files with 143 additions and 148 deletions

View File

@ -38,8 +38,10 @@ end
df_dependencies.mods_required.stairs = true
df_dependencies.mods_required.moreblocks = true
df_dependencies.mods_required.doors = true
df_dependencies.mods_required.mcl_stairs = true
df_dependencies.register_all_stairs = function(name, override_def)
local node_name_to_stair_properties = function(name, override)
local mod = minetest.get_current_modname()
local node_def = minetest.registered_nodes[mod..":"..name]
@ -49,7 +51,11 @@ df_dependencies.register_all_stairs = function(name, override_def)
for index, value in pairs(override_def) do
node_copy[index] = value
end
return mod, node_copy
end
df_dependencies.register_stairs = function(name, override_def)
local mod, node_copy = node_name_to_stair_properties(name, override_def)
if minetest.get_modpath("stairs") then
stairs.register_stair_and_slab(
name,
@ -61,25 +67,38 @@ df_dependencies.register_all_stairs = function(name, override_def)
node_copy.sounds
)
end
if minetest.get_modpath("mcl_stairs") then
mcl_stairs.register_stair_and_slab_simple(
name,
mod ..":" .. name,
S("@1 Stair", node_copy.description),
S("@1 Slab", node_copy.description),
S("Double @1 Slab", node_copy.description)
)
end
end
df_dependencies.register_more_stairs = function(name, override_def)
local mod, node_copy = node_name_to_stair_properties(name, override_def)
if minetest.get_modpath("moreblocks") then
stairsplus:register_all(mod, name, mod..":"..name, node_copy)
end
end
df_dependencies.register_all_fences = function (name, override_def)
local mod = minetest.get_current_modname()
local mod, node_def = node_name_to_stair_properties(name, override_def)
local material = mod..":"..name
local node_def = minetest.registered_nodes[material]
override_def = override_def or {}
local material = override_def.material or mod..":"..name
local burntime = override_def.burntime
local texture = override_def.texture or node_def.tiles[1]
if minetest.get_modpath("default") then
default.register_fence(material .. "_fence", {
description = S("@1 Fence", node_def.description),
texture = override_def.texture or node_def.tiles[1],
material = override_def.material or material,
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
@ -93,8 +112,8 @@ df_dependencies.register_all_fences = function (name, override_def)
default.register_fence_rail(material .. "_fence_rail", {
description = S("@1 Fence Rail", node_def.description),
texture = override_def.texture or node_def.tiles[1],
material = override_def.material or material,
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
@ -108,20 +127,18 @@ df_dependencies.register_all_fences = function (name, override_def)
default.register_mesepost(material .. "_mese_light", {
description = S("@1 Mese Post Light", node_def.description),
texture = override_def.texture or node_def.tiles[1],
material = override_def.material or material,
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
else
-- TODO
end
if minetest.get_modpath("doors") then
doors.register_fencegate(material .. "_fence_gate", {
description = S("@1 Fence Gate", node_def.description),
texture = override_def.texture or node_def.tiles[1],
material = override_def.material or material,
texture = texture,
material = material,
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
sounds = node_def.sounds
})
@ -133,8 +150,11 @@ df_dependencies.register_all_fences = function (name, override_def)
burntime = burntime * 2, -- ignoring four sticks
})
end
else
-- TODO
end
end
df_dependencies.register_all_stairs_and_fences = function(name, override_def)
df_dependencies.register_stairs(name, override_def)
df_dependencies.register_more_stairs(name, override_def)
df_dependencies.register_all_fences(name, override_def)
end

View File

@ -1,4 +1,4 @@
name = df_dependencies
description = A utility mod for df_caverns that gathers all dependencies on minetest_game in one place, to ease compatibility efforts with mineclone and other such games
depends =
optional_depends = beds, bucket, default, doors, farming, fireflies, mcl_beds, mcl_buckets, mcl_chests, mcl_compatibility, mcl_copper, mcl_core, mcl_doors, mcl_farming, mcl_furnaces, mcl_init, mcl_lanterns, mcl_mapgen, mcl_mobitems, mcl_ocean, mcl_potions, mcl_sounds, mcl_strongholds, mcl_torches, mcl_wool, mcl_worlds, mclx_core, mesecons, moreblocks, stairs, vessels, wool
optional_depends = beds, bucket, default, doors, farming, fireflies, mcl_beds, mcl_buckets, mcl_chests, mcl_compatibility, mcl_copper, mcl_core, mcl_doors, mcl_farming, mcl_furnaces, mcl_init, mcl_lanterns, mcl_mapgen, mcl_mobitems, mcl_ocean, mcl_potions, mcl_sounds, mcl_strongholds, mcl_torches, mcl_wool, mcl_worlds, mclx_core, mesecons, moreblocks, stairs, vessels, wool, mcl_stairs

View File

@ -6,7 +6,9 @@ local function select_required(...)
newdef[string.match(node, "(.-):")] = node
end
local ret = df_dependencies.select_required(newdef)
assert(minetest.registered_items[ret] ~= nil, "Node " .. ret .. " was returned by a selection call but is not registered.")
minetest.after(0, function()
assert(minetest.registered_items[ret] ~= nil, "Node " .. ret .. " was returned by a selection call but is not registered.")
end)
return ret
end
@ -17,7 +19,9 @@ local function select_optional(...)
end
local ret = df_dependencies.select_optional(newdef)
if ret ~= nil then
assert(minetest.registered_items[ret] ~= nil, "Node " .. ret .. " was returned by an optional selection call but is not registered.")
minetest.after(0, function()
assert(minetest.registered_items[ret] ~= nil, "Node " .. ret .. " was returned by an optional selection call but is not registered.")
end)
end
end
@ -84,3 +88,14 @@ df_dependencies.node_name_bed_top = select_required("beds:bed_top", "mcl_beds:be
-- from "doors"
df_dependencies.node_name_door_wood_a = select_required("doors:door_wood_a", "mcl_doors:wooden_door_b_1")
df_dependencies.node_name_door_hidden = select_required("doors:hidden", "mcl_doors:wooden_door_t_1")
-- from "stairs"
df_dependencies.node_name_slab_goblin_cap_stem_wood = select_required("stairs:slab_goblin_cap_stem_wood", "mcl_stairs:slab_goblin_cap_stem_wood")
df_dependencies.node_name_slab_slade_brick = select_required("stairs:slab_slade_brick", "mcl_stairs:slab_slade_brick")
df_dependencies.node_name_stair_goblin_cap_stem_wood = select_required("stairs:stair_goblin_cap_stem_wood", "mcl_stairs:stair_goblin_cap_stem_wood")
df_dependencies.node_name_stair_inner_slade_brick = select_required("stairs:stair_inner_slade_brick", "mcl_stairs:stair_slade_brick_inner")
df_dependencies.node_name_stair_outer_slade_brick = select_required("stairs:stair_outer_slade_brick", "mcl_stairs:stair_slade_brick_outer")
df_dependencies.node_name_stair_slade_block = select_required("stairs:stair_slade_block", "mcl_stairs:stair_slade_block")
df_dependencies.node_name_stair_slade_brick = select_required("stairs:stair_slade_brick", "mcl_stairs:stair_slade_brick")