game2005/server/gameserver/dummyentity.cc
aozhiwei 24b1944909 1
2021-08-10 11:18:54 +00:00

65 lines
2.0 KiB
C++

#include "precompile.h"
#include "dummyentity.h"
#include "metatable.pb.h"
#include "collider.h"
#include "mapservice.h"
void DummyEntity::Initialize()
{
Entity::Initialize();
std::vector<AabbCollider*> collider_list;
if (blocks) {
for (auto& obj : *blocks) {
switch (obj.shape()) {
case 1:
{
CircleCollider* collider = new CircleCollider();
collider->owner = this;
collider->pos = a8::Vec2(obj.x(), obj.y());
collider->rad = obj.rad();
collider->tag = obj.collider_tag();
if (obj.bullet_penetrate()) {
a8::SetBitFlag(collider->tag, kHalfWallTag);
}
AddEntityCollider(collider);
permanent_map_service->AddCollider(collider);
}
break;
case 2:
{
AabbCollider* collider = new AabbCollider();
collider->owner = this;
collider->_min = a8::Vec2(obj.x() - obj.width()/2.0,
obj.y() - obj.height()/2.0);
collider->_max = a8::Vec2(obj.x() + obj.width()/2.0,
obj.y() + obj.height()/2.0);
collider->tag = obj.collider_tag();
if (obj.bullet_penetrate()) {
a8::SetBitFlag(collider->tag, kHalfWallTag);
}
AddEntityCollider(collider);
collider_list.push_back(collider);
permanent_map_service->AddCollider(collider);
}
break;
default:
{
}
break;
}
}
}
}
void DummyEntity::OnBulletHit(Bullet* bullet)
{
}
void DummyEntity::OnExplosionHit(Explosion* explosion)
{
}