class BehaviorTree::Decorators::Condition
Applies a condition that will decide whether to tick the decorated node or not.
Attributes
context[R]
Public Class Methods
new(child, procedure = nil, &block)
click to toggle source
Calls superclass method
# File lib/behavior_tree/decorator_nodes/condition.rb, line 11 def initialize(child, procedure = nil, &block) validate_proc!(procedure, block) super(child) @conditional_block = block_given? ? block : procedure end
Protected Instance Methods
should_tick?()
click to toggle source
# File lib/behavior_tree/decorator_nodes/condition.rb, line 21 def should_tick? return false unless @conditional_block.is_a?(Proc) if @conditional_block.lambda? args = [@context, self].take @conditional_block.arity @conditional_block.(*args) else instance_eval(&@conditional_block) end end
status_map()
click to toggle source
# File lib/behavior_tree/decorator_nodes/condition.rb, line 32 def status_map if @tick_prevented status.failure! else self.status = child.status end end