Last active
November 24, 2022 16:44
-
-
Save scriptsengineer/6893735e0a5b3025014abed00c09f7f7 to your computer and use it in GitHub Desktop.
Stats.gd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class_name Stats | |
extends CanvasLayer | |
@export_node_path(Container) var container_path := NodePath("Container") | |
@onready var container: Container = get_node(container_path) | |
var stats : Array | |
var labels : Array | |
func _ready() -> void: | |
add_callable("FPS: ", Callable(Engine, "get_frames_per_second")) | |
add_callable("ARCH: ", Callable(Engine, "get_architecture_name")) | |
func _process(_delta : float) -> void: | |
for i in stats.size(): | |
var label = labels[i] | |
var stat = stats[i] | |
update_stat(label, stat) | |
func add_callable(pref, cal) -> void: | |
var stat = { | |
preffix = pref, | |
callable = cal | |
} | |
var label = Label.new() | |
container.add_child(label) | |
labels.append(label) | |
stats.append(stat) | |
func add_variable(pref, obj, var_name) -> void: | |
var stat = { | |
preffix = pref, | |
object = obj, | |
variable_name = var_name | |
} | |
var label = Label.new() | |
container.add_child(label) | |
labels.append(label) | |
stats.append(stat) | |
func update_stat(label : Label, stat): | |
if(stat.has("callable") and stat.callable.is_valid()): | |
var string = str(stat.callable.call()) | |
label.text = stat.preffix + string | |
elif(stat.has("object") and stat.has("variable_name") and stat.object and stat.variable_name): | |
var string = str(stat.object.get(stat.variable_name)) | |
label.text = stat.preffix + string | |
else: | |
label.text = "ERROR on stat: " + str(stat) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment