forked from luanti-org/minetest_game
		
	TNT: Fix multiple explosions erasing drops
Any second explosion near a first TNT explosion will punch all entities found nearby, including item drops. This causes the item pickup code to think the item was picked up, but by a `nil` player, thus removing the item. We query for the immortal entity group, and if the item is in the immortal group, do not punch the item.
This commit is contained in:
		| @@ -160,10 +160,12 @@ local function entity_physics(pos, radius) | ||||
| 			local obj_vel = obj:getvelocity() | ||||
| 			obj:setvelocity(calc_velocity(pos, obj_pos, | ||||
| 					obj_vel, radius * 10)) | ||||
| 			obj:punch(obj, 1.0, { | ||||
| 				full_punch_interval = 1.0, | ||||
| 				damage_groups = {fleshy = damage}, | ||||
| 			}, nil) | ||||
| 			if not obj:get_armor_groups().immortal then | ||||
| 				obj:punch(obj, 1.0, { | ||||
| 					full_punch_interval = 1.0, | ||||
| 					damage_groups = {fleshy = damage}, | ||||
| 				}, nil) | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user