forked from luanti-org/minetest_game
		
	Fix crash if bones punched by non-player (#3146)
This commit is contained in:
		| @@ -16,6 +16,27 @@ local function is_owner(pos, name) | ||||
| 	return false | ||||
| end | ||||
|  | ||||
| local function drop(pos, itemstack) | ||||
| 	local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count())) | ||||
| 	if obj then | ||||
| 		obj:set_velocity({ | ||||
| 			x = math.random(-10, 10) / 9, | ||||
| 			y = 5, | ||||
| 			z = math.random(-10, 10) / 9, | ||||
| 		}) | ||||
| 	end | ||||
| end | ||||
|  | ||||
| local function drop_contents(pos) | ||||
| 	local inv = minetest.get_meta(pos):get_inventory() | ||||
|  | ||||
| 	for i = 1, inv:get_size("main") do | ||||
| 		local stk = inv:get_stack("main", i) | ||||
| 		drop(pos, stk) | ||||
| 	end | ||||
| 	minetest.remove_node(pos) | ||||
| end | ||||
|  | ||||
| local bones_formspec = | ||||
| 	"size[8,9]" .. | ||||
| 	"list[current_name;main;0,0.3;8,4;]" .. | ||||
| @@ -87,6 +108,11 @@ local bones_def = { | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		if not player:is_player() then | ||||
| 			drop_contents(pos) | ||||
| 			return | ||||
| 		end | ||||
|  | ||||
| 		if minetest.get_meta(pos):get_string("infotext") == "" then | ||||
| 			return | ||||
| 		end | ||||
| @@ -171,17 +197,6 @@ local function may_replace(pos, player) | ||||
| 	return node_definition.buildable_to | ||||
| end | ||||
|  | ||||
| local drop = function(pos, itemstack) | ||||
| 	local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count())) | ||||
| 	if obj then | ||||
| 		obj:set_velocity({ | ||||
| 			x = math.random(-10, 10) / 9, | ||||
| 			y = 5, | ||||
| 			z = math.random(-10, 10) / 9, | ||||
| 		}) | ||||
| 	end | ||||
| end | ||||
|  | ||||
| local player_inventory_lists = { "main", "craft" } | ||||
| bones.player_inventory_lists = player_inventory_lists | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user