extends Node func _ready() -> void: var sheet := Image.create(1280,1080,false,Image.FORMAT_RGBA8) var progress: Resource = GameState.captain.expedition for biome in 6: var profile: Dictionary = preload("res://scripts/planets/planet_profiles.gd").generate(99,biome,"Pogoda / biom %d" % (biome+1)) profile.temperature = 75 if biome == 4 else (-35 if biome == 5 else 20) progress.lander_hp = 100 assert(progress.begin_visit(profile)) progress.visit_seed = 200+biome var surface := Control.new() surface.set_script(preload("res://scripts/planets/surface_screen.gd")) surface.captain = GameState.captain surface.progress = progress add_child(surface) surface.set_process(false) surface.set_physics_process(false) surface.weather.set_process(false) surface.flight_effects.set_process(false) surface.weather.intensity = 0.75 surface.weather.target_intensity = 0.75 assert(surface.weather._biome == biome) assert(surface.weather.z_index > surface.lander.z_index) assert(surface.flight_effects.z_index < surface.lander.z_index) Input.action_press("ship_thrust") for frame in 240: surface.weather._process(1.0/60) surface.flight_effects._process(1.0/60) assert(surface.weather._particles.size() > 0) assert(surface.weather._particles.size() <= surface.weather.LIMIT) assert(surface.flight_effects._particles.size() > 0) assert(surface.flight_effects._particles.size() <= surface.flight_effects.LIMIT) assert(surface.flight_effects._shadow.texture == surface.lander.texture) for frame in 5: await get_tree().process_frame await RenderingServer.frame_post_draw var image: Image = get_viewport().get_texture().get_image() assert(image.save_png("res://artifacts/weather_biome_%d.png" % biome) == OK) image.convert(Image.FORMAT_RGBA8) image.resize(640,360,Image.INTERPOLATE_LANCZOS) sheet.blit_rect(image,Rect2i(0,0,640,360),Vector2i(biome%2*640,biome/2*360)) Input.action_release("ship_thrust") for frame in 180: surface.flight_effects._process(1.0/60) assert(surface.flight_effects._particles.is_empty(),"Ground wash must expire after stopping engines") if biome == 5: assert(surface.flight_effects.surface_kind(Vector2.ZERO) == "snow") progress.finish_visit(GameState.captain,false) surface.queue_free() await get_tree().process_frame await get_tree().process_frame assert(sheet.save_png("res://artifacts/weather_biomes_review.png") == OK) print("SURFACE WEATHER PASS: six biomes, layered shadow/weather, bounded particles, engine emission and expiry, snow wash") get_tree().quit()