From 75e66075d09f10486918b6999afca4f18da2db6c Mon Sep 17 00:00:00 2001 From: trans_soup <> Date: Tue, 17 Oct 2023 20:20:42 +0200 Subject: [PATCH] simplify node registration. make the wrapper `blockgame.register_node` make reasonable assumptions that make node registration more convenient. change other code to take advantage of that change. also remove the `blockgame.reg_simple_node` utility since it's now redundant. --- mods/bg_api/util_node.lua | 13 ------------- mods/bg_api/wrappers.lua | 17 ++++++++++++++++- mods/bg_stoneworking/node.lua | 12 ++++++++---- mods/bg_terrain/node.lua | 20 ++++---------------- mods/bg_tree/node.lua | 20 ++++++++++++++------ mods/bg_tree/node_leaves.lua | 2 +- mods/bg_tree/node_log.lua | 2 +- mods/bg_woodworking/node.lua | 6 ++++-- 8 files changed, 48 insertions(+), 44 deletions(-) diff --git a/mods/bg_api/util_node.lua b/mods/bg_api/util_node.lua index a1b82b7..d77df15 100644 --- a/mods/bg_api/util_node.lua +++ b/mods/bg_api/util_node.lua @@ -1,16 +1,3 @@ -function blockgame.reg_simple_node (name, desc, groups) - local my_modname = minetest.get_current_modname() - return blockgame.register_node(my_modname .. ":" .. name, { - description = desc, - tiles = { - my_modname .. "_" .. name .. ".png", - }, - groups = groups, - }) -end - - - function blockgame.air_flows_through (pos, node) node = node or minetest.get_node(pos) return blockgame.item_matches(node.name, { diff --git a/mods/bg_api/wrappers.lua b/mods/bg_api/wrappers.lua index f1a921d..ffc2752 100644 --- a/mods/bg_api/wrappers.lua +++ b/mods/bg_api/wrappers.lua @@ -19,7 +19,6 @@ for name in pairs({ register_abm = true, register_lbm = true, register_on_joinplayer = true, - register_node = true, register_item = true, register_on_placenode = true, register_on_dignode = true, @@ -28,3 +27,19 @@ for name in pairs({ }) do create_plain_wrapper(name) end + +local function capitalize (str) + return string.upper(string.sub(str, 1, 1)) .. string.sub(str, 2) +end + +function blockgame.register_node (name, def) + local modname = minetest.get_current_modname() + local full_name = modname .. ":" .. name + + def.description = def.description or capitalize(name) + def.tiles = def.tiles or { + modname .. "_" .. name .. ".png", + } + + minetest.register_node(full_name, def) +end diff --git a/mods/bg_stoneworking/node.lua b/mods/bg_stoneworking/node.lua index 70503ee..f039142 100644 --- a/mods/bg_stoneworking/node.lua +++ b/mods/bg_stoneworking/node.lua @@ -1,7 +1,11 @@ -blockgame.reg_simple_node("bricks", "Bricks", { - stoney = 1, +blockgame.register_node("bricks", { + groups = { + stoney = 1, + }, }) -blockgame.reg_simple_node("tile", "Tile", { - stoney = 1, +blockgame.register_node("tile", { + groups = { + stoney = 1, + }, }) diff --git a/mods/bg_terrain/node.lua b/mods/bg_terrain/node.lua index 9d2da5a..866989e 100644 --- a/mods/bg_terrain/node.lua +++ b/mods/bg_terrain/node.lua @@ -1,10 +1,7 @@ local modname = minetest.get_current_modname() -blockgame.register_node(modname .. ":stone", { +blockgame.register_node("stone", { description = "Stone", - tiles = { - modname .. "_stone.png", - }, groups = { cracky = 3, stoney = 1, @@ -12,11 +9,8 @@ blockgame.register_node(modname .. ":stone", { drop = modname .. ":cobblestone", }) -blockgame.register_node(modname .. ":cobblestone", { +blockgame.register_node("cobblestone", { description = "Cobblestone", - tiles = { - modname .. "_cobblestone.png", - }, groups = { cracky = 3, stoney = 1, @@ -27,22 +21,16 @@ blockgame.register_node(modname .. ":cobblestone", { minetest.register_alias("mapgen_stone", modname .. ":stone") minetest.register_alias("mapgen_water_source", "air") -blockgame.register_node(modname .. ":grass", { +blockgame.register_node("grass", { description = "Grass", - tiles = { - modname .. "_grass.png", - }, groups = { dirty = 1, }, drop = modname .. ":dirt", }) -blockgame.register_node(modname .. ":dirt", { +blockgame.register_node("dirt", { description = "Dirt", - tiles = { - modname .. "_dirt.png", - }, groups = { dirty = 1, grassable = 1, diff --git a/mods/bg_tree/node.lua b/mods/bg_tree/node.lua index 70e3077..7578cf3 100644 --- a/mods/bg_tree/node.lua +++ b/mods/bg_tree/node.lua @@ -3,13 +3,21 @@ local modname = minetest.get_current_modname() load_file("node_log") load_file("node_leaves") -blockgame.reg_simple_node("nut", "Nut", { - woody = 1, +blockgame.register_node("nut", { + groups = { + woody = 1, + }, }) -blockgame.reg_simple_node("root", "Root", { - woody = 1, +blockgame.register_node("root", { + groups = { + woody = 1, + }, }) -blockgame.reg_simple_node("root_alive", "Growing Root", { - woody = 1, + +blockgame.register_node("root_alive", { + description = "Growing Root", + groups = { + woody = 1, + }, }) diff --git a/mods/bg_tree/node_leaves.lua b/mods/bg_tree/node_leaves.lua index 43e23a7..0f9dac8 100644 --- a/mods/bg_tree/node_leaves.lua +++ b/mods/bg_tree/node_leaves.lua @@ -16,7 +16,7 @@ local function reg_leaves (name, def) falling_node = 1, }) - blockgame.register_node(modname .. ":" .. name, def) + blockgame.register_node(name, def) end local nutty_drops = { diff --git a/mods/bg_tree/node_log.lua b/mods/bg_tree/node_log.lua index a34818e..421d947 100644 --- a/mods/bg_tree/node_log.lua +++ b/mods/bg_tree/node_log.lua @@ -17,7 +17,7 @@ local function reg_log (name, def) supports_leaves = 1, }) - blockgame.register_node(modname .. ":" .. name, def) + blockgame.register_node(name, def) end reg_log("log", { diff --git a/mods/bg_woodworking/node.lua b/mods/bg_woodworking/node.lua index 2f8f70d..fc8af6a 100644 --- a/mods/bg_woodworking/node.lua +++ b/mods/bg_woodworking/node.lua @@ -1,5 +1,7 @@ local modname = minetest.get_current_modname() -blockgame.reg_simple_node("plank", "Plank", { - woody = 1, +blockgame.register_node("plank", { + groups = { + woody = 1, + }, })