Refactor conversation stuff
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user