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.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | ## An inverter will return `FAILURE` in case it's child returns a `SUCCESS` status | 
					
						
							|  |  |  | ## code or `SUCCESS` in case its child returns a `FAILURE` status code. | 
					
						
							|  |  |  | @tool | 
					
						
							|  |  |  | @icon("../../icons/inverter.svg") | 
					
						
							|  |  |  | class_name InverterDecorator extends Decorator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func tick(actor: Node, blackboard: Blackboard) -> int: | 
					
						
							|  |  |  |     var c = get_child(0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if c != running_child: | 
					
						
							|  |  |  |         c.before_run(actor, blackboard) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     var response = c.tick(actor, blackboard) | 
					
						
							|  |  |  |     if can_send_message(blackboard): | 
					
						
							|  |  |  |         BeehaveDebuggerMessages.process_tick(c.get_instance_id(), response) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if c is ConditionLeaf: | 
					
						
							|  |  |  |         blackboard.set_value("last_condition", c, str(actor.get_instance_id())) | 
					
						
							|  |  |  |         blackboard.set_value("last_condition_status", response, str(actor.get_instance_id())) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     match response: | 
					
						
							|  |  |  |         SUCCESS: | 
					
						
							|  |  |  |             c.after_run(actor, blackboard) | 
					
						
							|  |  |  |             return FAILURE | 
					
						
							|  |  |  |         FAILURE: | 
					
						
							|  |  |  |             c.after_run(actor, blackboard) | 
					
						
							|  |  |  |             return SUCCESS | 
					
						
							|  |  |  |         RUNNING: | 
					
						
							|  |  |  |             running_child = c | 
					
						
							|  |  |  |             if c is ActionLeaf: | 
					
						
							|  |  |  |                 blackboard.set_value("running_action", c, str(actor.get_instance_id())) | 
					
						
							|  |  |  |             return RUNNING | 
					
						
							|  |  |  |         _: | 
					
						
							|  |  |  |             push_error("This should be unreachable") | 
					
						
							|  |  |  |             return -1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func get_class_name() -> Array[StringName]: | 
					
						
							|  |  |  |     var classes := super() | 
					
						
							|  |  |  |     classes.push_back(&"InverterDecorator") | 
					
						
							|  |  |  |     return classes |