Randoloot/tests/previews/planet_preview.gd
2026-10-25 12:34:56 +01:00

69 lines
3.1 KiB
GDScript

extends Node
func _ready() -> void:
GameState.system_seed = 8428159
var game := preload("res://scenes/game/game.tscn").instantiate()
add_child(game)
await get_tree().process_frame
var manager := game.get_node("PlanetExpeditions")
for enemy in get_tree().get_nodes_in_group("enemies"):
enemy.position = Vector2(9000,9000)
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/planet_hud.png")
manager.open_freighter()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/freighter_hangar.png")
manager.screen._tab = "workshop"
manager.screen._refresh()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/freighter_workshop.png")
manager._leave()
GameState.captain.expedition.lander_hp = 100
game.player.position = game.protected_planet.position
await get_tree().process_frame
manager._process(0)
game.player.landing_combat_lock = 0
manager.land_nearby()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/planet_surface.png")
var screen: Control = manager.screen
screen.lander.position = screen.world.data.pois[0].position
screen.camera.position = screen.lander.position
screen.camera.reset_smoothing()
screen._poi = screen.world.data.pois[0]
screen._show_poi()
await get_tree().process_frame
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/planet_poi.png")
GameState.captain.expedition.damage(100)
screen._attempt()
await get_tree().create_timer(3.0,true).timeout
await RenderingServer.frame_post_draw
get_viewport().get_texture().get_image().save_png("res://artifacts/planet_lander_destruction.png")
await screen.finished
assert(not get_tree().paused and not GameState.captain.expedition.last_result.success)
var sheet := Image.create(1024,768,false,Image.FORMAT_RGBA8)
sheet.fill(Color("#16232a"))
var keys := ["breathing","suit","sidearm","lander","tree","mountain","mine","ruins","grass","freighter"]
for index in keys.size():
var image: Image = load("res://assets/planets/%s.png" % keys[index]).get_image()
if image.is_compressed(): image.decompress()
image.convert(Image.FORMAT_RGBA8)
image.resize(220,220,Image.INTERPOLATE_LANCZOS)
sheet.blend_rect(image,Rect2i(0,0,220,220),Vector2i(index%4*256,index/4*256))
sheet.save_png("res://artifacts/planet_asset_sheet.png")
var planets := Image.create(1250,750,false,Image.FORMAT_RGBA8)
planets.fill(Color("#08111a"))
for index in 15:
var image: Image = preload("res://scripts/planets/planet_profiles.gd").earthlike_textures()[index].get_image()
if image.is_compressed(): image.decompress()
image.convert(Image.FORMAT_RGBA8)
image.resize(240,240,Image.INTERPOLATE_LANCZOS)
planets.blend_rect(image,Rect2i(0,0,240,240),Vector2i(index%5*250,index/5*250))
planets.save_png("res://artifacts/earthlike_review.png")
print("PLANET PREVIEWS CAPTURED")
get_tree().quit()