Use tables for registering wooden nodes (fix of #2, p2)

unsure if will merge to indev; code just became bigger and without api at all (what if someone's mod adds new type of wood, why can't author of mod just add support for mine?)
This commit is contained in:
Mikita Wiśniewski 2022-05-01 14:06:21 +07:00
parent 4f43fcf650
commit 2989f4c616
1 changed files with 45 additions and 33 deletions

View File

@ -2,8 +2,23 @@
local S = minetest.get_translator(minetest.get_current_modname()) local S = minetest.get_translator(minetest.get_current_modname())
--=-- API --=-- mcl_decor.woods = {
function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles, group) -- name, chair desc, table desc, slabtable desc, planks, texture
{"wooden", S("Oak Chair"), S("Oak Table"), S("Oak Slab Table"), "mcl_core:wood", "default_wood"},
{"dark_oak", S("Dark Oak Chair"), S("Dark Oak Table"), S("Dark Oak Slab Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak"},
{"jungle", S("Jungle Chair"), S("Jungle Table"), S("Jungle Slab Table"), "mcl_core:junglewood", "default_junglewood"},
{"spruce", S("Spruce Chair"), S("Spruce Table"), S("Spruce Slab Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce"},
{"acacia", S("Acacia Chair"), S("Acacia Table"), S("Acacia Slab Table"), "mcl_core:acaciawood", "default_acacia_wood"},
{"birch", S("Birch Chair"), S("Birch Table"), S("Birch Slab Table"), "mcl_core:birchwood", "mcl_core_planks_birch"},
}
mcl_decor.netherwoods = {
-- name, chair desc, table desc, slabtable desc, planks, texture
{"crimson", S("Crimson Chair"), S("Crimson Table"), S("Crimson Slab Table"), "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood", "1"},
{"warped", S("Warped Chair"), S("Warped Table"), S("Warped Slab Table"), "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood", "1"},
}
-- combined wooden stuff registering function
mcl_decor.register_wooden_stuff = function(name, desc, desc2, desc3, material, tiles, group)
if group == nil then if group == nil then
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1} group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}
else else
@ -25,7 +40,7 @@ function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles,
{-0.25, -0.5, -0.25, -0.125, -0.125, -0.125}, {-0.25, -0.5, -0.25, -0.125, -0.125, -0.125},
} }
}, },
tiles = {tiles}, tiles = {tiles..".png"},
is_ground_content = false, is_ground_content = false,
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
@ -81,7 +96,7 @@ function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles,
type = "fixed", type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
}, },
tiles = {tiles}, tiles = {tiles..".png"},
is_ground_content = false, is_ground_content = false,
paramtype = "light", paramtype = "light",
stack_max = 64, stack_max = 64,
@ -104,16 +119,10 @@ function mcl_decor.register_chair_and_table(name, desc, desc2, material, tiles,
recipe = "mcl_decor:"..name.."_table", recipe = "mcl_decor:"..name.."_table",
burntime = 10, burntime = 10,
}) })
end
-- slab table part
function mcl_decor.register_slab_table(name, desc, material, tiles, group)
if group == nil then
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1, flammable=-1}
else
group = {handy=1, axey=1, attached_node=1, material_wood=1, deco_block=1}
end
minetest.register_node("mcl_decor:"..name.."_stable", { minetest.register_node("mcl_decor:"..name.."_stable", {
description = desc, description = desc3,
drawtype = "nodebox", drawtype = "nodebox",
node_box = { node_box = {
type = "fixed", type = "fixed",
@ -122,7 +131,7 @@ function mcl_decor.register_slab_table(name, desc, material, tiles, group)
{-0.5, 0, -0.5, 0.5, 0.5, 0.5}, {-0.5, 0, -0.5, 0.5, 0.5, 0.5},
} }
}, },
tiles = {tiles}, tiles = {tiles..".png"},
is_ground_content = false, is_ground_content = false,
paramtype = "light", paramtype = "light",
stack_max = 64, stack_max = 64,
@ -148,25 +157,28 @@ end
--=-- REGISTER --=-- for _, row in ipairs(mcl_decor.woods) do
mcl_decor.register_chair_and_table("wooden", S("Oak Chair"), S("Oak Table"), "mcl_core:wood", "default_wood.png") -- define rows
mcl_decor.register_chair_and_table("dark_oak", S("Dark Oak Chair"), S("Dark Oak Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png") local name = row[1]
mcl_decor.register_chair_and_table("jungle", S("Jungle Chair"), S("Jungle Table"), "mcl_core:junglewood", "default_junglewood.png") local desc = row[2]
mcl_decor.register_chair_and_table("spruce", S("Spruce Chair"), S("Spruce Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png") local desc2 = row[3]
mcl_decor.register_chair_and_table("acacia", S("Acacia Chair"), S("Acacia Table"), "mcl_core:acaciawood", "default_acacia_wood.png") local desc3 = row[4]
mcl_decor.register_chair_and_table("birch", S("Birch Chair"), S("Birch Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png") local material = row[5]
local tiles = row[6]
mcl_decor.register_slab_table("wooden", S("Oak Slab Table"), "mcl_core:wood", "default_wood.png") local group = row[7]
mcl_decor.register_slab_table("dark_oak", S("Dark Oak Slab Table"), "mcl_core:darkwood", "mcl_core_planks_big_oak.png") mcl_decor.register_wooden_stuff(name, desc, desc2, desc3, material, tiles, group)
mcl_decor.register_slab_table("jungle", S("Jungle Slab Table"), "mcl_core:junglewood", "default_junglewood.png") end
mcl_decor.register_slab_table("spruce", S("Spruce Slab Table"), "mcl_core:sprucewood", "mcl_core_planks_spruce.png")
mcl_decor.register_slab_table("acacia", S("Acacia Slab Table"), "mcl_core:acaciawood", "default_acacia_wood.png")
mcl_decor.register_slab_table("birch", S("Birch Slab Table"), "mcl_core:birchwood", "mcl_core_planks_birch.png")
-- support for MineClone 5 -- support for MineClone 5
if minetest.get_modpath("mcl_mushroom") then if minetest.get_modpath("mcl_mushroom") then
mcl_decor.register_chair_and_table("crimson", S("Crimson Chair"), S("Crimson Table"), "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood.png", "1") for _, row in ipairs(mcl_decor.netherwoods) do
mcl_decor.register_chair_and_table("warped", S("Warped Chair"), S("Warped Table"), "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood.png", "1") -- define rows
mcl_decor.register_slab_table("crimson", S("Crimson Slab Table"), "mcl_mushroom:crimson_hyphae_wood", "crimson_hyphae_wood.png", "1") local name = row[1]
mcl_decor.register_slab_table("warped", S("Warped Slab Table"), "mcl_mushroom:warped_hyphae_wood", "warped_hyphae_wood.png", "1") local desc = row[2]
local desc2 = row[3]
local desc3 = row[4]
local material = row[5]
local tiles = row[6]
local group = row[7]
mcl_decor.register_wooden_stuff(name, desc, desc2, desc3, material, tiles, group)
end
end end