World:DoWithEntityByID() checks the entities-to-add as well.
This allows plugins to create entities and immediately act on them using that call. This will most likely need to be added to most of the DoWith<> and ForEach<> calls.
This commit is contained in:
parent
c41183d450
commit
49e59ee06b
@ -2911,6 +2911,20 @@ bool cWorld::ForEachEntityInBox(const cBoundingBox & a_Box, cEntityCallback & a_
|
|||||||
|
|
||||||
bool cWorld::DoWithEntityByID(int a_UniqueID, cEntityCallback & a_Callback)
|
bool cWorld::DoWithEntityByID(int a_UniqueID, cEntityCallback & a_Callback)
|
||||||
{
|
{
|
||||||
|
// First check the entities-to-add:
|
||||||
|
{
|
||||||
|
cCSLock Lock(m_CSEntitiesToAdd);
|
||||||
|
for (auto & ent: m_EntitiesToAdd)
|
||||||
|
{
|
||||||
|
if (ent->GetUniqueID() == a_UniqueID)
|
||||||
|
{
|
||||||
|
a_Callback.Item(ent);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} // for ent - m_EntitiesToAdd[]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Then check the chunkmap:
|
||||||
return m_ChunkMap->DoWithEntityByID(a_UniqueID, a_Callback);
|
return m_ChunkMap->DoWithEntityByID(a_UniqueID, a_Callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user