You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			GDScript
		
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			GDScript
		
	
| ## The blackboard is an object that can be used to store and access data between
 | |
| ## multiple nodes of the behavior tree.
 | |
| @icon("icons/blackboard.svg")
 | |
| class_name Blackboard extends Node
 | |
| 
 | |
| var blackboard: Dictionary = {}
 | |
| 
 | |
| func keys() -> Array[String]:
 | |
|     var keys: Array[String]
 | |
|     keys.assign(blackboard.keys().duplicate())
 | |
|     return keys
 | |
| 
 | |
| 
 | |
| func set_value(key: Variant, value: Variant, blackboard_name: String = 'default') -> void:
 | |
|     if not blackboard.has(blackboard_name):
 | |
|         blackboard[blackboard_name] = {}
 | |
| 
 | |
|     blackboard[blackboard_name][key] = value
 | |
| 
 | |
| 
 | |
| func get_value(key: Variant, default_value: Variant = null, blackboard_name: String = 'default') -> Variant:
 | |
|     if has_value(key, blackboard_name):
 | |
|         return blackboard[blackboard_name].get(key, default_value)
 | |
|     return default_value
 | |
| 
 | |
| 
 | |
| func has_value(key: Variant, blackboard_name: String = 'default') -> bool:
 | |
|     return blackboard.has(blackboard_name) and blackboard[blackboard_name].has(key) and blackboard[blackboard_name][key] != null
 | |
| 
 | |
| 
 | |
| func erase_value(key: Variant, blackboard_name: String = 'default') -> void:
 | |
|     if blackboard.has(blackboard_name):
 | |
|         blackboard[blackboard_name][key] = null
 |