Newer
Older
#include "library.h"
namespace py = pybind11;
void define_map_tools(py::module & m)
{
const CCColor white{ 255, 255, 255 };
py::class_<MapTools>(m, "MapTools")
.def_property_readonly("width", &MapTools::width, "The width of the map")
.def_property_readonly("height", &MapTools::height, "The height of the map")
//.def("terrainHeight", &MapTools::terrainHeight, py::const_)
.def("draw_line", py::overload_cast<const CCPosition &, const CCPosition &, const CCColor &>(&MapTools::drawLine, py::const_), py::arg("start"), py::arg("stop"), py::arg("color"))
//.def("draw_line", py::overload_cast<CCPositionType, CCPositionType, CCPositionType, CCPositionType, const CCColor &>(&MapTools::drawLine, py::const_)); // TODO: Default argument??
.def("draw_box", py::overload_cast<const CCPosition &, const CCPosition &, const CCColor &>(&MapTools::drawBox, py::const_), py::arg("top_left"), py::arg("bottom_right"), py::arg("color"))
.def("draw_circle", py::overload_cast<const CCPosition &, CCPositionType, const CCColor &>(&MapTools::drawCircle, py::const_), py::arg("center"), py::arg("radius"), py::arg("color"))
.def("draw_text", &MapTools::drawText, "position"_a, "text"_a, "color"_a)
.def("draw_text_screen", &MapTools::drawTextScreen, "percentage_x"_a, "percentage_y"_a, "text"_a, "color"_a);
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
TODO: Left to implement
drawBox(CCPositionType x1, CCPositionType y1, CCPositionType x2, CCPositionType y2, const CCColor & color = CCColor(255, 255, 255)) const;
drawCircle(CCPositionType x1, CCPositionType x2, CCPositionType radius, const CCColor & color = CCColor(255, 255, 255)) const;
isValidTile(int tileX, int tileY) const;
isValidTile(const CCTilePosition & tile) const;
isValidPosition(const CCPosition & pos) const;
isPowered(int tileX, int tileY) const;
isExplored(int tileX, int tileY) const;
isExplored(const CCPosition & pos) const;
isExplored(const CCTilePosition & pos) const;
isVisible(int tileX, int tileY) const;
canBuildTypeAtPosition(int tileX, int tileY, const UnitType & type) const;
getDistanceMap(const CCTilePosition & tile) const;
getDistanceMap(const CCPosition & tile) const;
getGroundDistance(const CCPosition & src, const CCPosition & dest) const;
isConnected(int x1, int y1, int x2, int y2) const;
isConnected(const CCTilePosition & from, const CCTilePosition & to) const;
isConnected(const CCPosition & from, const CCPosition & to) const;
isWalkable(int tileX, int tileY) const;
isWalkable(const CCTilePosition & tile) const;
isBuildable(int tileX, int tileY) const;
isBuildable(const CCTilePosition & tile) const;
isDepotBuildableTile(int tileX, int tileY) const;
getLeastRecentlySeenTile() const;
// returns a list of all tiles on the map, sorted by 4-direcitonal walk distance from the given position
const std::vector<CCTilePosition> & getClosestTilesTo(const CCTilePosition & pos) const;
*/
}