extends Node2D # Preview, not a test (underscore prefix keeps it out of run_tests.sh). # Renders the world map with buildings placed and an extractor built, so the # issue #11 building markers and the issue #9 extractor badge can actually be # LOOKED at. --headless draws no pixels, so no headless test can tell whether # a marker is visible - see tests/screenshot.sh. # # bash tests/screenshot.sh res://tests/_marker_preview.tscn /tmp/map.png 20 720x1280 func _ready() -> void: GameState.buildings.clear() GameState.extractors.clear() GameState.explored_chunks.clear() # Near the origin, where the fleet starts, so everything lands on screen. GameState.add_building(GameState.BUILDING_MOTHERSHIP, Vector2(900.0, -700.0)) GameState.add_building(GameState.BUILDING_SHIP_CRAFTER, Vector2(-1100.0, 300.0)) GameState.add_building(GameState.BUILDING_COMMAND_CENTER, Vector2(400.0, 1200.0)) # Reveal a patch of map, and put an extractor on whichever planet is # nearest the origin so its badge is in frame too. var best: Vector2i = Vector2i.ZERO var best_distance: int = 1 << 30 for x in range(-6, 7): for y in range(-6, 7): var chunk: Vector2i = Vector2i(x, y) GameState.explored_chunks[chunk] = true if WorldGen.has_planet_at_chunk(chunk): var d: int = absi(x) + absi(y) if d < best_distance: best_distance = d best = chunk if best_distance < (1 << 30): var data: Dictionary = WorldGen.planet_data_at_chunk(best) GameState.add_extractor(data.name, WorldGen.chunk_origin(best) + data.local_pos) print("extractor on '%s' at chunk %s" % [data.name, best]) var main: Node = load("res://world/Main.tscn").instantiate() add_child(main) # open_map(), not `visible = true` - opening also recentres the view on # the fleet, and without that the map is drawn from its own origin in the # corner of the screen with everything near the fleet cropped off. main.get_node("UI/WorldMap").open_map()