45 lines
1.9 KiB
GDScript
45 lines
1.9 KiB
GDScript
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"))
|