oh-my-git/arrow.gd

40 lines
1,011 B
GDScript3
Raw Permalink Normal View History

2020-03-18 16:20:55 +01:00
extends Node2D
var label = "label" setget label_set
var source: String
var target: String
var repository: Control
2020-03-18 16:20:55 +01:00
func _ready():
pass
2020-03-18 16:20:55 +01:00
2020-09-08 20:26:14 +02:00
func _process(_delta):
#position = -repository.objects[source].position
position = Vector2(0,0)
var start = repository.objects[source].position
var end = start + Vector2(0, 60)
2020-09-14 16:03:01 +02:00
if repository and repository.objects.has(target) and repository.objects[target].visible:
var t = repository.objects[target]
end = t.position
$Target.hide()
else:
$Target.text = target
2020-09-14 16:03:01 +02:00
if $Target.text.substr(0, 5) != "refs/":
$Target.text = ""#$Target.text.substr(0,8)
$Target.show()
$Line.points[1] = end - repository.objects[source].position
2020-09-24 10:25:38 +02:00
# Move the tip away from the object a bit.
$Line.points[1] -= $Line.points[1].normalized()*30
#$Label.position = ($Line.points[0] + $Line.points[1])/1.3
$Tip.position = $Line.points[1]
2020-09-14 14:54:30 +02:00
$Tip.rotation = PI+$Line.points[0].angle_to($Line.points[1])
2020-03-18 16:20:55 +01:00
func label_set(new_label):
label = new_label
$Label/ID.text = label