18 lines
560 B
GDScript
18 lines
560 B
GDScript
extends Node
|
|
var refs: Array[WeakRef] = []
|
|
func _ready() -> void: call_deferred("run")
|
|
func run() -> void:
|
|
for i in 8: create_material(i)
|
|
for i in 10: await get_tree().process_frame
|
|
RenderingServer.force_sync()
|
|
var alive := 0
|
|
for reference in refs:
|
|
if reference.get_ref() != null: alive += 1
|
|
print("ISOLATED_PARTICLE_EXIT alive=", alive)
|
|
get_tree().quit(1 if alive else 0)
|
|
func create_material(index: int) -> void:
|
|
var material := ParticleProcessMaterial.new()
|
|
material.emission_shape = index % 3
|
|
material.get_rid()
|
|
refs.append(weakref(material))
|