From 1dfc09ee86bd2cb78e4912d2cb151571605589b7 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Fri, 13 Mar 2015 18:33:26 +0100 Subject: [PATCH] Updated markers' mod - Fixed crash whith clients' button --- mods/markers/init.lua | 8 +++++++- mods/markers/land_title_register.lua | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/mods/markers/init.lua b/mods/markers/init.lua index 1a1408e0..43f61f71 100755 --- a/mods/markers/init.lua +++ b/mods/markers/init.lua @@ -336,6 +336,9 @@ markers.get_marker_formspec = function(player, pos, error_msg) if(not( ((n-i) == opposite ) or not(markers.positions[ name ][ n-i ] ) + or not( coords ) or not( coords[1]) or not( coords[2]) + or not(markers.positions[ name ] ) + or not(markers.positions[ name ][ n-i ] ) or ( markers.positions[ name ][ n-i ].x == coords[ 1 ].x and markers.positions[ name ][ n-i ].z == coords[ 2 ].z ) or ( markers.positions[ name ][ n-i ].x == coords[ 2 ].x @@ -349,6 +352,9 @@ markers.get_marker_formspec = function(player, pos, error_msg) -- save data meta:set_string( 'coords', minetest.serialize( coords ) ); end + if( not( coords ) or #coords < 2 or not( coords[1] ) or not( coords[2] )) then + return formspec_info.."Error: The last 4 markers\nyou placed do not form\na rectangle.]"; + end -- the coordinates are set; we may present an input form now @@ -571,7 +577,7 @@ minetest.register_node("markers:mark", { drawtype = "nodebox", paramtype = "light", paramtype2 = "facedir", - groups = {snappy=2,choppy=2,dig_immediate=3}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=1}, --fixed on both buttons dig client crash light_source = 1, node_box = { type = "fixed", diff --git a/mods/markers/land_title_register.lua b/mods/markers/land_title_register.lua index 9c456a4a..4156acbc 100755 --- a/mods/markers/land_title_register.lua +++ b/mods/markers/land_title_register.lua @@ -29,7 +29,7 @@ minetest.register_tool( "markers:land_title_register", local name = placer:get_player_name(); -- the position is what we're actually looking for - local pos = minetest.get_pointed_thing_position( pointed_thing, 0 ); --under ); + local pos = minetest.get_pointed_thing_position( pointed_thing, false ); -- not above if( not( pos ) or not( pos.x )) then minetest.chat_send_player( name, "Position not found."); @@ -50,7 +50,7 @@ minetest.register_tool( "markers:land_title_register", end local name = placer:get_player_name(); - local pos = minetest.get_pointed_thing_position( pointed_thing, under ); + local pos = minetest.get_pointed_thing_position( pointed_thing, false ); -- not above if( not( pos ) or not( pos.x )) then minetest.chat_send_player( name, "Position not found.");