]> git.lizzy.rs Git - xdecor.git/commitdiff
Workbench: add more registration filters
authorJP Guerrero <jeanpatrick.guerrero@gmail.com>
Thu, 1 Dec 2016 11:58:10 +0000 (12:58 +0100)
committerJP Guerrero <jeanpatrick.guerrero@gmail.com>
Thu, 1 Dec 2016 13:14:41 +0000 (14:14 +0100)
src/workbench.lua

index 29f12b9b8af707d85e82af3a5849fd8b2c4be1e5..1e89c3cb4603a2eda00d380abedb03180735c87e 100644 (file)
@@ -1,5 +1,6 @@
 local workbench = {}
 screwdriver = screwdriver or {}
+local min, ceil = math.min, math.ceil
 
 -- Nodes allowed to be cut.
 -- Only the regular, solid blocks without metas or explosivity can be cut.
@@ -14,7 +15,8 @@ for node, def in pairs(minetest.registered_nodes) do
           not def.allow_metadata_inventory_take and
           not (def.groups.not_in_creative_inventory == 1) and
           not def.groups.wool and
-          not def.description:find("Ore") and
+          not def.tiles[1]:find("default_mineral") and
+          not def.mesecons and
           def.description and
           def.description ~= "" and
           def.light_source == 0
@@ -30,8 +32,8 @@ workbench.custom_nodes_register = {
 
 setmetatable(nodes, {
        __concat = function(t1, t2)
-               for k in pairs(t2) do
-                       t1[#t1+1] = t2[k]
+               for i=1, #t2 do
+                       t1[#t1+1] = t2[i]
                end
                return t1
        end
@@ -78,7 +80,7 @@ function workbench:get_output(inv, input, name)
 
        local output = {}
        for _, n in pairs(self.defs) do
-               local count = math.min(n[2] * input:get_count(), input:get_stack_max())
+               local count = min(n[2] * input:get_count(), input:get_stack_max())
                local item = name.."_"..n[1]
                if not n[3] then item = "stairs:"..n[1].."_"..name:match(":(.*)") end
                output[#output+1] = item.." "..count
@@ -214,7 +216,7 @@ function workbench.on_take(pos, listname, index, stack)
                        inv:set_list("forms", {})
                end
        elseif listname == "forms" then
-               input:take_item(math.ceil(stack:get_count() / workbench.defs[index][2]))
+               input:take_item(ceil(stack:get_count() / workbench.defs[index][2]))
                inv:set_stack("input", 1, input)
                workbench:get_output(inv, input, input:get_name())
        end