2023-12-15 22:44:25 +01:00
|
|
|
# (c) 2023-present Eroax
|
|
|
|
# (c) 2023-present Yagich
|
|
|
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
|
|
class_name Logger
|
|
|
|
|
|
|
|
enum LogType {
|
|
|
|
INFO,
|
|
|
|
WARN,
|
|
|
|
ERROR,
|
|
|
|
}
|
|
|
|
|
|
|
|
enum LogCategory {
|
|
|
|
NODE,
|
|
|
|
DECK,
|
|
|
|
SYSTEM,
|
|
|
|
RENDERER,
|
|
|
|
}
|
|
|
|
|
2024-05-08 09:43:45 +02:00
|
|
|
# Dictionary["text": String, "type": LogType]
|
|
|
|
var toast_history: Array[Dictionary]
|
|
|
|
|
2023-12-15 22:44:25 +01:00
|
|
|
signal log_message(text: String, type: LogType, category: LogCategory)
|
2024-04-17 04:06:48 +02:00
|
|
|
signal log_toast(text: String, type: LogType)
|
2023-12-15 22:44:25 +01:00
|
|
|
|
|
|
|
|
|
|
|
func log_node(text: Variant, type: LogType = LogType.INFO) -> void:
|
|
|
|
self.log(str(text), type, LogCategory.NODE)
|
|
|
|
|
|
|
|
|
|
|
|
func log_deck(text: Variant, type: LogType = LogType.INFO) -> void:
|
|
|
|
self.log(str(text), type, LogCategory.DECK)
|
|
|
|
|
|
|
|
|
|
|
|
func log_system(text: Variant, type: LogType = LogType.INFO) -> void:
|
|
|
|
self.log(str(text), type, LogCategory.SYSTEM)
|
|
|
|
|
|
|
|
|
|
|
|
func log_renderer(text: Variant, type: LogType = LogType.INFO) -> void:
|
|
|
|
self.log(str(text), type, LogCategory.RENDERER)
|
|
|
|
|
|
|
|
|
|
|
|
func log(text: String, type: LogType, category: LogCategory) -> void:
|
|
|
|
log_message.emit(text, type, category)
|
|
|
|
|
|
|
|
if OS.has_feature("editor"):
|
|
|
|
prints(LogType.keys()[type].capitalize(), LogCategory.keys()[category].capitalize(), text)
|
2024-04-17 04:06:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
func toast_info(text: String) -> void:
|
|
|
|
toast(text, LogType.INFO)
|
|
|
|
|
|
|
|
|
|
|
|
func toast_warn(text: String) -> void:
|
|
|
|
toast(text, LogType.WARN)
|
|
|
|
|
|
|
|
|
|
|
|
func toast_error(text: String) -> void:
|
|
|
|
toast(text, LogType.ERROR)
|
|
|
|
|
|
|
|
|
|
|
|
func toast(text: String, type: LogType) -> void:
|
|
|
|
log_toast.emit(text, type)
|
2024-05-08 09:43:45 +02:00
|
|
|
toast_history.append(
|
|
|
|
{
|
|
|
|
"text": text,
|
|
|
|
"type": type,
|
|
|
|
}
|
|
|
|
)
|
2024-04-17 04:06:48 +02:00
|
|
|
if OS.has_feature("editor"):
|
|
|
|
prints("(t)", LogType.keys()[type].capitalize(), text)
|