Implement playable Mac client and rendering validation
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# Export-template reproducer: no maps, models, assets or network required.
|
||||
extends Node
|
||||
var held: Array[ParticleProcessMaterial] = []
|
||||
func _ready() -> void:
|
||||
call_deferred("run")
|
||||
func run() -> void:
|
||||
var mode := OS.get_environment("MT_PARTICLE_EXIT_CASE")
|
||||
for i in 8:
|
||||
make_particle(mode, i)
|
||||
for i in 5: await get_tree().process_frame
|
||||
held.clear()
|
||||
for i in 5: await get_tree().process_frame
|
||||
print("PARTICLE_EXIT PASS case=", mode)
|
||||
get_tree().quit()
|
||||
func make_particle(mode: String, index: int) -> void:
|
||||
if mode == "empty": return
|
||||
var material := ParticleProcessMaterial.new()
|
||||
if mode in ["gravity", "scale", "shape", "held", "restored"]:
|
||||
if mode == "gravity": material.gravity = Vector3(0, -1, 0)
|
||||
if mode == "scale": material.scale_min = 0.5
|
||||
if mode in ["shape", "held", "restored"]: material.emission_shape = index % 3
|
||||
material.get_rid()
|
||||
if mode == "restored":
|
||||
material.emission_shape = ParticleProcessMaterial.EMISSION_SHAPE_POINT
|
||||
material.get_rid()
|
||||
if mode == "held": held.append(material)
|
||||
return
|
||||
if mode == "primed": material.get_rid()
|
||||
if mode != "default":
|
||||
material.gravity = Vector3(0, -1, 0)
|
||||
material.emission_shape = index % 3
|
||||
material.scale_min = 0.5
|
||||
material.get_rid()
|
||||
if mode == "emitter":
|
||||
var emitter := GPUParticles3D.new()
|
||||
emitter.emitting = false
|
||||
emitter.process_material = material
|
||||
add_child(emitter)
|
||||
emitter.free()
|
||||
Reference in New Issue
Block a user