Added ExplosionParticles
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
class_name ExplosionParticles
|
||||
extends Node2D
|
||||
|
||||
|
||||
signal finished
|
||||
|
||||
|
||||
@export var process_material: ParticleProcessMaterial
|
||||
@export_range(0, 1) var amount_ratio: float = 1
|
||||
|
||||
|
||||
@onready var particles_huge : GPUParticles2D = $ParticlesHuge
|
||||
@onready var particles_large : GPUParticles2D = $ParticlesLarge
|
||||
@onready var particles_medium : GPUParticles2D = $ParticlesMedium
|
||||
|
||||
|
||||
var _emiting_count := 0
|
||||
|
||||
|
||||
var emitting : bool = false:
|
||||
set(value):
|
||||
emitting = value
|
||||
if particles_huge: particles_huge.emitting = emitting; _emiting_count += 1
|
||||
if particles_large: particles_large.emitting = emitting; _emiting_count += 1
|
||||
if particles_medium: particles_medium.emitting = emitting; _emiting_count += 1
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
particles_huge.amount_ratio = amount_ratio
|
||||
particles_large.amount_ratio = amount_ratio
|
||||
particles_medium.amount_ratio = amount_ratio
|
||||
particles_huge.process_material = process_material
|
||||
particles_large.process_material = process_material
|
||||
particles_medium.process_material = process_material
|
||||
|
||||
|
||||
func _on_particles_finished() -> void:
|
||||
_emiting_count -= 1
|
||||
if _emiting_count == 0:
|
||||
finished.emit()
|
||||
Reference in New Issue
Block a user