extends Control var world: Node2D var lander: Sprite2D var _refresh_time := 0.0 func _ready() -> void: custom_minimum_size = Vector2(160, 160) clip_contents = true mouse_filter = Control.MOUSE_FILTER_IGNORE func _process(delta: float) -> void: _refresh_time += delta if _refresh_time >= 1.0 / 15.0: _refresh_time = 0 queue_redraw() func _draw() -> void: if not is_instance_valid(world) or world.terrain == null: return draw_texture_rect(world.terrain, Rect2(Vector2.ZERO, size), false, Color(0.75, 0.85, 0.8)) draw_rect(Rect2(Vector2.ZERO, size), Color("73b7b1"), false, 1) var total: float = preload("res://scripts/planets/surface_generator.gd").WORLD_SIZE for poi in world.data.pois: if poi.discovered: var at: Vector2 = (poi.position / total + Vector2.ONE * 0.5) * size var color := Color("708377") if poi.complete else Color("f4cb80") if poi.kind == "time_engineer": color = Color("9be7ff") draw_colored_polygon(PackedVector2Array([at+Vector2(0,-4),at+Vector2(4,0),at+Vector2(0,4),at+Vector2(-4,0)]),color) continue if poi.kind == "hermit": color = Color("e9b4fc") draw_rect(Rect2(at-Vector2(3,3),Vector2(6,6)),color,false,1.5) continue if poi.kind == "deep_deposit": color = Color("84dff3") elif poi.kind == "crew" and not poi.complete: color = Color("a7e5a2") draw_colored_polygon(PackedVector2Array([at+Vector2(-4,0),at+Vector2(0,-5),at+Vector2(4,0)]), color) draw_rect(Rect2(at+Vector2(-3,0),Vector2(6,4)),color) continue draw_circle(at, 3.0 if poi.kind == "deep_deposit" else 2.5, color) for event in world.data.events: if not event.complete: var at: Vector2 = (event.position/total+Vector2.ONE*0.5)*size draw_string(ThemeDB.fallback_font,at+Vector2(-4,5),"?",HORIZONTAL_ALIGNMENT_LEFT,-1,16,Color("f8d685")) var point := (lander.position / total + Vector2.ONE * 0.5) * size draw_circle(point, 3.5, Color("a7ffe8"))