Automation/src/entities/entity.h
2021-07-31 22:53:53 -04:00

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;
};