#pragma once
#include "EngineFrame/Actor/Actor.h"
#include "Asset/Common/ObjectVars.h"
class GameMap;
class BaseObject : public Actor
{
private:
    /* data */
public:
    VecFPos3 Position; // 位置
    int Direction = 0; // 方向
    GameMap *_AffMap = nullptr; // 所在地图

public:
    BaseObject(/* args */);
    ~BaseObject();

    // 数据储存器
    ObjectVars _ObjectVars;

public:
    virtual void SetPosition(VecFPos3 pos);
    virtual void SetXpos(float x);
    virtual void SetYpos(float y);
    virtual void SetZpos(float z);

    VecFPos3 GetPosition();
    int GetXpos();
    int GetYpos();
    int GetZpos();

    void MoveBy(VecFPos3 pos);
    void MoveBy(float x, float y, float z);
    
    void SetDirection(int dir);
    int GetDirection();

    ObjectVars &GetObjectVars();
};
