完成building重构

This commit is contained in:
aozhiwei 2019-04-10 18:37:44 +08:00
parent 5577b62d8c
commit db4126ced0
4 changed files with 12 additions and 10 deletions

View File

@ -39,8 +39,10 @@ void Building::RecalcSelfCollider()
}
for (auto& obj : meta->i->dropobj()) {
room->CreateLoot(obj.id(),
pos.x + obj.x() - meta->i->tilewidth() / 2.0,
pos.y + obj.y() - meta->i->tileheight() / 2.0,
Vector2D(
pos.x + obj.x() - meta->i->tilewidth() / 2.0,
pos.y + obj.y() - meta->i->tileheight() / 2.0
),
1
);
}

View File

@ -682,6 +682,11 @@ void Player::UpdateDropWeapon()
}
}
if (drop_ok) {
{
Vector2D dir = Vector2D::UP;
dir.Rotate(a8::RandAngle());
room->CreateLoot(weapon_id, pos + dir * (25 + rand() % 50), 1);
}
#if 1
{
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(weapon_id);

View File

@ -468,7 +468,7 @@ void Room::CreateHouseObstacle(Building* building, int id, float x, float y)
}
}
void Room::CreateLoot(int equip_id, float x, float y, int count)
void Room::CreateLoot(int equip_id, Vector2D pos, int count)
{
MetaData::Equip* equip_meta = MetaMgr::Instance()->GetEquip(equip_id);
if (equip_meta) {
@ -476,12 +476,7 @@ void Room::CreateLoot(int equip_id, float x, float y, int count)
entity->room = this;
entity->meta = equip_meta;
entity->entity_uniid = AllocUniid();
#if 1
entity->pos = Vector2D(x, y);
#else
entity->pos = Vector2D(pos.x + obj.x() - meta->i->tilewidth() / 2.0,
pos.y + obj.y() - meta->i->tileheight() / 2.0);
#endif
entity->pos = pos;
entity->item_id = equip_id;
entity->count = count;
entity->Initialize();

View File

@ -66,7 +66,7 @@ public:
void DropItem(Vector2D pos, int item_id);
void CreateDoor(Building* building, int door_idx);
void CreateHouseObstacle(Building* building, int id, float x, float y);
void CreateLoot(int equip_id, float x, float y, int count);
void CreateLoot(int equip_id, Vector2D pos, int count);
private:
void ClearDeletedObjects();