diff --git a/README.md b/README.md index 3a12fe1..d15f64a 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ There are two available functions in the mod API: ```lua function throwing.register_bow(name, definition) --[[ -Name: Bow name (in second part of the itemstring). +Name: Bow name. If it doesn't contain ":", the "throwing:" prefix will be added. Definition: definition table, containing: * itemcraft (optional, you may want to register your own craft or to make the bow uncraftable): item used to craft the bow. * description (highly recommended): description of the bow. @@ -53,7 +53,7 @@ throwing.register_bow("bow_wood", { itemcraft, craft_quantity, description, tiles, on_hit_sound, on_hit[, on_throw[, groups]] function throwing.register_arrow(name, definition table) --[[ -Name: Arrow name (in second part of the itemstring). +Name: Arrow name. If it doesn't contain ":", the "throwing:" prefix will be added. Definition: definition table, containing: * itemcraft (optional, you may want to register your own craft or to make the arrow uncraftable): item used to craft the arrow. * craft_quantity (optional, defaulting to 1 if itemcraft is non-nil, pointless otherwise): quantity of arrows in the craft output. diff --git a/init.lua b/init.lua index 4b5a19c..e43aba7 100644 --- a/init.lua +++ b/init.lua @@ -187,7 +187,11 @@ on_throw(pos, hitter) Unlike on_hit, it is optional. ]] function throwing.register_arrow(name, def) - table.insert(throwing.arrows, throwing.modname..":"..name) + if not string.find(name, ":") then + name = throwing.modname..":"..name + end + + table.insert(throwing.arrows, name) local groups = {dig_immediate = 3} if def.groups then @@ -195,7 +199,7 @@ function throwing.register_arrow(name, def) groups[k] = v end end - minetest.register_node(throwing.modname..":"..name, { + minetest.register_node(name, { drawtype = "nodebox", paramtype = "light", node_box = { @@ -241,7 +245,7 @@ function throwing.register_arrow(name, def) end }) - minetest.register_entity(throwing.modname..":"..name.."_entity", { + minetest.register_entity(name.."_entity", { physical = false, timer = 0, visual = "wielditem", @@ -280,12 +284,16 @@ end ---------- Bows ----------- function throwing.register_bow(name, def) + if not string.find(name, ":") then + name = throwing.modname..":"..name + end + if not def.allow_shot then def.allow_shot = function(player, itemstack) return throwing.is_arrow(itemstack) end end - minetest.register_tool(throwing.modname..":"..name, { + minetest.register_tool(name, { description = def.description, inventory_image = def.texture, on_use = function(itemstack, user, pointed_thing)