51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "entity.h"
|
|
|
|
namespace MetaData
|
|
{
|
|
struct MapThing;
|
|
}
|
|
|
|
namespace metatable
|
|
{
|
|
class MapBlockJson;
|
|
}
|
|
|
|
class Room;
|
|
class CircleCollider;
|
|
class AabbCollider;
|
|
class MapService;
|
|
class MapBlock : public Entity
|
|
{
|
|
public:
|
|
MetaData::MapThing* meta = nullptr;
|
|
MapService* permanent_map_service = nullptr;
|
|
int shape = 0;
|
|
float width = 0;
|
|
float height = 0;
|
|
float rad = 0;
|
|
|
|
virtual ~MapBlock() override;
|
|
virtual void Initialize() override;
|
|
virtual 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;
|
|
virtual void GetCircleBox(CircleCollider& circle_box) override;
|
|
virtual bool IsDead(Room* room) override;
|
|
virtual long long GetDeadFrameNo(Room* room) override;
|
|
virtual void OnPreCollision(Room* room) override;
|
|
virtual void OnBulletHit(Bullet* bullet) override;
|
|
virtual void OnExplosionHit(Explosion* explosion) override;
|
|
virtual bool Attackable(Room* room) override;
|
|
virtual bool ReceiveExplosionDmg(Explosion* explosion) override;
|
|
|
|
protected:
|
|
MapBlock();
|
|
|
|
protected:
|
|
|
|
friend class EntityFactory;
|
|
};
|