2020-10-28 11:50:16 +08:00

38 lines
846 B
C++

#pragma once
#include "entity.h"
namespace MetaData
{
struct Player;
struct Equip;
struct Building;
}
class Human;
class CircleCollider;
class AabbCollider;
class MapService;
class Building : public Entity
{
public:
MetaData::Building* meta = nullptr;
int building_id = 0;
MapService* permanent_map_service = nullptr;
virtual ~Building() override;
virtual void Initialize() override;
void RecalcSelfCollider();
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
virtual void GetAabbBox(AabbCollider& aabb_box) override;
protected:
Building();
private:
void AutoAdjust(std::vector<AabbCollider*>& collider_list);
friend class EntityFactory;
};