1
0
game/client/entity/Entity.hpp

37 lines
1.0 KiB
C++

#pragma once
#include <raylib.h>
#include <raymath.h>
#include <cstdint>
class Entity {
protected:
Vector3 position{0, 0, 0};
Vector3 rotation{0, 0, 0};
Vector3 velocity{0, 0, 0};
uint32_t id{0};
bool active{true};
public:
Entity() = default;
Entity(const Vector3& pos, uint32_t entityId = 0);
virtual ~Entity() = default;
virtual void update(float deltaTime);
virtual void render();
void setPosition(const Vector3& pos) { position = pos; }
void setRotation(const Vector3& rot) { rotation = rot; }
void setVelocity(const Vector3& vel) { velocity = vel; }
void setId(uint32_t entityId) { id = entityId; }
void setActive(bool isActive) { active = isActive; }
Vector3 getPosition() const { return position; }
Vector3 getRotation() const { return rotation; }
Vector3 getVelocity() const { return velocity; }
uint32_t getId() const { return id; }
bool isActive() const { return active; }
void move(const Vector3& delta);
void rotate(const Vector3& delta);
};