mirror of
https://github.com/minetest-mods/moreblocks.git
synced 2024-09-27 06:40:29 +02:00
remove registering craft schemata w/ inventory managers, as it doesn't work correctly
This commit is contained in:
parent
1698c23ee8
commit
635f0af8e2
|
@ -6,85 +6,11 @@ end
|
||||||
|
|
||||||
local api = stairsplus.api
|
local api = stairsplus.api
|
||||||
|
|
||||||
i3.register_craft_type("stairsplus:craft_schema", {
|
|
||||||
description = "Stairs+ craft schema",
|
|
||||||
icon = "stairsplus_saw_button.png",
|
|
||||||
})
|
|
||||||
|
|
||||||
i3.register_craft_type("stairsplus:circular_saw", {
|
i3.register_craft_type("stairsplus:circular_saw", {
|
||||||
description = "Stairs+ circular saw",
|
description = "Stairs+ circular saw",
|
||||||
icon = "stairsplus_saw_button.png",
|
icon = "stairsplus_saw_button.png",
|
||||||
})
|
})
|
||||||
|
|
||||||
local function convert_schema_recipe_item(item)
|
|
||||||
if item == "" or item:match(":") then
|
|
||||||
return item
|
|
||||||
end
|
|
||||||
|
|
||||||
local name, count = item:match("^([^ ]+) (%d+)")
|
|
||||||
if not name then
|
|
||||||
name = item
|
|
||||||
end
|
|
||||||
|
|
||||||
count = tonumber(count)
|
|
||||||
|
|
||||||
if name == "node" then
|
|
||||||
name = "mapgen_stone"
|
|
||||||
if count then
|
|
||||||
return ("%s %s"):format(name, count)
|
|
||||||
else
|
|
||||||
return name
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if count then
|
|
||||||
return ("group:shape_%s %s"):format(name, count)
|
|
||||||
else
|
|
||||||
return ("group:shape_%s"):format(name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function on_register_craft_schema(schema)
|
|
||||||
local recipe = table.copy(schema)
|
|
||||||
|
|
||||||
recipe.output = convert_schema_recipe_item(recipe.output)
|
|
||||||
|
|
||||||
if recipe.replacements then
|
|
||||||
for _, replacement in ipairs(recipe.replacements) do
|
|
||||||
for i, item in ipairs(replacement) do
|
|
||||||
replacement[i] = convert_schema_recipe_item(item)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if recipe.type == "shapeless" then
|
|
||||||
for i, item in ipairs(recipe.recipe) do
|
|
||||||
recipe.recipe[i] = convert_schema_recipe_item(item)
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif recipe.type == "shaped" or recipe.type == nil then
|
|
||||||
local tmp = {}
|
|
||||||
for _, row in ipairs(recipe.recipe) do
|
|
||||||
for i, item in ipairs(row) do
|
|
||||||
table.insert(tmp, convert_schema_recipe_item(item))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
recipe.recipe = tmp
|
|
||||||
end
|
|
||||||
|
|
||||||
i3.register_craft({
|
|
||||||
type = "stairsplus:craft_schema",
|
|
||||||
result = recipe.output,
|
|
||||||
items = recipe.recipe,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, schema in ipairs(api.registered_recipe_schemas) do
|
|
||||||
on_register_craft_schema(schema)
|
|
||||||
end
|
|
||||||
|
|
||||||
api.register_on_register_craft_schema(on_register_craft_schema)
|
|
||||||
|
|
||||||
local function on_register_single(node, shaped_name)
|
local function on_register_single(node, shaped_name)
|
||||||
i3.register_craft({
|
i3.register_craft({
|
||||||
type = "stairsplus:circular_saw",
|
type = "stairsplus:circular_saw",
|
||||||
|
|
|
@ -6,15 +6,6 @@ end
|
||||||
|
|
||||||
local api = stairsplus.api
|
local api = stairsplus.api
|
||||||
|
|
||||||
-- TODO craft schema recipes don't show up correctly, which seems like a bug in unified_inventory
|
|
||||||
unified_inventory.register_craft_type("stairsplus:craft_schema", {
|
|
||||||
description = "Stairs+ craft schema",
|
|
||||||
icon = "stairsplus_saw_button.png",
|
|
||||||
width = 3,
|
|
||||||
height = 3,
|
|
||||||
uses_crafting_grid = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
unified_inventory.register_craft_type("stairsplus:circular_saw", {
|
unified_inventory.register_craft_type("stairsplus:circular_saw", {
|
||||||
description = "Stairs+ circular saw",
|
description = "Stairs+ circular saw",
|
||||||
icon = "stairsplus_saw_button.png",
|
icon = "stairsplus_saw_button.png",
|
||||||
|
@ -37,74 +28,6 @@ unified_inventory.register_category("stairsplus:cut_node", {
|
||||||
items = {}
|
items = {}
|
||||||
})
|
})
|
||||||
|
|
||||||
local function convert_schema_recipe_item(item)
|
|
||||||
if item == "" or item:match(":") then
|
|
||||||
return item
|
|
||||||
end
|
|
||||||
|
|
||||||
local name, count = item:match("^([^ ]+) (%d+)")
|
|
||||||
if not name then
|
|
||||||
name = item
|
|
||||||
end
|
|
||||||
|
|
||||||
count = tonumber(count)
|
|
||||||
|
|
||||||
if name == "node" then
|
|
||||||
name = "mapgen_stone"
|
|
||||||
if count then
|
|
||||||
return ("%s %s"):format(name, count)
|
|
||||||
else
|
|
||||||
return name
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if count then
|
|
||||||
return ("group:shape_%s %s"):format(name, count)
|
|
||||||
else
|
|
||||||
return ("group:shape_%s"):format(name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function on_register_craft_schema(schema)
|
|
||||||
local recipe = table.copy(schema)
|
|
||||||
|
|
||||||
recipe.output = convert_schema_recipe_item(recipe.output)
|
|
||||||
|
|
||||||
if recipe.replacements then
|
|
||||||
for _, replacement in ipairs(recipe.replacements) do
|
|
||||||
for i, item in ipairs(replacement) do
|
|
||||||
replacement[i] = convert_schema_recipe_item(item)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if recipe.type == "shapeless" then
|
|
||||||
for i, item in ipairs(recipe.recipe) do
|
|
||||||
recipe.recipe[i] = convert_schema_recipe_item(item)
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif recipe.type == "shaped" or recipe.type == nil then
|
|
||||||
for _, row in ipairs(recipe.recipe) do
|
|
||||||
for i, item in ipairs(row) do
|
|
||||||
row[i] = convert_schema_recipe_item(item)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
unified_inventory.register_craft({
|
|
||||||
output = recipe.output,
|
|
||||||
type = "stairsplus:craft_schema",
|
|
||||||
items = recipe.recipe,
|
|
||||||
width = 3,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, schema in ipairs(api.registered_recipe_schemas) do
|
|
||||||
on_register_craft_schema(schema)
|
|
||||||
end
|
|
||||||
|
|
||||||
api.register_on_register_craft_schema(on_register_craft_schema)
|
|
||||||
|
|
||||||
local function on_register_single(node, shaped_name)
|
local function on_register_single(node, shaped_name)
|
||||||
unified_inventory.register_craft({
|
unified_inventory.register_craft({
|
||||||
output = shaped_name,
|
output = shaped_name,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user