CSC8503_Advanced_Game_Technologies / CSC8503 / CSC8503Common / BehaviourAction.h
BehaviourAction.h
Raw
#pragma once
#include "BehaviourNodeWithChildren.h"
#include <functional>

typedef std::function<BehaviourState(float, BehaviourState)> BehaviourActionFunc;

class BehaviourAction : public BehaviourNode {
public:
	BehaviourAction(const std::string& nodeName, BehaviourActionFunc f) : BehaviourNode(nodeName) {
		function = f;
	}
	BehaviourState Execute(float dt) override {
		currentState = function(dt, currentState);
		return currentState;
	}

protected:
	BehaviourActionFunc function;
};