class BehaviorTree::NodeStatus
Status for nodes.
Constants
- FAILURE
- RUNNING
- SUCCESS
Public Class Methods
new(value)
click to toggle source
# File lib/behavior_tree/node_status.rb, line 10 def initialize(value) set(value) end
Public Instance Methods
==(other)
click to toggle source
# File lib/behavior_tree/node_status.rb, line 30 def ==(other) to_sym == other.to_sym end
failure!()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 52 def failure! set(FAILURE) end
failure?()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 64 def failure? @value == FAILURE end
inspect()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 34 def inspect to_sym end
running!()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 48 def running! set(RUNNING) end
running?()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 60 def running? @value == RUNNING end
set(value)
click to toggle source
# File lib/behavior_tree/node_status.rb, line 14 def set(value) return if value == @value raise IncorrectStatusValueError, value unless [SUCCESS, RUNNING, FAILURE].include?(value) prev = @value @value = value # NOTE: Make sure to notify after having set the @value above, so that the new status is already set. @subscriber&.(prev) end
subscribe(&subscriber)
click to toggle source
# File lib/behavior_tree/node_status.rb, line 26 def subscribe(&subscriber) @subscriber = subscriber end
success!()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 44 def success! set(SUCCESS) end
success?()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 56 def success? @value == SUCCESS end
to_sym()
click to toggle source
# File lib/behavior_tree/node_status.rb, line 38 def to_sym return :success if success? return :running if running? return :failure if failure? end