53 lines
2.5 KiB
GDScript
53 lines
2.5 KiB
GDScript
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()
|