55 lines
1.5 KiB
GDScript3
55 lines
1.5 KiB
GDScript3
extends Control
|
|
|
|
|
|
# Declare member variables here. Examples:
|
|
# var a = 2
|
|
# var b = "text"
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
const crew_per_page = 4
|
|
var current_page = 0
|
|
var entries = {}
|
|
|
|
func _ready():
|
|
self.current_page = 0
|
|
GameState.connect("crew_updated", self, "_on_crew_update")
|
|
self.draw_crew()
|
|
|
|
func _on_crew_update():
|
|
for c in get_tree().get_nodes_in_group("CrewEntries"):
|
|
c.set_visible(false)
|
|
c.call_deferred("free")
|
|
self.draw_crew()
|
|
|
|
func draw_crew():
|
|
self.entries = {}
|
|
var count = len(GameState.ship_stats['crew'])
|
|
var max_pages = (count / self.crew_per_page) + 1
|
|
self.print_tree_pretty()
|
|
if self.current_page == 0:
|
|
get_node("Container/Pager/Previous").set_disabled(true)
|
|
get_node("Container/Display").set_text(str(self.current_page + 1 ) + " / " + str(max_pages))
|
|
print(max_pages)
|
|
if max_pages < 2 or ((current_page+1) >= max_pages):
|
|
get_node("Container/Pager/Previous").set_disabled(true)
|
|
var crew_entry_ui = ResourceLoader.load("res://src/ui/CrewEntry.tscn")
|
|
for c in GameState.ship_stats['crew']:
|
|
var e = crew_entry_ui.instance();
|
|
e.initialize(c)
|
|
entries[c['id']] = e
|
|
e.add_to_group("CrewEntries")
|
|
e.set_custom_minimum_size(Vector2(100, 137))
|
|
var x = 0 + (current_page * crew_per_page);
|
|
var limit = x + crew_per_page
|
|
while x < limit:
|
|
if x >= len(entries.keys()):
|
|
break;
|
|
var key = entries.keys()[x]
|
|
get_node("Container/Crew").add_child(entries[key])
|
|
x += 1
|
|
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
#func _process(delta):
|
|
# pass
|