From: tenplus1 Date: Thu, 14 May 2015 10:35:24 +0000 (+0100) Subject: Don't crash if an item gets dropped into unloaded space X-Git-Tag: 0.4.13~276 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=be18bd6a8cafdc2c452da39dd8cc428d8dbf62e6;p=oweals%2Fminetest.git Don't crash if an item gets dropped into unloaded space Items dropped into unloaded map space will crash game so here's a fix... --- diff --git a/builtin/game/item_entity.lua b/builtin/game/item_entity.lua index d848fd855..6425a10aa 100644 --- a/builtin/game/item_entity.lua +++ b/builtin/game/item_entity.lua @@ -155,7 +155,17 @@ core.register_entity(":__builtin:item", { end local p = self.object:getpos() p.y = p.y - 0.5 - local nn = core.get_node(p).name + local node = core.get_node_or_nil(p) + local in_unloaded = (node == nil) + if in_unloaded then + -- Don't infinetly fall into unloaded map + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.object:setacceleration({x = 0, y = 0, z = 0}) + self.physical_state = false + self.object:set_properties({physical = false}) + return + end + local nn = node.name -- If node is not registered or node is walkably solid and resting on nodebox local v = self.object:getvelocity() if not core.registered_nodes[nn] or core.registered_nodes[nn].walkable and v.y == 0 then