A rare, deterministically-seeded landable body yielding a fourth resource, dark matter, obtainable only through an extractor - never a surface pickup. Reuses every existing generic system (resource/planet definitions, surface profiles, extractor/transporter pipeline) with no type-switch branching. Also fixes a latent conquest-gating gap: a surface profile with no authored PlanetSetup (like the black hole's "void") never registered capture points at all, permanently blocking extractor placement. register_capture_points() now treats zero required points as vacuously conquered, and PlanetSurfaceController registers that zero-point state explicitly when no setup exists.
23 lines
742 B
GDScript
23 lines
742 B
GDScript
extends Node2D
|
|
|
|
# Preview, not a test - a black hole planet as seen in space, next to a
|
|
# rocky planet for scale/contrast.
|
|
#
|
|
# bash tests/screenshot.sh res://tests/_black_hole_space_preview.tscn /tmp/black_hole.png 15 720x1280
|
|
|
|
|
|
func _ready() -> void:
|
|
GameState.extractors.clear()
|
|
GameState.buildings.clear()
|
|
|
|
_spawn("Event Zero", "black_hole", Vector2(360.0, 420.0), 12345)
|
|
_spawn("Dustworn", "rocky", Vector2(360.0, 950.0), 4242)
|
|
|
|
|
|
func _spawn(planet_name: String, definition_id: String, at: Vector2, shape_seed: int) -> void:
|
|
var planet: Node2D = load("res://Planet.tscn").instantiate()
|
|
planet.planet_name = planet_name
|
|
planet.definition_id = definition_id
|
|
planet.shape_seed = shape_seed
|
|
planet.position = at
|
|
add_child(planet)
|