mirror of
https://git.0x7be.net/dirk/uniham.git
synced 2024-11-26 01:03:52 +01:00
allow for recipe tables instead of only item IDs
This commit is contained in:
parent
145208ade5
commit
0bc60d396f
@ -58,7 +58,7 @@ This registers a hammer with the name “My Cool Hammer” that has the ID `mymo
|
|||||||
|
|
||||||
If instead of `head` the value `texture` is provided then the automatic texture generation is disabled and the hammer will get the texture defined by the `texture` value. If both values are added then the `texture` value is given precedence.
|
If instead of `head` the value `texture` is provided then the automatic texture generation is disabled and the hammer will get the texture defined by the `texture` value. If both values are added then the `texture` value is given precedence.
|
||||||
|
|
||||||
The hammer is crafted like the provided hammers with two sticks and two of the items provided for `craft`.
|
The hammer is crafted like the provided hammers with two sticks and two of the items provided for `craft`. Alternative: When providing a [recipe table](https://dev.minetest.net/minetest.register_craft) instead of an item ID then the recipe table is used for registering the crafting recipe for the hammer (the `output` value gets automatically set by the API and can be omitted).
|
||||||
|
|
||||||
`uses` defines how often the hammer can be used. The value also gets stored in the tool’s definition as `_uniham.uses` that can be used by a custom `on_use` function for example
|
`uses` defines how often the hammer can be used. The value also gets stored in the tool’s definition as `_uniham.uses` that can be used by a custom `on_use` function for example
|
||||||
|
|
||||||
|
@ -31,6 +31,10 @@ local use_hammer = uniham.use_hammer
|
|||||||
-- [ ][s][x]
|
-- [ ][s][x]
|
||||||
-- [s][ ][ ]
|
-- [s][ ][ ]
|
||||||
--
|
--
|
||||||
|
-- If for `craft` a table is provided then the mod tries to register the hammer
|
||||||
|
-- with the given table as recipe table. The `output` value gets overwritten
|
||||||
|
-- by the mod but all other values are taken as they are.
|
||||||
|
--
|
||||||
-- The function provided via `on_use` gets three parameters when called by the
|
-- The function provided via `on_use` gets three parameters when called by the
|
||||||
-- hammer’s on_use action: `itemstack`, `player`, and `pointed_thing`. All of
|
-- hammer’s on_use action: `itemstack`, `player`, and `pointed_thing`. All of
|
||||||
-- those three parameters are defined by Minetest’s API. The function has to
|
-- those three parameters are defined by Minetest’s API. The function has to
|
||||||
@ -46,10 +50,12 @@ local use_hammer = uniham.use_hammer
|
|||||||
-- @param short_id Unprefixed ID for the new hammer
|
-- @param short_id Unprefixed ID for the new hammer
|
||||||
-- @param definition Definition table as described
|
-- @param definition Definition table as described
|
||||||
-- @see <https://dev.minetest.net/on_use#on_use>
|
-- @see <https://dev.minetest.net/on_use#on_use>
|
||||||
|
-- @see <https://dev.minetest.net/minetest.register_craft>
|
||||||
-- @return void
|
-- @return void
|
||||||
uniham.register_hammer = function (short_id, definition)
|
uniham.register_hammer = function (short_id, definition)
|
||||||
local on_use = definition.on_use or use_hammer
|
local on_use = definition.on_use or use_hammer
|
||||||
local autotexture = '([combine:16x16:-1,1=+s)^((+h^+m)^[makealpha:0,0,0)'
|
local autotexture = '([combine:16x16:-1,1=+s)^((+h^+m)^[makealpha:0,0,0)'
|
||||||
|
local hammer_id = minetest.get_current_modname()..':'..short_id
|
||||||
local texture = ''
|
local texture = ''
|
||||||
|
|
||||||
if definition.head and not definition.texture then
|
if definition.head and not definition.texture then
|
||||||
@ -64,8 +70,7 @@ uniham.register_hammer = function (short_id, definition)
|
|||||||
texture = definition.texture
|
texture = definition.texture
|
||||||
end
|
end
|
||||||
|
|
||||||
|
minetest.register_tool(hammer_id, {
|
||||||
minetest.register_tool('uniham:'..short_id, {
|
|
||||||
description = definition.name,
|
description = definition.name,
|
||||||
inventory_image = texture,
|
inventory_image = texture,
|
||||||
_uniham = { uses = definition.uses },
|
_uniham = { uses = definition.uses },
|
||||||
@ -74,12 +79,17 @@ uniham.register_hammer = function (short_id, definition)
|
|||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if type(definition.craft) == 'string' then
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = minetest.get_current_modname()..':'..short_id,
|
output = hammer_id,
|
||||||
recipe = {
|
recipe = {
|
||||||
{ '', definition.craft, '' },
|
{ '', definition.craft, '' },
|
||||||
{ '', 'default:stick', definition.craft },
|
{ '', 'default:stick', definition.craft },
|
||||||
{ 'default:stick', '', '' }
|
{ 'default:stick', '', '' }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
elseif type(definition.craft) == 'table' then
|
||||||
|
definition.craft['output'] = hammer_id
|
||||||
|
minetest.register_craft(definition.craft)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user