Game Development Reference
In-Depth Information
Helper functions
We can implement additional helper functions in order to allow interactions with the FSM
in a safe manner:
FiniteStateMachine.lua :
function FiniteStateMachine.ContainsState(self, stateName)
return self.states_[stateName] ~= nil;
end
function FiniteStateMachine.ContainsTransition(
self, fromStateName, toStateName)
return self.transitions_[fromStateName] ~= nil and
self.transitions_[fromStateName][toStateName] ~= nil;
end
function FiniteStateMachine.GetCurrentStateName(self)
if (self.currentState_) then
return self.currentState_.name_;
end
end
function FiniteStateMachine.GetCurrentStateStatus(self)
if (self.currentState_) then
return self.currentState_.action_.status_;
end
end
function FiniteStateMachine.SetState(self, stateName)
if (self:ContainsState(stateName)) then
if (self.currentState_) then
self.currentState_.action_:CleanUp();
end
self.currentState_ = self.states_[stateName];
self.currentState_.action_:Initialize();
Search WWH ::




Custom Search