From 635f0af8e2e14c44dacf67468fc18eb484777d40 Mon Sep 17 00:00:00 2001 From: flux <25628292+fluxionary@users.noreply.github.com> Date: Fri, 16 Sep 2022 09:21:44 -0700 Subject: [PATCH] remove registering craft schemata w/ inventory managers, as it doesn't work correctly --- stairsplus/compat/i3.lua | 74 ------------------------ stairsplus/compat/unified_inventory.lua | 77 ------------------------- 2 files changed, 151 deletions(-) diff --git a/stairsplus/compat/i3.lua b/stairsplus/compat/i3.lua index 75f475e..422e1f9 100644 --- a/stairsplus/compat/i3.lua +++ b/stairsplus/compat/i3.lua @@ -6,85 +6,11 @@ end 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", { description = "Stairs+ circular saw", 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) i3.register_craft({ type = "stairsplus:circular_saw", diff --git a/stairsplus/compat/unified_inventory.lua b/stairsplus/compat/unified_inventory.lua index c7b3e86..b38d209 100644 --- a/stairsplus/compat/unified_inventory.lua +++ b/stairsplus/compat/unified_inventory.lua @@ -6,15 +6,6 @@ end 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", { description = "Stairs+ circular saw", icon = "stairsplus_saw_button.png", @@ -37,74 +28,6 @@ unified_inventory.register_category("stairsplus:cut_node", { 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) unified_inventory.register_craft({ output = shaped_name,