mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-25 20:11:06 +01:00
Stonecutter fixes and improvements
-improved stonecutter API, making it more robust -fixed a dupe bug
This commit is contained in:
parent
b252e577ec
commit
19cea45c17
1 changed files with 22 additions and 2 deletions
|
@ -15,8 +15,12 @@ mcl_stonecutter.registered_recipes = {}
|
||||||
-- - defaults to 1
|
-- - defaults to 1
|
||||||
-- - non-int rounded down
|
-- - non-int rounded down
|
||||||
function mcl_stonecutter.register_recipe(input, output, count)
|
function mcl_stonecutter.register_recipe(input, output, count)
|
||||||
if not (minetest.registered_items[input] and minetest.registered_items[output]) then
|
if mcl_stonecutter.registered_recipes[input] and mcl_stonecutter.registered_recipes[input][output] then return end
|
||||||
error("Input or output is not a registered item")
|
if not minetest.registered_items[input] then
|
||||||
|
error("Input is not a registered item: ".. input)
|
||||||
|
end
|
||||||
|
if not minetest.registered_items[output] then
|
||||||
|
error("Output is not a registered item: ".. output)
|
||||||
end
|
end
|
||||||
local n = count
|
local n = count
|
||||||
if type(count) ~= "number" then
|
if type(count) ~= "number" then
|
||||||
|
@ -27,6 +31,21 @@ function mcl_stonecutter.register_recipe(input, output, count)
|
||||||
mcl_stonecutter.registered_recipes[input] = {}
|
mcl_stonecutter.registered_recipes[input] = {}
|
||||||
end
|
end
|
||||||
mcl_stonecutter.registered_recipes[input][output] = n
|
mcl_stonecutter.registered_recipes[input][output] = n
|
||||||
|
|
||||||
|
local fallthrough = mcl_stonecutter.registered_recipes[output]
|
||||||
|
if fallthrough then
|
||||||
|
for o, c in pairs(fallthrough) do
|
||||||
|
mcl_stonecutter.register_recipe(input, o, c)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for i, recipes in pairs(mcl_stonecutter.registered_recipes) do
|
||||||
|
for name, c in pairs(recipes) do
|
||||||
|
if name == input then
|
||||||
|
mcl_stonecutter.register_recipe(i, output, c*n)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- formspecs
|
-- formspecs
|
||||||
|
@ -88,6 +107,7 @@ local function update_stonecutter_slots(pos, str)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
meta:set_string("formspec", show_stonecutter_formspec(nil))
|
meta:set_string("formspec", show_stonecutter_formspec(nil))
|
||||||
|
inv:set_stack("output", 1, "")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue