mirror of
https://github.com/lubosz/overte.git
synced 2025-04-23 12:14:00 +02:00
changed to only collide with moving entities
This commit is contained in:
parent
4b52fddffd
commit
2cfa14d5ad
2 changed files with 6 additions and 17 deletions
|
@ -43,26 +43,13 @@ void EntityCollisionSystem::init(EntityEditPacketSender* packetSender,
|
|||
EntityCollisionSystem::~EntityCollisionSystem() {
|
||||
}
|
||||
|
||||
bool EntityCollisionSystem::updateOperation(OctreeElement* element, void* extraData) {
|
||||
EntityCollisionSystem* system = static_cast<EntityCollisionSystem*>(extraData);
|
||||
EntityTreeElement* entityTreeElement = static_cast<EntityTreeElement*>(element);
|
||||
|
||||
// iterate the Entities...
|
||||
QList<EntityItem*>& entities = entityTreeElement->getEntities();
|
||||
uint16_t numberOfEntities = entities.size();
|
||||
for (uint16_t i = 0; i < numberOfEntities; i++) {
|
||||
EntityItem* entity = entities[i];
|
||||
system->checkEntity(entity);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void EntityCollisionSystem::update() {
|
||||
// update all Entities
|
||||
if (_entities->tryLockForRead()) {
|
||||
_entities->recurseTreeWithOperation(updateOperation, this);
|
||||
QList<EntityItem*>& movingEntities = _entities->getMovingEntities();
|
||||
foreach (EntityItem* entity, movingEntities) {
|
||||
checkEntity(entity);
|
||||
}
|
||||
_entities->unlock();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -139,6 +139,8 @@ public:
|
|||
|
||||
void trackDeletedEntity(const EntityItemID& entityID);
|
||||
|
||||
QList<EntityItem*>& getMovingEntities() { return _movingEntities; }
|
||||
|
||||
private:
|
||||
|
||||
void updateChangingEntities(quint64 now, QSet<EntityItemID>& entitiesToDelete);
|
||||
|
|
Loading…
Reference in a new issue