38 lines
846 B
C++
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;
|
|
};
|