class BehaviorTree::TaskBase

A task (leaf) node.

Attributes

context[R]

Public Class Methods

new(procedure = nil, &block) click to toggle source
Calls superclass method BehaviorTree::NodeBase::new
# File lib/behavior_tree/tasks/task_base.rb, line 8
def initialize(procedure = nil, &block)
  validate_proc!(procedure, block)

  super()

  @task_block = block_given? ? block : procedure
end

Public Instance Methods

on_tick() click to toggle source
# File lib/behavior_tree/tasks/task_base.rb, line 16
def on_tick
  raise 'Node should be set to running' unless status.running?
  return unless @task_block.is_a?(Proc)

  if @task_block.lambda?
    args = [@context, self].take @task_block.arity
    @task_block.(*args)
  else
    instance_eval(&@task_block)
  end
end