100 lines
2.9 KiB
Lua
100 lines
2.9 KiB
Lua
local random = math.random
|
|
local ceil = math.ceil
|
|
local floor = math.floor
|
|
|
|
|
|
function create_stone_particles(surface, count, position,height_mp)
|
|
if not height_mp then height_mp=1 end
|
|
for x=1,count do
|
|
surface.create_particle{
|
|
position = position,
|
|
name = 'stone-particle-medium',
|
|
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
|
|
frame_speed = 1,
|
|
vertical_speed = random(12, 14) * 0.01,
|
|
height = random(9, 11) * 0.1 * height_mp,
|
|
}
|
|
end
|
|
end
|
|
|
|
|
|
function create_blood_particles(surface, count, position,height_mp)
|
|
if not height_mp then height_mp=1 end
|
|
for x=1,count do
|
|
surface.create_particle({
|
|
position = position,
|
|
name = 'blood-particle',
|
|
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
|
|
frame_speed = 1,
|
|
vertical_speed = random(10, 12) * 0.01,
|
|
height = random(5, 15) * 0.1 * height_mp,
|
|
})
|
|
end
|
|
end
|
|
|
|
|
|
function create_water_particles(surface, count, position,height_mp)
|
|
if not height_mp then height_mp=1 end
|
|
for x=1,count do
|
|
surface.create_particle({
|
|
position = position,
|
|
name = 'water-particle',
|
|
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
|
|
frame_speed = 1,
|
|
vertical_speed = random(10, 12) * 0.01,
|
|
height = random(5, 15) * 0.1 *height_mp,
|
|
})
|
|
end
|
|
end
|
|
|
|
|
|
function create_remnants_particles(surface, count, position,height_mp)
|
|
if not height_mp then height_mp=1 end
|
|
for x=1,count do
|
|
surface.create_particle({
|
|
position = position,
|
|
name = 'explosion-remnants-particle',
|
|
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
|
|
frame_speed = 1,
|
|
vertical_speed = random(10, 12) * 0.01,
|
|
height = random(5, 15) * 0.1 * height_mp,
|
|
})
|
|
end
|
|
end
|
|
|
|
|
|
--
|
|
local function create_ceiling_prototype(particle, x, y,height)
|
|
if not height then height=3 end
|
|
return {
|
|
name = particle,
|
|
position = {x = x + random(0, 1), y = y + random(0, 1)},
|
|
movement = {random(-5, 5) * 0.002, random(-5, 5) * 0.002},
|
|
frame_speed = 1,
|
|
vertical_speed = 0,
|
|
height = height
|
|
}
|
|
end
|
|
|
|
|
|
function create_ceiling_drops(surface, position,count)
|
|
local x = position.x
|
|
local y = position.y
|
|
local smoke_scale = ceil(count/2)
|
|
local stone_scale = count
|
|
for i = 1, smoke_scale do
|
|
surface.create_particle( create_ceiling_prototype('explosion-remnants-particle', x, y))
|
|
end
|
|
for i = smoke_scale + 1, smoke_scale + stone_scale do
|
|
surface.create_particle( create_ceiling_prototype('stone-particle', x, y))
|
|
end
|
|
end
|
|
|
|
function create_water_drops(surface, position,count,height)
|
|
local x = position.x
|
|
local y = position.y
|
|
for i = 1, count do
|
|
surface.create_particle( create_ceiling_prototype('water-particle', x, y,height))
|
|
end
|
|
end
|