From cd3f25030304105bb890bcce47d8d44f4dc2fd15 Mon Sep 17 00:00:00 2001 From: loosewheel <76670709+loosewheel@users.noreply.github.com> Date: Tue, 9 Aug 2022 20:53:32 +1000 Subject: [PATCH] Add files via upload --- change.log | 4 ++++ crafter.lua | 22 +++++++++++++++++++++- init.lua | 2 +- readme.txt | 2 +- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/change.log b/change.log index 1517452..985b1ef 100644 --- a/change.log +++ b/change.log @@ -184,3 +184,7 @@ v0.1.30 v0.1.31 * Added crafter. + + +v0.1.32 +* Fixed crafter not return replacement items properly. diff --git a/crafter.lua b/crafter.lua index 08b5c54..ab989e0 100644 --- a/crafter.lua +++ b/crafter.lua @@ -498,6 +498,20 @@ end +local function place_in_output (pos, stack) + local meta = minetest.get_meta (pos) + + if meta then + local inv = meta:get_inventory () + + if inv then + inv:add_item ("output", stack) + end + end +end + + + -- items is list of recipe grid local function craft (pos, items, recipe, qty, inv_list) local output, leftover = minetest.get_craft_result (recipe) @@ -584,13 +598,19 @@ local function craft (pos, items, recipe, qty, inv_list) count = 0 end - return_input_items (over) + if not return_input_items (over) then + place_in_output (pos, ItemStack (string.format ("%s %d", over.name, count))) + end if count < 1 then break end end end + + if count > 0 then + place_in_output (pos, ItemStack (string.format ("%s %d", leftover.items[i]:get_name (), count))) + end end end diff --git a/init.lua b/init.lua index db15c0d..bc8c077 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,4 @@ -local version = "0.1.31" +local version = "0.1.32" local mod_storage = minetest.get_mod_storage () diff --git a/readme.txt b/readme.txt index bc1ab98..37ce127 100644 --- a/readme.txt +++ b/readme.txt @@ -13,7 +13,7 @@ CC BY-SA 3.0 Version ======= -0.1.31 +0.1.32 Minetest Version