From: Zefram Date: Sat, 9 Aug 2014 14:51:18 +0000 (+0100) Subject: Node breaker fixup for ones lacking pick slot X-Git-Url: http://81.2.79.47:8989/gitweb/?a=commitdiff_plain;h=a9866aa5d5593b68f279724befa031833b360e44;p=zefram%2Fminetest%2Fpipeworks.git Node breaker fixup for ones lacking pick slot This has been seen on Vanessa's server, and caused the wielding code to crash. --- diff --git a/wielder.lua b/wielder.lua index 6d92a23..a57471f 100644 --- a/wielder.lua +++ b/wielder.lua @@ -269,14 +269,18 @@ if pipeworks.enable_node_breaker then local inv = meta:get_inventory() -- Node breakers predating the visible pick slot -- may have been partially updated. This code - -- fully updates them. Originally, they had a - -- ghost pick in a "pick" inventory, no other - -- inventory, and no form. The partial update of - -- early with-form node breaker code gives them - -- "ghost_pick" and "main" inventories, but leaves - -- the old ghost pick in the "pick" inventory, - -- and doesn't add a form. First perform that - -- partial update. + -- fully updates them. Some have been observed + -- to have no pick slot at all; first add one. + if inv:get_size("pick") ~= 1 then + inv:set_size("pick", 1) + end + -- Originally, they had a ghost pick in a "pick" + -- inventory, no other inventory, and no form. + -- The partial update of early with-form node + -- breaker code gives them "ghost_pick" and "main" + -- inventories, but leaves the old ghost pick in + -- the "pick" inventory, and doesn't add a form. + -- First perform that partial update. if inv:get_size("ghost_pick") ~= 1 then inv:set_size("ghost_pick", 1) inv:set_size("main", 100)