Implement playable Mac client and rendering validation

This commit is contained in:
shen
2026-09-11 14:58:22 +08:00
parent 1ab68bd06e
commit 374d4165d8
233 changed files with 6546 additions and 284 deletions
+39
View File
@@ -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()