Added crafting recipes for remain furniture and fixed already added ones

master
Andrey2470T 2022-07-20 16:46:06 +03:00
parent eab62bb4cc
commit d405faf3b1
8 changed files with 112 additions and 71 deletions

View File

@ -32,59 +32,62 @@ local items_and_crafts = {
}
local format_nested_strings = function(t, wood)
for i, item_n in ipairs(t) do
local t2 = table.copy(t)
for i, item_n in ipairs(t2) do
if type(item_n) == "table" then
for i2, item_n2 in ipairs(item_n) do
t[i][i2] = item_n2:format(wood)
t2[i][i2] = item_n2:format(wood)
end
else
t[i] = item_n:format(wood)
t2[i] = item_n:format(wood)
end
end
return t2
end
for _, wood in ipairs(woods) do
wood = wood ~= "" and wood .. "_" or wood
to_capital_l = wood ~= "" and wood:sub(1,1):upper() .. wood:sub(2) or ""
wood = wood ~= "" and wood ~= "jungle" and wood .. "_" or wood
local to_capital_l = wood ~= "" and wood:sub(1,1):upper() .. wood:sub(2, -2) .. " " or ""
for item, recipes in pairs(items_and_crafts) do
minetest.debug("item: " .. dump(item))
minetest.register_craftitem(":multidecor:" .. wood .. item,
{
description = to_capital_l .. " " .. item:sub(1,1):upper() .. item:sub(2),
inventory_image = "multidecor_" .. wood .. item .. ".png"
description = to_capital_l .. item:sub(1,1):upper() .. item:sub(2),
inventory_image = "multidecor_" .. (wood == "jungle" and wood .. "_" or wood) .. item .. ".png"
})
for _, recipe in ipairs(recipes) do
minetest.register_craft({
local def = {
type = recipe.type,
output = "multidecor:" .. wood .. item .. " " .. recipe.amount,
recipe = format_nested_strings(recipe.recipe, wood),
replacements = recipe.type == "shapeless" and {{recipe.recipe[1]:format(wood), ""}, {"multidecor:saw", "multidecor:saw"}}
})
replacements = recipe.type == "shapeless" and {{"multidecor:saw", "multidecor:saw"}} or nil
}
minetest.register_craft(def)
end
end
end
minetest.register_craftitem("multidecor:saw",
minetest.register_craftitem(":multidecor:saw",
{
description = "Saw",
inventory_image = "multidecor_saw.png"
})
minetest.register_craftitem("multidecor:metal_bar",
minetest.register_craftitem(":multidecor:metal_bar",
{
description = "Metal Bar",
inventory_image = "multidecor_metal_bar.png"
})
minetest.register_craftitem("multidecor:steel_sheet",
minetest.register_craftitem(":multidecor:steel_sheet",
{
description = "Steel Sheet",
inventory_image = "multidecor_sheet.png"
inventory_image = "multidecor_steel_sheet.png"
})
minetest.register_craftitem("multidecor:steel_scissors",
minetest.register_craftitem(":multidecor:steel_scissors",
{
description = "Steel Scissors",
inventory_image = "multidecor_steel_scissors.png"
@ -95,47 +98,29 @@ minetest.register_craft(
type = "shapeless",
output = "multidecor:steel_sheet",
recipe = {"default:steel_ingot", "multidecor:steel_scissors"},
replacements = {{"default:steel_ingot", ""}, {"multidecor:steel_scissors", "multidecor:steel_scissors"}}
replacements = {{"multidecor:steel_scissors", "multidecor:steel_scissors"}}
})
minetest.register_craft(
{
type = "shapeless",
output = "multidecor:metal_bar",
recipe = {
{"", "default:steel_ingot", ""},
{"", "default:steel_ingot", ""},
{"", "", ""}
}
recipe = {"default:steel_ingot", "default:steel_ingot", "multidecor:steel_scissors"},
replacements = {{"multidecor:steel_scissors", "multidecor:steel_scissors"}}
})
minetest.register_craft(
{
type = "shapeless",
output = "multidecor:saw",
recipe = {
{"multidecor:plank", "multidecor:steel_sheet", "multidecor:saw"},
{"", "", ""},
{"", "", ""}
},
replacements = {
{{"multidecor:plank", ""}, {"multidecor:steel_sheet", ""}, {"multidecor:saw", "multidecor:saw"}},
{{"", ""}, {"", ""}, {"", ""}},
{{"", ""}, {"", ""}, {"", ""}}
}
recipe = {"multidecor:plank", "multidecor:steel_sheet"}
})
minetest.register_craft(
{
type = "shapeless",
output = "multidecor:steel_scissors",
recipe = {
{"multidecor:plank", "default:steel_ingot", "multidecor:saw"},
{"", "", ""},
{"", "", ""}
},
replacements = {
{{"multidecor:plank", ""}, {"default:steel_ingot", ""}, {"multidecor:saw", "multidecor:saw"}},
{{"", ""}, {"", ""}, {"", ""}},
{{"", ""}, {"", ""}, {"", ""}}
}
recipe = {"multidecor:plank", "default:steel_ingot"}
})
@ -153,25 +138,18 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv
return
end
end
for _, item in ipairs(old_craft_grid) do
for _, stack in ipairs(old_craft_grid) do
check_for_item(stack:get_name())
if contains_saw or contains_steel_scissors then
break
end
if type(item) == "table" then
for _, item2 in ipairs(item) do
if contains_saw or contains_steel_scissors then
break
end
check_for_item(item2)
end
else
check_for_item(item)
end
end
local sound = contains_saw and "multidecor_saw.ogg" or contains_steel_scissors and "multidecor_steel_scissors.ogg"
local sound = contains_saw and "multidecor_saw" or contains_steel_scissors and "multidecor_steel_scissors"
if sound then
minetest.sound_play(sound, {to_player = player:get_player_name()})
end
return
end)

View File

@ -174,14 +174,14 @@ function register.register_furniture_unit(name, def, craft_def)
end
f_def.add_properties = def.add_properties or {}
local f_name = ":multidecor:" .. name
minetest.register_node(f_name, f_def)
local f_name = "multidecor:" .. name
minetest.register_node(":" .. f_name, f_def)
if craft_def then
minetest.register_craft({
output = f_name,
recipe = craft_def.recipe,
replacements = craft_def.replacements
replacements = craft_def.replacements or nil
})
end

View File

@ -36,7 +36,13 @@ function register.register_seat(name, base_def, add_def, craft_def)
def.paramtype2 = "facedir"
-- additional properties
def.add_properties = add_def
if add_def then
if add_def.recipe then
craft_def = add_def
else
def.add_properties = add_def
end
end
if def.callbacks then
def.callbacks.on_construct = def.callbacks.on_construct or default_on_construct

View File

@ -2,7 +2,14 @@ function register.register_table(name, base_def, add_def, craft_def)
local c_def = table.copy(base_def)
c_def.type = "table"
c_def.add_properties = add_def
if add_def then
if add_def.recipe then
craft_def = add_def
else
c_def.add_properties = add_def
end
end
register.register_furniture_unit(name, c_def, craft_def)
end

View File

@ -20,6 +20,13 @@ register.register_seat("kitchen_modern_wooden_chair", {
}
}
}
},
{
recipe = {
{"multidecor:board", "multidecor:board", ""},
{"default:stick", "default:stick", "default:stick"},
{"", "default:stick", ""}
}
})
register.register_seat("soft_kitchen_modern_wooden_chair", {
@ -44,6 +51,13 @@ register.register_seat("soft_kitchen_modern_wooden_chair", {
}
}
}
},
{
recipe = {
{"multidecor:board", "multidecor:board", "wool:white"},
{"default:stick", "default:stick", "default:stick"},
{"", "default:stick", ""}
}
})
register.register_seat("soft_modern_jungle_chair", {
@ -68,6 +82,13 @@ register.register_seat("soft_modern_jungle_chair", {
}
}
}
},
{
recipe = {
{"multidecor:jungleboard", "multidecor:jungleboard", "default:stick"},
{"default:stick", "default:stick", "default:stick"},
{"default:stick", "default:stick", ""}
}
})
register.register_seat("soft_round_modern_metallic_chair", {
@ -92,6 +113,13 @@ register.register_seat("soft_round_modern_metallic_chair", {
}
}
}
},
{
recipe = {
{"wool:white", "wool:white", ""},
{"multidecor:metal_bar", "multidecor:metal_bar", ""},
{"multidecor:metal_bar", "multidecor:metal_bar", ""}
}
})
register.register_seat("round_modern_metallic_stool", {
@ -115,4 +143,11 @@ register.register_seat("round_modern_metallic_stool", {
}
}
}
},
{
recipe = {
{"wool:white", "", ""},
{"multidecor:metal_bar", "multidecor:metal_bar", "multidecor:metal_bar"},
{"multidecor:metal_bar", "multidecor:metal_bar", ""}
}
})

