Files
Corupture/data/buildings/basic/harvester/harvester_particles.gd

38 lines
964 B
GDScript

extends Node2D
var _pickup
var _distance
var _direction
var _emitters: Array[CPUParticles2D] = []
func init(distance: float, direction: Vector2, res: GameResource) -> void:
_distance = distance
_direction = direction
_pickup = res
func _ready() -> void:
if _emitters.size() < 10:
var particles = CPUParticles2D.new()
particles.amount = 8
particles.spread = 8
particles.material = ParticleProcessMaterial.new()
particles.radial_accel_max = _distance * -2.5
particles.radial_accel_min = _distance * -2.55
particles.gravity = Vector2.ZERO
particles.direction = _direction
particles.initial_velocity_max = _distance * 2.25
particles.initial_velocity_min = _distance * 2.2
particles.lifetime = 1.65
add_child(particles)
_emitters.append(particles)
else:
for i in range(1, _emitters.size()):
_emitters[i].queue_free()
_emitters.resize(1)
ResourceManager.pickup(_pickup)
func _on_particles_timer_timeout() -> void:
_ready()