31 lines
716 B
GDScript
31 lines
716 B
GDScript
extends Node2D
|
|
|
|
class_name MinimapMarker
|
|
|
|
@onready var marker = $MarkerSprite
|
|
@onready var ship = $"../../.."
|
|
|
|
enum Type { Ship, Base, Loot, Quest }
|
|
|
|
var target : Node2D
|
|
var type := Type.Ship
|
|
|
|
const TYPES_INDEXES = {
|
|
Type.Ship: 0,
|
|
Type.Base: 1,
|
|
Type.Loot: 2,
|
|
Type.Quest: 3
|
|
}
|
|
|
|
func _ready():
|
|
marker.frame = TYPES_INDEXES[type]
|
|
|
|
# Update marker angle and size
|
|
func _process(_delta):
|
|
if !is_instance_valid(target):
|
|
queue_free()
|
|
return
|
|
rotation = ship.global_position.angle_to_point(target.global_position)
|
|
var sp_scale = 2048 / clamp(ship.global_position.distance_to(target.global_position), 2048, 8192)
|
|
marker.scale = Vector2(sp_scale, sp_scale)
|
|
#modulate = target.material.get_shader_parameter("color")
|