- 86
- 0
Код:
private void map_Scan(World world, int X, int Y, int Z)
{
int lastCaunt = 0;
int Count = 1;
for(int radius = 1; Count != lastCaunt; radius++)
{
lastCaunt = Count;
Count = 0;
map.clear();
for(int x = -radius; x == radius; x++)
{
for(int y = -radius; y == radius; y++)
{
for(int z = -radius; z == radius; z++)
{
TileEntity t = world.getTileEntity(X + x, Y + y, Z + z);
if(t instanceof IPowerProvider && ((IPowerProvider)t).isProvider()){ map.add(new Point(x, y, z, PointType.Provaider)); Count++;}
else if(t instanceof IPowerEmitter && ((IPowerEmitter)t).isEmitter()){ map.add(new Point(x, y, z, PointType.Emiter)); Count++;}
else if(t instanceof IPowerRequester && ((IPowerRequester)t).isRequester()){ map.add(new Point(x, y, z, PointType.Requester)); Count++;}
else{map.add(new Point(x, y, z, PointType.Null)); Count++;}
}
}
}
}
}
p.s. Как этот метод можно оптимизировать?