minetest-mods / technic

Technic mod for Minetest
Other
145 stars 155 forks source link

Does not work with 5.3.0-dev due to strict type checking #553

Closed VanessaE closed 4 years ago

VanessaE commented 4 years ago

Technic injects items into a pipeworks tube using strings for the item count. When this gets to Minetest's item entity code, it barfs because it requires a number, not a string.

Change the = "1" in register/common.lua line 77 to = 1 (that is, drop the quotation marks from around the value). Also, make this same change to other/injector.lua line 19.

There may be other similar errors, but these were the ones on my radar. This patch should fix them both:

diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua
index 193d051..c192614 100644
--- a/technic/machines/other/injector.lua
+++ b/technic/machines/other/injector.lua
@@ -16,7 +16,7 @@ local function inject_items (pos)
                                if stack then
                                local item0=stack:to_table()
                                if item0 then
-                                       item0["count"] = "1"
+                                       item0["count"] = 1
                                        technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0)
                                        stack:take_item(1)
                                        inv:set_stack("main", i, stack)
diff --git a/technic/machines/register/common.lua b/technic/machines/register/common.lua
index 38354f9..9d88702 100644
--- a/technic/machines/register/common.lua
+++ b/technic/machines/register/common.lua
@@ -74,7 +74,7 @@ function technic.send_items(pos, x_velocity, z_velocity, output_name)
                if stack then
                        local item0 = stack:to_table()
                        if item0 then
-                               item0["count"] = "1"
+                               item0["count"] = 1
                                technic.tube_inject_item(pos, pos, vector.new(x_velocity, 0, z_velocity), item0)
                                stack:take_item(1)
                                inv:set_stack(output_name, i, stack)
VanessaE commented 4 years ago

Why is this still waiting to be fixed?

SmallJoker commented 4 years ago

@VanessaE Because I barely check issues.

SmallJoker commented 4 years ago

befe3ec