View File

@ -1,12 +1,13 @@
for _, wood_n in ipairs({"", "jungle", "pine", "birch"}) do
local tex = "multidecor_" .. wood_n .. (wood_n ~= "" and "_" or "") .. "wood.png^[sheet:2x2:0,0"
for _, wood_n in ipairs({"", "jungle", "pine", "aspen"}) do
wood_n = wood_n .. (wood_n ~= "" and wood_n ~= "jungle" and "_" or "")
local tex = "multidecor_" .. wood_n .. (wood_n == "jungle" and "_" or "") .. "wood.png^[sheet:2x2:0,0"
register.register_table("modern_wooden_" .. wood_n .. (wood_n ~= "" and "_" or "") .. "closed_shelf", {
register.register_table("modern_wooden_" .. wood_n .. "closed_shelf", {
style = "modern",
material = "wood",
drawtype = "nodebox",
visual_scale = 1,
description = "Modern Wooden " .. wood_n:sub(1, 1):upper() .. wood_n:sub(2) .. " Closed Shelf (without back)",
description = "Modern Wooden " .. wood_n:sub(1, 1):upper() .. wood_n:sub(2, -1) .. " Closed Shelf (without back)",
tiles = {tex, tex, tex, tex, tex, tex},
bounding_boxes = {
{-0.5, -0.4, -0.5, -0.4, 0.4, 0.5}, -- Left side
@ -14,14 +15,21 @@ for _, wood_n in ipairs({"", "jungle", "pine", "birch"}) do
{-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}, -- Bottom side
{-0.5, 0.4, -0.5, 0.5, 0.5, 0.5} -- Top side
}
},
{
recipe = {
{"multidecor:" .. wood_n .. "board", "multidecor:" .. wood_n .. "board", "multidecor:" .. wood_n .. "board"},
{"multidecor:" .. wood_n .. "board", "multidecor:" .. wood_n .. "board", ""},
{"", "", ""}
}
})
register.register_table("modern_wooden_" .. wood_n .. (wood_n ~= "" and "_" or "") .. "closed_shelf_with_back", {
register.register_table("modern_wooden_" .. wood_n .. "closed_shelf_with_back", {
style = "modern",
material = "wood",
drawtype = "nodebox",
visual_scale = 1,
description = "Modern Wooden " .. wood_n:sub(1, 1):upper() .. wood_n:sub(2) .. " Closed Shelf (with back)",
description = "Modern Wooden " .. wood_n:sub(1, 1):upper() .. wood_n:sub(2, -1) .. " Closed Shelf (with back)",
tiles = {tex, tex, tex, tex, tex, tex},
bounding_boxes = {
{-0.5, -0.4, -0.5, -0.4, 0.4, 0.5}, -- Left side
@ -30,5 +38,12 @@ for _, wood_n in ipairs({"", "jungle", "pine", "birch"}) do
{-0.5, 0.4, -0.5, 0.5, 0.5, 0.5}, -- Top side
{-0.4, -0.4, 0.4, 0.4, 0.4, 0.5} -- Back side
}
},
{
recipe = {
{"multidecor:" .. wood_n .. "board", "multidecor:" .. wood_n .. "board", ""},
{"multidecor:" .. wood_n .. "board", "multidecor:" .. wood_n .. "board", ""},
{"", "", ""}
}
})
end

View File

@ -64,8 +64,8 @@ register.register_table("round_modern_wooden_table", {
},
{
recipe = {
{"multidecor:jungle_board", "", ""},
{"multidecor:jungle_plank", "multidecor:jungle_plank", ""},
{"multidecor:jungleboard", "", ""},
{"multidecor:jungleplank", "multidecor:jungleplank", ""},
{"default:stick", "", ""}
}
})
@ -105,9 +105,9 @@ register.register_table("modern_wooden_desk", {
},
{
recipe = {
{"multidecor:jungle_board", "multidecor:jungle_board", "multidecor:jungle_board"},
{"multidecor:jungle_board", "multidecor:wooden_drawer", "multidecor:jungle_board"},
{"multidecor:jungle_board", "multidecor:jungle_board", "multidecor:jungle_board"}
{"multidecor:jungleboard", "multidecor:jungleboard", "multidecor:jungleboard"},
{"multidecor:jungleboard", "multidecor:drawer", "multidecor:jungleboard"},
{"multidecor:jungleboard", "multidecor:jungleboard", "multidecor:jungleboard"}
}
})

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB