mirror of
https://github.com/adrido/darkage.git
synced 2025-01-09 17:30:19 +01:00
Rewrite building.lua simplified registration of reinforced stuff
This commit is contained in:
parent
b301fed084
commit
586b05da56
394
building.lua
394
building.lua
@ -1,3 +1,161 @@
|
|||||||
|
--[[
|
||||||
|
This function registers the nodes and craft rezieps for the reinforce stuff
|
||||||
|
* name: String which is used in description and as technical name (lower letters)
|
||||||
|
* craftItem: the Item where the reinforce is crafted out of
|
||||||
|
* nodedef: Nodedefinition table as used as in minetest.register_node()
|
||||||
|
|
||||||
|
The Nodes are caled
|
||||||
|
<modname>:reinforced_<name>
|
||||||
|
<modname>:reinforced_<name>_slope
|
||||||
|
<modname>:reinforced_<name>_arrow
|
||||||
|
<modname>:reinforced_<name>_bars
|
||||||
|
|
||||||
|
The modname is automatically the mod that currently calls this function.
|
||||||
|
e.g. if you call darkage.register_reinforce from the mod medieval modname will be medieval
|
||||||
|
]]
|
||||||
|
function darkage.register_reinforce(name, craftItem, nodedef)
|
||||||
|
assert(type(nodedef.tiles)=="table","ERRROR: nodedef.tiles have to be a table")
|
||||||
|
assert(nodedef.tiles[1], "ERROR: "..dump(nodedef.tiles).." requires at least 1 entry")
|
||||||
|
local modname = minetest.get_current_modname();
|
||||||
|
local tname = name:lower(); -- Technical name
|
||||||
|
|
||||||
|
-- Reinforced X
|
||||||
|
local reinforced = table.copy(nodedef);
|
||||||
|
local reinforced_tname = modname..":reinforced_"..tname
|
||||||
|
reinforced.description = "Reinforced "..name
|
||||||
|
for i,tile in ipairs(reinforced.tiles) do
|
||||||
|
reinforced.tiles[i] = tile .."^darkage_reinforce.png"
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_node(reinforced_tname, reinforced)
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = reinforced_tname,
|
||||||
|
recipe = {
|
||||||
|
{"group:stick", craftItem, "group:stick"},
|
||||||
|
{craftItem, "group:stick", craftItem},
|
||||||
|
{"group:stick", craftItem, "group:stick"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
-- Recycling
|
||||||
|
minetest.register_craft({
|
||||||
|
output = craftItem,
|
||||||
|
recipe = {
|
||||||
|
{ reinforced_tname },
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Reinforced Slope
|
||||||
|
local slope = table.copy(nodedef);
|
||||||
|
local slope_tname = modname..":reinforced_"..tname.."_slope"
|
||||||
|
slope.description = "Reinforced "..name.." Slope\nHint: use the screwdriver to rotate."
|
||||||
|
slope.paramtype2 = "facedir";
|
||||||
|
local slope_tile_extend = {"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --top ,down
|
||||||
|
"^darkage_reinforce_right.png" , "^darkage_reinforce_right.png" , --right, left
|
||||||
|
"^darkage_reinforce_left.png" , "^darkage_reinforce_left.png"} -- front, back
|
||||||
|
for i=1,6 do
|
||||||
|
local tile = slope.tiles[i] or nodedef.tiles[1]; -- There have to be at least one tile.
|
||||||
|
slope.tiles[i] = tile ..slope_tile_extend[i]
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_node(slope_tname, slope)
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = slope_tname,
|
||||||
|
recipe = {
|
||||||
|
{craftItem, craftItem, "group:stick"},
|
||||||
|
{craftItem, "group:stick", craftItem},
|
||||||
|
{"group:stick", craftItem, craftItem},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
-- Flipped recipe
|
||||||
|
minetest.register_craft({
|
||||||
|
output = slope_tname,
|
||||||
|
recipe = {
|
||||||
|
{"group:stick", craftItem, craftItem},
|
||||||
|
{craftItem, "group:stick", craftItem},
|
||||||
|
{craftItem, craftItem, "group:stick"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
-- Recycling
|
||||||
|
minetest.register_craft({
|
||||||
|
output = craftItem,
|
||||||
|
recipe = {
|
||||||
|
{ slope_tname }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Alias to convert old nodes
|
||||||
|
minetest.register_alias(modname..":reinforced_"..tname.."_right", slope_tname)
|
||||||
|
minetest.register_alias(modname..":reinforced_"..tname.."_left", slope_tname)
|
||||||
|
|
||||||
|
-- Arrow bar
|
||||||
|
local arrow = table.copy(nodedef)
|
||||||
|
local arrow_tname = modname..":reinforced_"..tname.."_arrow"
|
||||||
|
arrow.paramtype2 = "facedir";
|
||||||
|
arrow.description = "Reinforced "..name.." Arrow \nHint: use the screwdriver to rotate."
|
||||||
|
local arrow_tile_extend = {"" , "" , --top ,down
|
||||||
|
"^(darkage_reinforce_arrow.png^[transformR90)" , "^(darkage_reinforce_arrow.png^[transformR270)" , --right, left
|
||||||
|
"^(darkage_reinforce_arrow.png^[transformR180)" , "^darkage_reinforce_arrow.png"} -- front, back
|
||||||
|
for i=1,6 do
|
||||||
|
local tile = arrow.tiles[i] or arrow.tiles[1]; -- There have to be at least one tile.
|
||||||
|
arrow.tiles[i] = tile .. arrow_tile_extend[i]
|
||||||
|
end
|
||||||
|
minetest.register_node(arrow_tname, arrow)
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = arrow_tname,
|
||||||
|
recipe = {
|
||||||
|
{craftItem, "group:stick", craftItem},
|
||||||
|
{"group:stick", craftItem, "group:stick"},
|
||||||
|
{"group:stick", craftItem, "group:stick"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
-- Recycling
|
||||||
|
minetest.register_craft({
|
||||||
|
output = craftItem,
|
||||||
|
recipe = {
|
||||||
|
{ arrow_tname }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Reinforced Bars
|
||||||
|
local bars = table.copy(nodedef)
|
||||||
|
local bars_tname = modname..":reinforced_"..tname.."_bars"
|
||||||
|
bars.description = name.." Bars"
|
||||||
|
for i,tile in ipairs(bars.tiles) do
|
||||||
|
bars.tiles[i] = tile .."^darkage_reinforce_bars.png"
|
||||||
|
end
|
||||||
|
minetest.register_node(bars_tname, bars)
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = bars_tname,
|
||||||
|
recipe = {
|
||||||
|
{"group:stick", craftItem, "group:stick"},
|
||||||
|
{"group:stick", craftItem, "group:stick"},
|
||||||
|
{"group:stick", craftItem, "group:stick"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output = craftItem,
|
||||||
|
recipe = {
|
||||||
|
{ bars_tname }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
darkage.register_reinforce("Chalk", "darkage:chalk_powder", {
|
||||||
|
tiles = {"darkage_chalk.png"},
|
||||||
|
groups = {cracky=3},
|
||||||
|
sounds = default.node_sound_stone_defaults()
|
||||||
|
})
|
||||||
|
|
||||||
|
darkage.register_reinforce("Wood", "default:wood", {
|
||||||
|
tiles = {"default_wood.png"},
|
||||||
|
groups = {snappy=2, choppy=3, flammable=3},
|
||||||
|
sounds = default.node_sound_wood_defaults()
|
||||||
|
})
|
||||||
|
|
||||||
minetest.register_node("darkage:glass", {
|
minetest.register_node("darkage:glass", {
|
||||||
description = "Medieval Glass",
|
description = "Medieval Glass",
|
||||||
drawtype = "glasslike",
|
drawtype = "glasslike",
|
||||||
@ -22,248 +180,50 @@ minetest.register_node("darkage:glow_glass", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'darkage:glow_glass 1',
|
output = "darkage:glow_glass 1",
|
||||||
recipe = {
|
recipe = {
|
||||||
{'darkage:glass', '', ''},
|
{"darkage:glass", "", ""},
|
||||||
{'default:torch', '', ''},
|
{"default:torch", "", ""},
|
||||||
{'', '', ''},
|
{"", "", ""},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'darkage:glass 1',
|
output = "darkage:glass 1",
|
||||||
recipe = {
|
recipe = {
|
||||||
{'darkage:glow_glass'},
|
{"darkage:glow_glass"},
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:glass 8',
|
|
||||||
recipe = {
|
|
||||||
{'default:glass', 'default:steel_ingot', 'default:glass'},
|
|
||||||
{'default:steel_ingot', 'default:glass', 'default:steel_ingot'},
|
|
||||||
{'default:glass', 'default:steel_ingot', 'default:glass'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_chalk", {
|
|
||||||
description = "Reinforced Chalk",
|
|
||||||
tiles = {"darkage_chalk.png^darkage_reinforce.png"},
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_stone_defaults()
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_chalk_right", {
|
|
||||||
description = "Reinforced Chalk",
|
|
||||||
tiles = {"darkage_chalk.png^darkage_reinforce_right.png"},
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_stone_defaults()
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_chalk_left", {
|
|
||||||
description = "Reinforced Chalk",
|
|
||||||
tiles = {"darkage_chalk.png^darkage_reinforce_left.png"},
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_stone_defaults()
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_chalk_arrow", {
|
|
||||||
description = "Reinforced Chalk Arrow \nHint: use the screwdriver to rotate.",
|
|
||||||
tiles = {"darkage_chalk.png" , "darkage_chalk.png" , --top ,down
|
|
||||||
"darkage_chalk.png^(darkage_reinforce_arrow.png^[transformR90)" , "darkage_chalk.png^(darkage_reinforce_arrow.png^[transformR270)" , --right, left
|
|
||||||
"darkage_chalk.png^(darkage_reinforce_arrow.png^[transformR180)" , "darkage_chalk.png^darkage_reinforce_arrow.png"}, -- front, back
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:reinforced_chalk_arrow 4',
|
|
||||||
recipe = {
|
|
||||||
{'darkage:chalk_powder', 'group:stick', 'darkage:chalk_powder'},
|
|
||||||
{'group:stick', 'darkage:chalk_powder', 'group:stick'},
|
|
||||||
{'group:stick', 'darkage:chalk_powder', 'group:stick'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_chalk_bars", {
|
|
||||||
description = "Chalk Bars",
|
|
||||||
tiles = {"darkage_chalk.png^darkage_reinforce_bars.png"},
|
|
||||||
groups = {cracky=3},
|
|
||||||
sounds = default.node_sound_stone_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:reinforced_chalk_bars 4',
|
|
||||||
recipe = {
|
|
||||||
{'group:stick', 'darkage:chalk_powder', 'group:stick'},
|
|
||||||
{'group:stick', 'darkage:chalk_powder', 'group:stick'},
|
|
||||||
{'group:stick', 'darkage:chalk_powder', 'group:stick'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_wood", {
|
|
||||||
description = "Reinforced Wood",
|
|
||||||
tiles = {"default_wood.png^darkage_reinforce.png"},
|
|
||||||
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
|
|
||||||
sounds = default.node_sound_wood_defaults()
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_wood_right", {
|
|
||||||
description = "Reinforced Wood Right",
|
|
||||||
tiles = {"default_wood.png^darkage_reinforce_right.png"},
|
|
||||||
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
|
|
||||||
sounds = default.node_sound_wood_defaults()
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_wood_left", {
|
|
||||||
description = "Reinforced Wood Left",
|
|
||||||
tiles = {"default_wood.png^darkage_reinforce_left.png"},
|
|
||||||
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
|
|
||||||
sounds = default.node_sound_wood_defaults()
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_wood_arrow", {
|
|
||||||
description = "Reinforced Wood Arrow \nHint: use the screwdriver to rotate.",
|
|
||||||
tiles = {"default_wood.png" , "default_wood.png" , --top ,down
|
|
||||||
"default_wood.png^(darkage_reinforce_arrow.png^[transformR90)" , "default_wood.png^(darkage_reinforce_arrow.png^[transformR270)" , --right, left
|
|
||||||
"default_wood.png^(darkage_reinforce_arrow.png^[transformR180)" , "default_wood.png^darkage_reinforce_arrow.png"}, -- front, back
|
|
||||||
paramtype2 = "facedir",
|
|
||||||
groups = {snappy=2,choppy=3,oddly_breakable_by_hand=3,flammable=3},
|
|
||||||
sounds = default.node_sound_wood_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:reinforced_wood_arrow 4',
|
|
||||||
recipe = {
|
|
||||||
{'default:wood', 'group:stick', 'default:wood'},
|
|
||||||
{'group:stick', 'default:wood', 'group:stick'},
|
|
||||||
{'group:stick', 'default:wood', 'group:stick'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("darkage:reinforced_wood_bars", {
|
|
||||||
description = "Wooden Bars",
|
|
||||||
tiles = {"default_wood.png^darkage_reinforce_bars.png"},
|
|
||||||
groups = {choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
|
|
||||||
sounds = default.node_sound_wood_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:reinforced_wood_bars 4',
|
|
||||||
recipe = {
|
|
||||||
{'group:stick', 'default:wood', 'group:stick'},
|
|
||||||
{'group:stick', 'default:wood', 'group:stick'},
|
|
||||||
{'group:stick', 'default:wood', 'group:stick'},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'darkage:reinforced_chalk',
|
output = "darkage:glass 8",
|
||||||
recipe = {
|
recipe = {
|
||||||
{'group:stick','','group:stick'},
|
{"default:glass", "default:steel_ingot", "default:glass"},
|
||||||
{'','darkage:chalk',''},
|
{"default:steel_ingot", "default:glass", "default:steel_ingot"},
|
||||||
{'group:stick','','group:stick'},
|
{"default:glass", "default:steel_ingot", "default:glass"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'darkage:reinforced_chalk_right',
|
output = "darkage:chalk",
|
||||||
recipe = {
|
recipe = {
|
||||||
{'','','group:stick'},
|
{"darkage:chalk_powder","darkage:chalk_powder"},
|
||||||
{'','darkage:chalk',''},
|
{"darkage:chalk_powder","darkage:chalk_powder"},
|
||||||
{'group:stick','',''},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'darkage:reinforced_chalk_left',
|
output = "darkage:glow_glass 1",
|
||||||
recipe = {
|
recipe = {
|
||||||
{'group:stick','',''},
|
{"darkage:glass", "", ""},
|
||||||
{'','darkage:chalk',''},
|
{"default:torch", "", ""},
|
||||||
{'','','group:stick'},
|
{"", "", ""},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'darkage:chalk',
|
output = "darkage:glass 1",
|
||||||
recipe = {
|
recipe = {
|
||||||
{'darkage:chalk_powder','darkage:chalk_powder'},
|
{"darkage:glow_glass"},
|
||||||
{'darkage:chalk_powder','darkage:chalk_powder'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:reinforced_wood',
|
|
||||||
recipe = {
|
|
||||||
{'group:stick','','group:stick'},
|
|
||||||
{'','default:wood',''},
|
|
||||||
{'group:stick','','group:stick'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'default:wood',
|
|
||||||
recipe = {
|
|
||||||
{'darkage:reinforced_wood'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:reinforced_wood_left',
|
|
||||||
recipe = {
|
|
||||||
{'group:stick','',''},
|
|
||||||
{'','default:wood',''},
|
|
||||||
{'','','group:stick'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'default:wood',
|
|
||||||
recipe = {
|
|
||||||
{'darkage:reinforced_wood_left'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:reinforced_wood_right',
|
|
||||||
recipe = {
|
|
||||||
{'','','group:stick'},
|
|
||||||
{'','default:wood',''},
|
|
||||||
{'group:stick','',''},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'default:wood',
|
|
||||||
recipe = {
|
|
||||||
{'darkage:reinforced_wood_right'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:glow_glass 1',
|
|
||||||
recipe = {
|
|
||||||
{'darkage:glass', '', ''},
|
|
||||||
{'default:torch', '', ''},
|
|
||||||
{'', '', ''},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:glass 1',
|
|
||||||
recipe = {
|
|
||||||
{'darkage:glow_glass'},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = 'darkage:glass 8',
|
|
||||||
recipe = {
|
|
||||||
{'default:glass', 'default:steel_ingot', 'default:glass'},
|
|
||||||
{'default:steel_ingot', 'default:glass', 'default:steel_ingot'},
|
|
||||||
{'default:glass', 'default:steel_ingot', 'default:glass'},
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user