2023-10-13 07:19:13 +00:00
|
|
|
local function create_plain_wrapper (function_name)
|
|
|
|
local wrapper = function (...)
|
2023-10-13 07:31:55 +00:00
|
|
|
--[[
|
2023-10-13 07:19:13 +00:00
|
|
|
local args = {...}
|
|
|
|
|
|
|
|
-- labels will be used later, probably.
|
2023-10-13 07:31:55 +00:00
|
|
|
local label = #args > 1 and args[1] or "unlabeled"
|
2023-10-13 07:19:13 +00:00
|
|
|
local callback = #args > 1 and args[2] or args[1]
|
|
|
|
|
|
|
|
minetest[function_name](callback)
|
2023-10-13 07:31:55 +00:00
|
|
|
]]--
|
|
|
|
minetest[function_name](...)
|
2023-10-13 07:19:13 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
blockgame[function_name] = wrapper
|
|
|
|
end
|
|
|
|
|
|
|
|
for name in pairs({
|
|
|
|
register_abm = true,
|
2023-10-13 07:55:09 +00:00
|
|
|
register_lbm = true,
|
2023-10-13 07:19:13 +00:00
|
|
|
register_on_joinplayer = true,
|
2023-10-13 07:31:55 +00:00
|
|
|
register_item = true,
|
|
|
|
register_on_placenode = true,
|
|
|
|
register_on_dignode = true,
|
|
|
|
register_on_punchnode = true,
|
|
|
|
register_globalstep = true,
|
2023-10-13 07:19:13 +00:00
|
|
|
}) do
|
|
|
|
create_plain_wrapper(name)
|
|
|
|
end
|
2023-10-17 18:20:42 +00:00
|
|
|
|
|
|
|
local function capitalize (str)
|
|
|
|
return string.upper(string.sub(str, 1, 1)) .. string.sub(str, 2)
|
|
|
|
end
|
|
|
|
|
2023-10-17 18:39:13 +00:00
|
|
|
local events = blockgame.events.namespace("api")
|
|
|
|
|
2023-10-17 18:52:06 +00:00
|
|
|
function blockgame.register_node (name, def, modname)
|
|
|
|
-- TODO: take full name and then extract modname and base name from that, that'll probably be easier to maintain.
|
|
|
|
local modname = modname or minetest.get_current_modname()
|
2023-10-17 18:20:42 +00:00
|
|
|
local full_name = modname .. ":" .. name
|
|
|
|
|
|
|
|
def.description = def.description or capitalize(name)
|
|
|
|
def.tiles = def.tiles or {
|
|
|
|
modname .. "_" .. name .. ".png",
|
|
|
|
}
|
|
|
|
|
2023-10-17 18:39:13 +00:00
|
|
|
events.broadcast("before_register_node", {
|
|
|
|
name = name,
|
|
|
|
def = def,
|
|
|
|
mod = modname,
|
|
|
|
})
|
|
|
|
|
2023-10-17 18:20:42 +00:00
|
|
|
minetest.register_node(full_name, def)
|
2023-10-17 18:39:13 +00:00
|
|
|
|
|
|
|
events.broadcast("after_register_node", {
|
|
|
|
name = name,
|
|
|
|
def = def,
|
|
|
|
mod = modname,
|
|
|
|
})
|
2023-10-17 18:20:42 +00:00
|
|
|
end
|