#include #include #include "list.h" // kernel includes #include #include #include // lua includes #include #include #include using namespace luabind; static eressea::list get_factions(void) { return eressea::list(factions); } class factionunit { public: static unit * next(unit * node) { return node->nextF; } static unit * value(unit * node) { return node; } }; static eressea::list faction_units(const faction& f) { return eressea::list(f.units); } static void faction_setalliance(faction& f, alliance * team) { if (f.alliance==0) setalliance(&f, team); } static alliance * faction_getalliance(const faction& f) { return f.alliance; } void bind_faction(lua_State * L) { module(L)[ def("factions", &get_factions, return_stl_iterator), def("get_faction", &findfaction), class_("faction") .def_readonly("name", &faction::name) .def_readonly("id", &faction::no) .property("units", &faction_units, return_stl_iterator) .property("alliance", &faction_getalliance, &faction_setalliance) ]; }