diff --git a/features/create_particles.lua b/features/create_particles.lua index b0023cbcc..74e8e1eab 100644 --- a/features/create_particles.lua +++ b/features/create_particles.lua @@ -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 diff --git a/map_gen/maps/diggy/feature/alien_spawner.lua b/map_gen/maps/diggy/feature/alien_spawner.lua index 6259ffc02..5e6b34717 100644 --- a/map_gen/maps/diggy/feature/alien_spawner.lua +++ b/map_gen/maps/diggy/feature/alien_spawner.lua @@ -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}) @@ -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 diff --git a/map_gen/maps/diggy/feature/diggy_hole.lua b/map_gen/maps/diggy/feature/diggy_hole.lua index 17d2b9d42..5e3a8e839 100644 --- a/map_gen/maps/diggy/feature/diggy_hole.lua +++ b/map_gen/maps/diggy/feature/diggy_hole.lua @@ -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) @@ -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 @@ -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) diff --git a/map_gen/shared/hail_hydra.lua b/map_gen/shared/hail_hydra.lua index 29481978e..61e0ba4db 100644 --- a/map_gen/shared/hail_hydra.lua +++ b/map_gen/shared/hail_hydra.lua @@ -94,6 +94,7 @@ local on_died = local cause = event.cause local surface = entity.surface local create_entity = surface.create_entity + local create_particle = surface.create_particle local find_non_colliding_position = surface.find_non_colliding_position local command = create_attack_command(position, cause) @@ -136,7 +137,7 @@ local on_died = particle_count = amount * 15 end - CreateParticles.blood_explosion(create_entity, particle_count, position) + CreateParticles.blood_explosion(create_particle, particle_count, position) for _ = amount, 1, -1 do position = find_non_colliding_position(hydra_spawn, position, 2, 0.4) or position