From: Auke Kok Date: Wed, 23 Mar 2016 04:25:44 +0000 (-0700) Subject: TNT: Limit amount of stacks ejected. X-Git-Tag: 0.4.14~41 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8c801529df08fcf01752e4906a517019f5b581af;p=oweals%2Fminetest_game.git TNT: Limit amount of stacks ejected. We apply a log scale to the size of the stacks ejected, so that in larger explosions we are getting larger stacks. For normal r=3 explosions, this gives stack sizes ~6-7 or so, but for r=10 explosions it could end up giving stacks of 25+.V --- diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 4010f987..1f28ee50 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -49,8 +49,9 @@ local function eject_drops(drops, pos, radius) local drop_pos = vector.new(pos) for _, item in pairs(drops) do local count = item:get_count() + local take_est = math.log(count * count) + math.random(0,4) - 2 while count > 0 do - local take = math.min(math.random(2,5), + local take = math.min(take_est, item:get_count(), item:get_stack_max()) rand_pos(pos, drop_pos, radius)