diff --git a/src/UIEntity.cpp b/src/UIEntity.cpp index 57aeeae..01ebd83 100644 --- a/src/UIEntity.cpp +++ b/src/UIEntity.cpp @@ -163,3 +163,15 @@ PyGetSetDef UIEntity::getsetters[] = { {"sprite_number", (getter)UIEntity::get_spritenumber, (setter)UIEntity::set_spritenumber, "Sprite number (index) on the texture on the display", NULL}, {NULL} /* Sentinel */ }; + +PyObject* UIEntity::repr(PyUIEntityObject* self) { + std::ostringstream ss; + if (!self->data) ss << ""; + else { + auto ent = self->data; + ss << ""; + } + std::string repr_str = ss.str(); + return PyUnicode_DecodeUTF8(repr_str.c_str(), repr_str.size(), "replace"); +} diff --git a/src/UIEntity.h b/src/UIEntity.h index 852cbb3..b5050ff 100644 --- a/src/UIEntity.h +++ b/src/UIEntity.h @@ -55,6 +55,7 @@ public: static int set_spritenumber(PyUIEntityObject* self, PyObject* value, void* closure); static PyMethodDef methods[]; static PyGetSetDef getsetters[]; + static PyObject* repr(PyUIEntityObject* self); }; namespace mcrfpydef { @@ -63,7 +64,7 @@ namespace mcrfpydef { .tp_name = "mcrfpy.Entity", .tp_basicsize = sizeof(PyUIEntityObject), .tp_itemsize = 0, - // Methods omitted for brevity + .tp_repr = (reprfunc)UIEntity::repr, .tp_flags = Py_TPFLAGS_DEFAULT, .tp_doc = "UIEntity objects", .tp_methods = UIEntity::methods,