9c9457e1f5
gloopblocks, homedecor, ilights, led marquee, plasticbox, solidcolor, stained_glass, unified bricks, and unified dyes In most of these, the update is to shift over to the new "old" coloring paradigm in Unified Dyes. See its forum thread for details.
139 lines
4.5 KiB
Lua
139 lines
4.5 KiB
Lua
-- internationalization boilerplate
|
|
local MP = minetest.get_modpath(minetest.get_current_modname())
|
|
local S, NS = dofile(MP.."/intllib.lua")
|
|
|
|
-- copied from castle_masonry in case that mod is not loaded
|
|
local get_material_properties = function(material)
|
|
local composition_def
|
|
local burn_time
|
|
if material.composition_material ~= nil then
|
|
composition_def = minetest.registered_nodes[material.composition_material]
|
|
burn_time = minetest.get_craft_result({method="fuel", width=1, items={ItemStack(material.composition_material)}}).time
|
|
else
|
|
composition_def = minetest.registered_nodes[material.craft_material]
|
|
burn_time = minetest.get_craft_result({method="fuel", width=1, items={ItemStack(material.craft_materia)}}).time
|
|
end
|
|
|
|
local tiles = material.tile
|
|
if tiles == nil then
|
|
tiles = composition_def.tile
|
|
elseif type(tiles) == "string" then
|
|
tiles = {tiles}
|
|
end
|
|
|
|
local desc = material.desc
|
|
if desc == nil then
|
|
desc = composition_def.description
|
|
end
|
|
|
|
return composition_def, burn_time, tiles, desc
|
|
end
|
|
|
|
local materials
|
|
if minetest.get_modpath("castle_masonry") then
|
|
materials = castle_masonry.materials
|
|
else
|
|
materials = {{name="stonebrick", desc=S("Stonebrick"), tile="default_stone_brick.png", craft_material="default:stonebrick"}}
|
|
end
|
|
|
|
castle_gates.register_gate_slot = function(material)
|
|
local composition_def, burn_time, tile, desc = get_material_properties(material)
|
|
local mod_name = minetest.get_current_modname()
|
|
|
|
minetest.register_node(mod_name..":"..material.name.."_gate_slot", {
|
|
drawtype = "nodebox",
|
|
description = S("@1 Gate Slot", desc),
|
|
_doc_items_longdesc = castle_gates.doc.gate_slot_longdesc,
|
|
_doc_items_usagehelp = castle_gates.doc.gate_slot_usagehelp,
|
|
tiles = tile,
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
groups = composition_def.groups,
|
|
sounds = composition_def.sounds,
|
|
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- body
|
|
{-0.5, -0.5, -0.75, 0.5, 0.5, -1.5}, -- bracket
|
|
}
|
|
},
|
|
|
|
collision_box = {
|
|
type = "fixed",
|
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 1.5}, -- body
|
|
},
|
|
})
|
|
|
|
minetest.register_node(mod_name..":"..material.name.."_gate_slot_reverse", {
|
|
drawtype = "nodebox",
|
|
description = S("@1 Gate Slot Reverse", desc),
|
|
_doc_items_longdesc = castle_gates.doc.gate_slot_reverse_longdesc,
|
|
_doc_items_usagehelp = castle_gates.doc.gate_slot_reverse_usagehelp,
|
|
tiles = tile,
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
groups = composition_def.groups,
|
|
sounds = composition_def.sounds,
|
|
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-0.5, -0.5, -1.25, 0.5, 0.5, 0.5}, -- body
|
|
}
|
|
},
|
|
|
|
collision_box = {
|
|
type = "fixed",
|
|
fixed = {-0.5, -0.5, -1.25, 0.5, 0.5, 0.5}, -- body
|
|
},
|
|
})
|
|
|
|
|
|
minetest.register_craft({
|
|
output = mod_name..":"..material.name.."_portcullis_slot 3",
|
|
recipe = {
|
|
{material.craft_material,"",material.craft_material},
|
|
{material.craft_material,"",material.craft_material},
|
|
{material.craft_material,"",material.craft_material},
|
|
},
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = mod_name..":"..material.name.."_portcullis_slot",
|
|
type = "shapeless",
|
|
recipe = {mod_name..":"..material.name.."_portcullis_slot_reverse"},
|
|
})
|
|
minetest.register_craft({
|
|
output = mod_name..":"..material.name.."_portcullis_slot_reverse",
|
|
type = "shapeless",
|
|
recipe = {mod_name..":"..material.name.."_portcullis_slot"},
|
|
})
|
|
|
|
if burn_time > 0 then
|
|
minetest.register_craft({
|
|
type = "fuel",
|
|
recipe = mod_name..":"..material.name.."_portcullis_slot",
|
|
burntime = burn_time * 2,
|
|
})
|
|
minetest.register_craft({
|
|
type = "fuel",
|
|
recipe = mod_name..":"..material.name.."_portcullis_slot_reverse",
|
|
burntime = burn_time * 2,
|
|
})
|
|
end
|
|
end
|
|
|
|
castle_gates.register_gate_slot_alias = function(old_mod_name, old_material_name, new_mod_name, new_material_name)
|
|
minetest.register_alias(old_mod_name..":"..old_material_name.."_gate_slot", new_mod_name..":"..new_material_name.."_gate_slot")
|
|
minetest.register_alias(old_mod_name..":"..old_material_name.."_gate_slot_reverse", new_mod_name..":"..new_material_name.."_gate_slot_reverse")
|
|
end
|
|
castle_gates.register_gate_slot_alias_force = function(old_mod_name, old_material_name, new_mod_name, new_material_name)
|
|
minetest.register_alias_force(old_mod_name..":"..old_material_name.."_gate_slot", new_mod_name..":"..new_material_name.."_gate_slot")
|
|
minetest.register_alias_force(old_mod_name..":"..old_material_name.."_gate_slot_reverse", new_mod_name..":"..new_material_name.."_gate_slot_reverse")
|
|
end
|
|
|
|
for _, material in pairs(materials) do
|
|
castle_gates.register_gate_slot(material)
|
|
end
|