extends Control ## Camera frame on the minimap. A separate layer, so moving the camera only redraws this ## outline and not the whole map. var map: Control func _init() -> void: mouse_filter = Control.MOUSE_FILTER_IGNORE func _draw() -> void: if map == null: return var footprint: PackedVector2Array = map.camera_footprint if footprint.size() == 4: var outline := PackedVector2Array() for corner: Vector2 in footprint: outline.append(map.to_map(corner).clamp(Vector2.ZERO, size)) draw_colored_polygon(outline, Color(1, 1, 1, .05)) outline.append(outline[0]) draw_polyline(outline, Color(1, 1, 1, .75), 1.3, true) else: var center: Vector2 = map.to_map(Vector2(map.camera_focus.x, map.camera_focus.z)) var span: float = map.camera_span / ((LuneMap.HALF_EXTENT + 4.0) * 2.0) * size.x draw_rect(Rect2(center - Vector2(span * .9, span * .55), Vector2(span * 1.8, span * 1.1)), Color(1, 1, 1, .6), false, 1.2)