Files
Corupture/scripts/gui.gd
Eric 82675b6ed2 two buildings working!
created research building base
2024-03-14 07:29:11 -05:00

42 lines
1.5 KiB
GDScript

extends Control
@onready var resource_container: GridContainer = $ResourceContainer/MarginContainer/VBoxContainer/GridContainer
const SCIFI_TILESHEET = preload("res://assets/scifi_tilesheet@2.png")
var _resource_displays := {}
func _ready() -> void:
ResourceManager.changed_resource.connect(_on_resource_manager_changed_resource)
func _on_resource_manager_changed_resource(changed: ResourceChangedSignal) -> void:
for resource: GameResource in changed.changed_resources.keys():
if not _resource_displays.has(resource):
var atlas_tex := AtlasTexture.new()
atlas_tex.atlas = SCIFI_TILESHEET
atlas_tex.region = Rect2(Grid.GRID_SIZE * resource.atlas_location.x, Grid.GRID_SIZE * resource.atlas_location.y, Grid.GRID_SIZE, Grid.GRID_SIZE)
var img := TextureRect.new()
img.texture = atlas_tex
img.expand_mode = TextureRect.EXPAND_FIT_WIDTH_PROPORTIONAL
resource_container.add_child(img)
var label := Label.new()
resource_container.add_child(label)
var data := ResourceData.new()
data.image = img
data.label = label
data.value = changed.changed_resources[resource]
_resource_displays[resource] = data
label.text = "%s / %s" % [data.value, ResourceManager.get_resource_limit(resource)]
else:
var data: ResourceData = _resource_displays[resource]
data.value += changed.changed_resources[resource]
data.label.text = "%s / %s" % [data.value, ResourceManager.get_resource_limit(resource)]
class ResourceData:
var image: TextureRect
var label: Label
var value: int