Workbench: add more registration filters
This commit is contained in:
parent
01b8471bda
commit
fa15d1b7f5
@ -1,5 +1,6 @@
|
|||||||
local workbench = {}
|
local workbench = {}
|
||||||
screwdriver = screwdriver or {}
|
screwdriver = screwdriver or {}
|
||||||
|
local min, ceil = math.min, math.ceil
|
||||||
|
|
||||||
-- Nodes allowed to be cut.
|
-- Nodes allowed to be cut.
|
||||||
-- Only the regular, solid blocks without metas or explosivity can 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.allow_metadata_inventory_take and
|
||||||
not (def.groups.not_in_creative_inventory == 1) and
|
not (def.groups.not_in_creative_inventory == 1) and
|
||||||
not def.groups.wool 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.description ~= "" and
|
def.description ~= "" and
|
||||||
def.light_source == 0
|
def.light_source == 0
|
||||||
@ -30,8 +32,8 @@ workbench.custom_nodes_register = {
|
|||||||
|
|
||||||
setmetatable(nodes, {
|
setmetatable(nodes, {
|
||||||
__concat = function(t1, t2)
|
__concat = function(t1, t2)
|
||||||
for k in pairs(t2) do
|
for i=1, #t2 do
|
||||||
t1[#t1+1] = t2[k]
|
t1[#t1+1] = t2[i]
|
||||||
end
|
end
|
||||||
return t1
|
return t1
|
||||||
end
|
end
|
||||||
@ -78,7 +80,7 @@ function workbench:get_output(inv, input, name)
|
|||||||
|
|
||||||
local output = {}
|
local output = {}
|
||||||
for _, n in pairs(self.defs) do
|
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]
|
local item = name.."_"..n[1]
|
||||||
if not n[3] then item = "stairs:"..n[1].."_"..name:match(":(.*)") end
|
if not n[3] then item = "stairs:"..n[1].."_"..name:match(":(.*)") end
|
||||||
output[#output+1] = item.." "..count
|
output[#output+1] = item.." "..count
|
||||||
@ -214,7 +216,7 @@ function workbench.on_take(pos, listname, index, stack)
|
|||||||
inv:set_list("forms", {})
|
inv:set_list("forms", {})
|
||||||
end
|
end
|
||||||
elseif listname == "forms" then
|
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)
|
inv:set_stack("input", 1, input)
|
||||||
workbench:get_output(inv, input, input:get_name())
|
workbench:get_output(inv, input, input:get_name())
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user