MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / canWorkerDig

Method canWorkerDig

source/entities/Tile.cpp:1866–1902  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1864}
1865
1866void Tile::canWorkerDig(const Creature& worker, std::vector<Tile*>& tiles)
1867{
1868 Tile* myTile = worker.getPositionTile();
1869 if (myTile == nullptr)
1870 {
1871 OD_LOG_ERR("worker=" + worker.getName() + ", pos=" + Helper::toString(worker.getPosition()));
1872 return;
1873 }
1874
1875 for(uint32_t i = 0; i < mNeighbors.size(); ++i)
1876 {
1877 Tile* neigh = mNeighbors[i];
1878 if(neigh->isFullTile())
1879 continue;
1880
1881 if(!getGameMap()->pathExists(&worker, myTile, neigh))
1882 continue;
1883
1884 if(i >= mNbWorkersDigging.size())
1885 {
1886 static bool log = true;
1887 if(log)
1888 {
1889 log = false;
1890 OD_LOG_ERR("worker=" + worker.getName() + ", myTile=" + Tile::displayAsString(myTile)
1891 + ", neigh=" + Tile::displayAsString(neigh) + ", i=" + Helper::toString(i)
1892 + ", size=" + Helper::toString(mNbWorkersDigging.size()));
1893 }
1894 continue;
1895 }
1896
1897 if(mNbWorkersDigging[i] >= ConfigManager::getSingleton().getNbWorkersDigSameFaceTile())
1898 continue;
1899
1900 tiles.push_back(neigh);
1901 }
1902}
1903
1904bool Tile::addWorkerDigging(const Creature& worker, Tile& tile)
1905{

Callers 2

handleSearchTileToDigMethod · 0.80
dropMethod · 0.80

Calls 5

getPositionTileMethod · 0.80
isFullTileMethod · 0.80
pathExistsMethod · 0.80
toStringFunction · 0.50

Tested by

no test coverage detected