#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& collider_list); friend class EntityFactory; };