the-crypt/addons/github-integration/scripts/RepositoryItem.gd
2020-07-17 11:26:02 -05:00

51 lines
1.4 KiB
GDScript

tool
extends PanelContainer
signal repo_selected(repo)
signal repo_clicked(repo)
onready var Name = $Repository/Name
onready var Stars = $Repository/Stars
onready var Forks = $Repository/Forks
onready var BG = $BG
var _name : String
var _stars : int
var _forks : int
var _metadata : Dictionary
var _repository : Dictionary
func _ready():
Stars.get_node("Icon").set_texture(IconLoaderGithub.load_icon_from_name("stars"))
Forks.get_node("Icon").set_texture(IconLoaderGithub.load_icon_from_name("forks"))
func set_repository(repository : Dictionary):
_repository = repository
_name = str(repository.name)
_stars = repository.stargazers_count
_forks = repository.forks_count
Name.get_node("Text").set_text(_name)
Stars.get_node("Amount").set_text("Stars: "+str(_stars))
Forks.get_node("Amount").set_text("Forks: "+str(_forks))
var repo_icon : ImageTexture
if repository.private:
repo_icon = IconLoaderGithub.load_icon_from_name("lock")
else:
if repository.fork:
repo_icon = IconLoaderGithub.load_icon_from_name("forks")
else:
repo_icon = IconLoaderGithub.load_icon_from_name("repos-back")
Name.get_node("Icon").set_texture(repo_icon)
func deselect():
BG.hide()
func _on_RepositoryItem_gui_input(event):
if event is InputEventMouseButton:
if event.is_pressed() and event.button_index == 1:
BG.show()
emit_signal("repo_clicked", _repository)
if event.doubleclick:
emit_signal("repo_selected", _repository)