I'm working on a game engine, using AngelScript. I have registered my entity class to AngleScript (there is no constructor on purpose, I don't want users to be able to declare new entities):
r = engine->RegisterObjectType("Entity", 0, asOBJ_REF); assert(r >= 0);
r = engine->RegisterObjectBehaviour("Entity", asBEHAVE_ADDREF, "void f()", asMETHOD(Entity, AddRef), asCALL_THISCALL); assert(r >= 0);
r = engine->RegisterObjectBehaviour("Entity", asBEHAVE_RELEASE, "void f()", asMETHOD(Entity, ReleaseRef), asCALL_THISCALL); assert(r >= 0);
r = engine->RegisterObjectMethod("Entity", "Transform&amp;amp;amp; getTransform()", asMETHOD(Entity, get<Transform>), asCALL_THISCALL); assert(r >= 0);
I've also registered my Transform component:
r = engine->RegisterObjectType("Transform", sizeof(Transform …