proto3 initial commit

This commit is contained in:
Segey Lapin
2020-04-13 12:45:25 +03:00
parent 69410badf6
commit 1084b6d5c3
1588 changed files with 368852 additions and 23 deletions

View File

@@ -0,0 +1,59 @@
extends Node
class_name Blackboard
var _base_memory: Dictionary #stores global info
var _tree_memory: Dictionary #store tree and node info
func _enter_tree() -> void:
_base_memory = {}
_tree_memory = {}
func set(key, value, behavior_tree = null, node_scope = null) -> void:
var memory := _get_memory(behavior_tree, node_scope)
memory[key] = value
func get(key, behavior_tree = null, node_scope = null):
var memory := _get_memory(behavior_tree, node_scope)
if memory.has(key):
return memory[key]
return null
func _get_memory(behavior_tree, node_scope) -> Dictionary:
var memory := _base_memory
if behavior_tree:
memory = _get_tree_memory(behavior_tree)
if node_scope:
memory = _get_node_memory(memory, node_scope)
return memory
func _get_tree_memory(behavior_tree) -> Dictionary:
if not _tree_memory.has(behavior_tree):
_tree_memory[behavior_tree] = {
'nodeMemory':{},
'openNodes':[]
}
return _tree_memory[behavior_tree]
func _get_node_memory(tree_memory: Dictionary, node_scope) -> Dictionary:
var memory: Dictionary = tree_memory['nodeMemory']
if not memory.has(node_scope):
memory[node_scope] = {}
return memory[node_scope]