CSC8503_Advanced_Game_Technologies / CSC8503 / CSC8503Common / BehaviourNodeWithChildren.h
BehaviourNodeWithChildren.h
Raw
#pragma once
#include "BehaviourNode.h"
#include <vector>

class BehaviourNodeWithChildren : public BehaviourNode {
public:
	BehaviourNodeWithChildren(const std::string& nodeName) : BehaviourNode(nodeName) {};
	
	~BehaviourNodeWithChildren() {
		for (auto& i : childNodes) {
			delete i;
		}
	}

	void AddChild(BehaviourNode* n) {
		childNodes.emplace_back(n);
	}

	void Reset() override {
		currentState = Initialise;
		for (auto& i : childNodes) {
			i->Reset();
		}
	}

protected:
	std::vector<BehaviourNode*> childNodes;
};