extends Control

var _data

const TEXT_PADDING = 30

var items = []
var tween

func _ready() -> void:
	if get_tree().root.has_node("Data"):
		_data = get_tree().root.get_node("Data")
		
		if _data.data.has("metadata") and _data.data.metadata.has("credits"):
			var credits = _data.data.metadata.credits
			var sections = credits.keys()
			var y = 50
			
			for section in sections:
				var section_text = RichTextLabel.new()
				section_text.position = Vector2(-120, y)
				section_text.size = Vector2(40, TEXT_PADDING)
				section_text.bbcode_enabled = true
				section_text.text = "[center]%s" % [section]
				add_child(section_text)
				items.push_back(section_text)
				y += TEXT_PADDING
				var people = credits[section].keys()
				
				for person in people:
					var person_text = RichTextLabel.new()
					person_text.position = Vector2(-120, y)
					person_text.size = Vector2(40, TEXT_PADDING)
					person_text.bbcode_enabled = true
					person_text.text = "[center]%s" % [person]
					add_child(person_text)
					items.push_back(person_text)
					y += TEXT_PADDING
					
					var links = credits[section][person].keys()
					
					for link in links:
						var url = credits[section][person][link]
						
				y += TEXT_PADDING


func show_credits():
	if tween:
		tween.kill()
	
	tween = create_tween()
	tween.set_ease(Tween.EASE_OUT)
	tween.set_trans(Tween.TRANS_BACK)
	
	for item in items:
		tween.tween_property(item, "position:x", 320, 0.25)

func hide_credits():
	if tween:
		tween.kill()
	
	tween = create_tween()
	tween.set_parallel()
	tween.set_ease(Tween.EASE_OUT)
	tween.set_trans(Tween.TRANS_QUAD)
	
	for item in items:
		tween.tween_property(item, "position:x", -120, 0.25)