diff --git a/src/core/node.cpp b/src/core/node.cpp new file mode 100644 index 0000000..72a4077 --- /dev/null +++ b/src/core/node.cpp @@ -0,0 +1,4 @@ +#include "node.hpp" + +namespace ce { +} diff --git a/src/core/node.hpp b/src/core/node.hpp new file mode 100644 index 0000000..618cbdc --- /dev/null +++ b/src/core/node.hpp @@ -0,0 +1,26 @@ +#ifndef CANVAS_NODE_HPP +#define CANVAS_NODE_HPP + +#include +#include +#include + +namespace ce { +class Node { +private: + std::string name{}; + std::map> nodes{}; +public: + Node() = default; + virtual ~Node() = default; + virtual void on_added(Node *parent) = 0; + virtual void on_tick(double delta_time) = 0; + virtual void on_removed(Node *former_parent) = 0; + + void add_child(Node *child); + void remove_child(Node *child); + Node *get_child(char const *find_name); +}; +} + +#endif // !CANVAS_NODE_HPP