35 lines
808 B
C++
35 lines
808 B
C++
#pragma once
|
|
|
|
#include <iostream>
|
|
|
|
class Node;
|
|
|
|
class Entity {
|
|
public:
|
|
Entity() : Entity(-1) {}
|
|
Entity(int id) : m_id(id) {}
|
|
|
|
Entity(const Entity &other) = default;
|
|
Entity &operator=(const Entity &other) = delete;
|
|
|
|
virtual ~Entity() = default;
|
|
|
|
virtual Entity *clone() { return new Entity(*this); }
|
|
|
|
void set_node(Node *node) { m_node = node; }
|
|
Node &node() { return *m_node; }
|
|
|
|
// Get the tile's ID
|
|
int id() { return m_id; }
|
|
// void set_id(int id) { m_id = id; }
|
|
|
|
virtual void update(double dt);
|
|
|
|
friend std::ostream &operator<<(std::ostream &os, const Entity &tile);
|
|
friend std::istream &operator>>(std::istream &is, Entity &tile);
|
|
|
|
private:
|
|
Node *m_node;
|
|
|
|
int m_id;
|
|
};
|