31 lines
734 B
GDScript
31 lines
734 B
GDScript
extends Node
|
|
|
|
var tasks = {}
|
|
onready var ConsoleService = $"/root/ConsoleService"
|
|
|
|
signal task_start;
|
|
signal task_complete
|
|
|
|
func start(name: String, message: String):
|
|
var task = Task.new(name, message)
|
|
if not tasks.has(task.name): tasks[task.name] = []
|
|
tasks[task.name].append(task)
|
|
emit_signal('task_start', task)
|
|
ConsoleService.log("[TaskService] Started: "+name)
|
|
|
|
func complete(name: String):
|
|
if not tasks[name]: return
|
|
var task = tasks[name].pop_front()
|
|
if tasks[name].size() == 0:
|
|
tasks.erase(name)
|
|
emit_signal('task_complete', task)
|
|
ConsoleService.log("[TaskService] Completed: "+name)
|
|
|
|
class Task:
|
|
var name = ''
|
|
var message = ''
|
|
|
|
func _init(_name: String, _message: String):
|
|
name = _name
|
|
message = _message
|