1234567891011121314151617181920212223242526272829303132333435363738394041 |
- extends Control
- const MAX_ENTRIES = 100
- var _entry_template
- func _enter_tree():
- Log.entry_logged.connect(self._on_log_entry)
- _entry_template = get_child(0) as Label
- remove_child(_entry_template)
- func _exit_tree():
- _entry_template.free()
- func clear():
- while get_child_count():
- var entry = get_child(get_child_count() - 1)
- remove_child(entry)
- entry.queue_free()
- func _on_log_entry(message, type):
- var new_entry = _entry_template.duplicate() as Label
- new_entry.set_text(message)
- if type == Log.LogType.ERROR:
- new_entry.modulate = Color.RED
- else:
- new_entry.modulate = Color.WHITE
- if get_child_count() >= MAX_ENTRIES:
- var first_entry = get_child(0) as Label
- remove_child(first_entry)
- first_entry.queue_free()
- add_child(new_entry)
|