Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diggy-map patch #1032

Merged
merged 8 commits into from
Feb 15, 2020
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 21 additions & 21 deletions features/create_particles.lua
Original file line number Diff line number Diff line change
Expand Up @@ -114,68 +114,68 @@ local function scale_floor(count)
end

local on_play_particle = Token.register(function (params)
params.surface.create_entity(params.prototype)
params.surface.create_particle(params.prototype)
end)

local function play_particle_sequence(surface, sequences)
local create_entity = surface.create_entity
local create_particle = surface.create_particle
for i = 1, #sequences do
local sequence = sequences[i]
local frame = sequence.frame
if frame == 1 then
create_entity(sequence.prototype)
create_particle(sequence.prototype)
else
Task.set_timeout_in_ticks(frame, on_play_particle, {surface = surface, prototype = sequence.prototype})
end
end
end

---@param create_entity function a reference to a surface.create_entity
---@param create_particle function a reference to a surface.create_particle
---@param particle_count number particle count to spawn
---@param position Position
function CreateParticles.destroy_rock(create_entity, particle_count, position)
function CreateParticles.destroy_rock(create_particle, particle_count, position)
for _ = scale_floor(particle_count), 1, -1 do
settings.particles_spawned_buffer = settings.particles_spawned_buffer + 1
create_entity({
position = position,
create_particle({
name = 'stone-particle',
position = position,
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,
vertical_speed = random(12, 14) * 0.01,
frame_speed = 1,
})
end
end

---@param create_entity function a reference to a surface.create_entity
---@param create_particle function a reference to a surface.create_particle
---@param particle_count number particle count to spawn
---@param position Position
function CreateParticles.blood_explosion(create_entity, particle_count, position)
function CreateParticles.blood_explosion(create_particle, particle_count, position)
for _ = particle_count, 1, -1 do
create_entity({
position = position,
create_particle({
name = 'blood-particle',
position = position,
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,
vertical_speed = random(10, 12) * 0.01,
frame_speed = 1,
})
end
end

---@param create_entity function a reference to a surface.create_entity
---@param create_particle function a refrence to a surface.create_particle
---@param particle_count number particle count to spawn
---@param position Position
function CreateParticles.mine_rock(create_entity, particle_count, position)
function CreateParticles.mine_rock(create_particle, particle_count, position)
for _ = scale_floor(particle_count), 1, -1 do
settings.particles_spawned_buffer = settings.particles_spawned_buffer + 1
create_entity({
position = position,
create_particle({
name = 'stone-particle',
position = position,
movement = {random(-5, 5) * 0.01, random(-5, 5) * 0.01},
frame_speed = 1,
vertical_speed = random(8, 10) * 0.01,
height = random(5, 8) * 0.1,
vertical_speed = random(8, 10) * 0.01,
frame_speed = 1,
})
end
end
Expand Down
3 changes: 2 additions & 1 deletion map_gen/maps/diggy/feature/alien_spawner.lua
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ local rocks_to_find = Template.diggy_rocks
local do_alien_mining = Token.register(function(params)
local surface = params.surface
local create_entity = surface.create_entity
local create_particle = surface.create_particle
local find_non_colliding_position = surface.find_non_colliding_position

local rocks = surface.find_entities_filtered({area = params.clear_area, name = rocks_to_find})
Expand All @@ -76,7 +77,7 @@ local do_alien_mining = Token.register(function(params)
for rock_index = rock_count, 1, -1 do
local rock = rocks[rock_index]
raise_event(defines.events.on_entity_died, {entity = rock})
destroy_rock(create_entity, particle_count, rock.position)
destroy_rock(create_particle, particle_count, rock.position)
rock.destroy()
end
end
Expand Down
9 changes: 5 additions & 4 deletions map_gen/maps/diggy/feature/diggy_hole.lua
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ function DiggyHole.register(cfg)
end
diggy_hole(entity)
if event.cause then
destroy_rock(entity.surface.create_entity, 10, entity.position)
destroy_rock(entity.surface.create_particle, 10, entity.position)
end
end)

Expand Down Expand Up @@ -200,19 +200,20 @@ function DiggyHole.register(cfg)

local graphics_variation = entity.graphics_variation
local create_entity = entity.surface.create_entity
local create_particle = entity.surface.create_particle
local position = entity.position
local force = event.robot.force

if health < 1 then
raise_event(defines.events.on_entity_died, {entity = entity, force = force})
mine_rock(create_entity, 6, position)
mine_rock(create_particle, 6, position)
entity.destroy()
return
end
entity.destroy()

local rock = create_entity({name = name, position = position})
mine_rock(create_entity, 1, position)
mine_rock(create_particle, 1, position)
rock.graphics_variation = graphics_variation
rock.order_deconstruction(force)
rock.health = health
Expand All @@ -228,7 +229,7 @@ function DiggyHole.register(cfg)
event.buffer.clear()

diggy_hole(entity)
mine_rock(entity.surface.create_entity, 6, entity.position)
mine_rock(entity.surface.create_particle, 6, entity.position)
end)

Event.add(defines.events.on_robot_mined_tile, function (event)
Expand Down