Refactor conversation stuff

This commit is contained in:
2026-01-14 23:20:56 -06:00
parent d916e65990
commit 5af98a69a2
18 changed files with 136 additions and 35 deletions

View File

@@ -34,12 +34,21 @@ func addCallable(params:Dictionary) -> int:
return params["position"]
func addConversation(conversation:Array[ConversationElement]) -> Array[int]:
func addCallables(params:Dictionary) -> Array[int]:
assert(params.has("functions"))
var indexes:Array[int] = []
for element in conversation:
indexes.append(addCallable({ 'function': element.start }))
for element in params['functions']:
var newDict = element.merged(params, false)
newDict.erase('functions')
indexes.append(addCallable(newDict))
return indexes
func addConversation(resources:Array[ConversationResource]) -> Array[int]:
var callables:Array[Dictionary] = []
for resource in resources:
callables.append(resource.toCallable())
return addCallables({ 'functions': callables })
func start() -> void:
if queue.size() == 0:
return
@@ -47,7 +56,7 @@ func start() -> void:
assert(!running)
running = true
index = 0
while true:
while index < queue.size():
var queueItem = queue[index]
var result = await queueItem['function'].call(queueItem)
@@ -61,7 +70,7 @@ func start() -> void:
_:
index = result
if index >= queue.size() || index < 0:
if index < 0:
break
running = false