104 lines
2.5 KiB
Lua
104 lines
2.5 KiB
Lua
function EntityList:Foreach(func, cond, lst)
|
|
for ent in lst.entries do
|
|
local cv = cond(ent);
|
|
if(cv) then
|
|
func(ent);
|
|
end
|
|
end
|
|
end
|
|
|
|
function EntityList:ForeachMob(func, cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetMobList();
|
|
self:Foreach(func, cond, lst);
|
|
end
|
|
|
|
function EntityList:ForeachClient(func, cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetClientList();
|
|
self:Foreach(func, cond, lst);
|
|
end
|
|
|
|
function EntityList:ForeachNPC(func, cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetNPCList();
|
|
self:Foreach(func, cond, lst);
|
|
end
|
|
|
|
function EntityList:ForeachCorpse(func, cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetCorpseList();
|
|
self:Foreach(func, cond, lst);
|
|
end
|
|
|
|
function EntityList:ForeachObject(func, cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetObjectList();
|
|
self:Foreach(func, cond, lst);
|
|
end
|
|
|
|
function EntityList:ForeachDoor(func, cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetDoorsList();
|
|
self:Foreach(func, cond, lst);
|
|
end
|
|
|
|
function EntityList:ForeachSpawn(func, cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetSpawnList();
|
|
self:Foreach(func, cond, lst);
|
|
end
|
|
|
|
function EntityList:Count(cond, lst)
|
|
local ret = 0;
|
|
for ent in lst.entries do
|
|
local cv = cond(ent);
|
|
if(cv) then
|
|
ret = ret + 1;
|
|
end
|
|
end
|
|
|
|
return ret;
|
|
end
|
|
|
|
function EntityList:CountMob(cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetMobList();
|
|
return self:Count(cond, lst);
|
|
end
|
|
|
|
function EntityList:CountClient(cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetClientList();
|
|
return self:Count(cond, lst);
|
|
end
|
|
|
|
function EntityList:CountNPC(cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetNPCList();
|
|
return self:Count(cond, lst);
|
|
end
|
|
|
|
function EntityList:CountCorpse(cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetCorpseList();
|
|
return self:Count(cond, lst);
|
|
end
|
|
|
|
function EntityList:CountObject(cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetObjectList();
|
|
return self:Count(cond, lst);
|
|
end
|
|
|
|
function EntityList:CountDoor(cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetDoorsList();
|
|
return self:Count(cond, lst);
|
|
end
|
|
|
|
function EntityList:CountSpawn(cond)
|
|
cond = cond or function(ent) return true end;
|
|
local lst = self:GetSpawnList();
|
|
return self:Count(cond, lst);
|
|
end
|