80 lines
2.3 KiB
Lua
80 lines
2.3 KiB
Lua
-- order door type can be converted
|
|
local type_order = {'full', 'mesh', 'slat', 'vert'}
|
|
local type_names = {
|
|
full='Solid %s Door',
|
|
mesh='Meshed %s Door',
|
|
slat='Slatted %s Door',
|
|
vert='Fancy %s Door'
|
|
}
|
|
|
|
local materials = {
|
|
tcop={
|
|
item=terumet.id('ingot_tcop'),
|
|
name='Terucopper',
|
|
level=1
|
|
},
|
|
ttin={
|
|
item=terumet.id('ingot_ttin'),
|
|
name='Terutin',
|
|
level=1
|
|
},
|
|
tste={
|
|
item=terumet.id('ingot_tste'),
|
|
name='Terusteel',
|
|
level=2
|
|
},
|
|
tcha={
|
|
item=terumet.id('ingot_tcha'),
|
|
name='Teruchalcum',
|
|
level=2
|
|
},
|
|
tgol={
|
|
item=terumet.id('ingot_tgol'),
|
|
name='Terugold',
|
|
level=3
|
|
},
|
|
cgls={
|
|
item=terumet.id('ingot_cgls'),
|
|
name='Coreglass',
|
|
level=4
|
|
}
|
|
}
|
|
|
|
for mat_id, mat_data in pairs(materials) do
|
|
local first_door_id = nil
|
|
local prev_door_id = nil
|
|
for _, type_id in pairs(type_order) do
|
|
local type_name = type_names[type_id]
|
|
local door_id = terumet.id(string.format('door%s_%s', type_id, mat_id))
|
|
local door_tex = terumet.tex(string.format('door%s_%s', type_id, mat_id))
|
|
local door_invtex = terumet.tex(string.format('dinv%s_%s', type_id, mat_id))
|
|
local door_recipe = nil
|
|
if not prev_door_id then
|
|
door_recipe = {
|
|
{mat_data.item, mat_data.item},
|
|
{mat_data.item, mat_data.item},
|
|
{mat_data.item, mat_data.item}
|
|
}
|
|
end
|
|
doors.register(door_id, {
|
|
tiles = {{name = door_tex, backface_culling = true}},
|
|
description = string.format(type_name, mat_data.name),
|
|
inventory_image = door_invtex,
|
|
protected = true,
|
|
groups = {cracky = 1, level = mat_data.level},
|
|
sounds = default.node_sound_metal_defaults(),
|
|
sound_open = 'doors_steel_door_open',
|
|
sound_close = 'doors_steel_door_close',
|
|
recipe = door_recipe
|
|
})
|
|
|
|
if prev_door_id then
|
|
minetest.register_craft{ type='shapeless', output=door_id, recipe={prev_door_id} }
|
|
end
|
|
|
|
if not first_door_id then first_door_id = door_id end
|
|
prev_door_id = door_id
|
|
end
|
|
minetest.register_craft{ type='shapeless', output=first_door_id, recipe={prev_door_id} }
|
|
end
|