#pragma once extern "C" { #include #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #include "polycode/core/PolyBasicFileProvider.h" #include "polycode/core/PolyBezierCurve.h" #include "polycode/core/PolyBone.h" #include "polycode/core/PolyCamera.h" #include "polycode/core/PolyColor.h" #include "polycode/core/PolyConfig.h" #include "polycode/core/PolyCore.h" #include "polycode/core/PolyCoreFileProvider.h" #include "polycode/core/PolyCoreInput.h" #include "polycode/core/PolyCubemap.h" #include "polycode/core/PolyData.h" #include "polycode/core/PolyEntity.h" #include "polycode/core/PolyEvent.h" #include "polycode/core/PolyEventDispatcher.h" #include "polycode/core/PolyEventHandler.h" #include "polycode/core/PolyFont.h" #include "polycode/core/PolyGlobals.h" #include "polycode/core/PolyGPUDrawBuffer.h" #include "polycode/core/PolyImage.h" #include "polycode/core/PolyInputEvent.h" #include "polycode/core/PolyInputKeys.h" #include "polycode/core/PolyLabel.h" #include "polycode/core/PolyMaterial.h" #include "polycode/core/PolyMatrix4.h" #include "polycode/core/PolyMesh.h" #include "polycode/core/PolyObject.h" #include "polycode/core/PolyOpenGLGraphicsInterface.h" #include "polycode/core/PolyPAAudioInterface.h" #include "polycode/core/PolyParticleEmitter.h" #include "polycode/core/PolyPerlin.h" #include "polycode/core/PolyPhysFSFileProvider.h" #include "polycode/core/PolyQuaternion.h" #include "polycode/core/PolyQuaternionCurve.h" #include "polycode/core/PolyRay.h" #include "polycode/core/PolyRectangle.h" #include "polycode/core/PolyRenderDataArray.h" #include "polycode/core/PolyRenderer.h" #include "polycode/core/PolyRendererPlatformData.h" #include "polycode/core/PolyResource.h" #include "polycode/core/PolyResourceManager.h" #include "polycode/core/PolyScene.h" #include "polycode/core/PolySceneEntityInstance.h" #include "polycode/core/PolySceneLabel.h" #include "polycode/core/PolySceneLight.h" #include "polycode/core/PolySceneLine.h" #include "polycode/core/PolySceneMesh.h" #include "polycode/core/PolyScenePrimitive.h" #include "polycode/core/PolySceneRenderTexture.h" #include "polycode/core/PolySceneSound.h" #include "polycode/core/PolySceneSprite.h" #include "polycode/core/PolyScript.h" #include "polycode/core/PolyShader.h" #include "polycode/core/PolySkeleton.h" #include "polycode/core/PolySound.h" #include "polycode/core/PolySoundManager.h" #include "polycode/core/PolyString.h" #include "polycode/core/PolyTexture.h" #include "polycode/core/PolyVector2.h" #include "polycode/core/PolyVector3.h" #include "polycode/core/PolyVector4.h" using namespace std; namespace Polycode { class LuaEventHandler : public EventHandler { public: LuaEventHandler() : EventHandler() {} void handleEvent(Event *e) { lua_getglobal(L, "__customError"); int errH = lua_gettop(L); lua_getglobal(L, "__handleEvent"); lua_rawgeti( L, LUA_REGISTRYINDEX, wrapperIndex ); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)e; lua_pcall(L, 2, 0, errH); lua_settop(L, 0); } int wrapperIndex; lua_State *L; }; static int Polycode_BezierCurve_get_evaluationAccuracy(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->evaluationAccuracy); return 1; } static int Polycode_BezierCurve_set_evaluationAccuracy(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->evaluationAccuracy = param; return 0; } static int Polycode_BezierCurve(lua_State *L) { BezierCurve *inst = new BezierCurve(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.BezierCurve"); lua_setmetatable(L, -2); return 1; } static int Polycode_BezierCurve_getNumControlPoints(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getNumControlPoints()); return 1; } static int Polycode_BezierCurve_addControlPoint(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number p1x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number p1y = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number p1z = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number p2x = lua_tonumber(L, 5); luaL_checktype(L, 6, LUA_TNUMBER); Number p2y = lua_tonumber(L, 6); luaL_checktype(L, 7, LUA_TNUMBER); Number p2z = lua_tonumber(L, 7); luaL_checktype(L, 8, LUA_TNUMBER); Number p3x = lua_tonumber(L, 8); luaL_checktype(L, 9, LUA_TNUMBER); Number p3y = lua_tonumber(L, 9); luaL_checktype(L, 10, LUA_TNUMBER); Number p3z = lua_tonumber(L, 10); inst->addControlPoint(p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z); return 0; } static int Polycode_BezierCurve_addControlPoint3dWithHandles(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number p1x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number p1y = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number p1z = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number p2x = lua_tonumber(L, 5); luaL_checktype(L, 6, LUA_TNUMBER); Number p2y = lua_tonumber(L, 6); luaL_checktype(L, 7, LUA_TNUMBER); Number p2z = lua_tonumber(L, 7); luaL_checktype(L, 8, LUA_TNUMBER); Number p3x = lua_tonumber(L, 8); luaL_checktype(L, 9, LUA_TNUMBER); Number p3y = lua_tonumber(L, 9); luaL_checktype(L, 10, LUA_TNUMBER); Number p3z = lua_tonumber(L, 10); inst->addControlPoint3dWithHandles(p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z); return 0; } static int Polycode_BezierCurve_addControlPoint3d(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number y = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number z = lua_tonumber(L, 4); inst->addControlPoint3d(x, y, z); return 0; } static int Polycode_BezierCurve_addControlPoint2dWithHandles(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number p1x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number p1y = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number p2x = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number p2y = lua_tonumber(L, 5); luaL_checktype(L, 6, LUA_TNUMBER); Number p3x = lua_tonumber(L, 6); luaL_checktype(L, 7, LUA_TNUMBER); Number p3y = lua_tonumber(L, 7); inst->addControlPoint2dWithHandles(p1x, p1y, p2x, p2y, p3x, p3y); return 0; } static int Polycode_BezierCurve_addControlPoint2d(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number y = lua_tonumber(L, 3); inst->addControlPoint2d(x, y); return 0; } static int Polycode_BezierCurve_getPointAt(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number a = lua_tonumber(L, 2); Vector3 *retInst = new Vector3(); *retInst = inst->getPointAt(a); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_BezierCurve_clearControlPoints(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); inst->clearControlPoints(); return 0; } static int Polycode_BezierCurve_getYValueAtX(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); lua_pushnumber(L, inst->getYValueAtX(x)); return 1; } static int Polycode_BezierCurve_getTValueAtX(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); lua_pushnumber(L, inst->getTValueAtX(x)); return 1; } static int Polycode_BezierCurve_setHeightCacheResolution(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number resolution = lua_tonumber(L, 2); inst->setHeightCacheResolution(resolution); return 0; } static int Polycode_BezierCurve_rebuildHeightCache(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); inst->rebuildHeightCache(); return 0; } static int Polycode_BezierCurve_recalculateDistances(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierCurve *inst = (BezierCurve*) *((PolyBase**)lua_touserdata(L, 1)); inst->recalculateDistances(); return 0; } static int Polycode_delete_BezierCurve(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((BezierCurve*) *inst); *inst = NULL; return 0; } static int Polycode_BezierPoint_get_p1(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierPoint *inst = (BezierPoint*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->p1; return 1; } static int Polycode_BezierPoint_get_p2(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierPoint *inst = (BezierPoint*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->p2; return 1; } static int Polycode_BezierPoint_get_p3(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierPoint *inst = (BezierPoint*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->p3; return 1; } static int Polycode_BezierPoint_set_p1(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierPoint *inst = (BezierPoint*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->p1 = *argInst; return 0; } static int Polycode_BezierPoint_set_p2(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierPoint *inst = (BezierPoint*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->p2 = *argInst; return 0; } static int Polycode_BezierPoint_set_p3(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); BezierPoint *inst = (BezierPoint*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->p3 = *argInst; return 0; } static int Polycode_BezierPoint(lua_State *L) { luaL_checktype(L, 1, LUA_TNUMBER); Number p1x = lua_tonumber(L, 1); luaL_checktype(L, 2, LUA_TNUMBER); Number p1y = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number p1z = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number p2x = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number p2y = lua_tonumber(L, 5); luaL_checktype(L, 6, LUA_TNUMBER); Number p2z = lua_tonumber(L, 6); luaL_checktype(L, 7, LUA_TNUMBER); Number p3x = lua_tonumber(L, 7); luaL_checktype(L, 8, LUA_TNUMBER); Number p3y = lua_tonumber(L, 8); luaL_checktype(L, 9, LUA_TNUMBER); Number p3z = lua_tonumber(L, 9); BezierPoint *inst = new BezierPoint(p1x, p1y, p1z, p2x, p2y, p2z, p3x, p3y, p3z); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.BezierPoint"); lua_setmetatable(L, -2); return 1; } static int Polycode_delete_BezierPoint(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((BezierPoint*) *inst); *inst = NULL; return 0; } static int Polycode_Bone_get_parentBoneId(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->parentBoneId); return 1; } static int Polycode_Bone_get_boneMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->boneMatrix; return 1; } static int Polycode_Bone_get_restMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->restMatrix; return 1; } static int Polycode_Bone_get_baseMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->baseMatrix; return 1; } static int Polycode_Bone_get_finalMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->finalMatrix; return 1; } static int Polycode_Bone_get_baseRotation(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->baseRotation; return 1; } static int Polycode_Bone_get_baseScale(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->baseScale; return 1; } static int Polycode_Bone_get_basePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->basePosition; return 1; } static int Polycode_Bone_get_disableAnimation(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->disableAnimation); return 1; } static int Polycode_Bone_set_parentBoneId(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->parentBoneId = param; return 0; } static int Polycode_Bone_set_boneMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 *argInst = (Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->boneMatrix = *argInst; return 0; } static int Polycode_Bone_set_restMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 *argInst = (Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->restMatrix = *argInst; return 0; } static int Polycode_Bone_set_baseMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 *argInst = (Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->baseMatrix = *argInst; return 0; } static int Polycode_Bone_set_finalMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 *argInst = (Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->finalMatrix = *argInst; return 0; } static int Polycode_Bone_set_baseRotation(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Quaternion *argInst = (Quaternion*) *((PolyBase**)lua_touserdata(L, 2)); inst->baseRotation = *argInst; return 0; } static int Polycode_Bone_set_baseScale(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->baseScale = *argInst; return 0; } static int Polycode_Bone_set_basePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->basePosition = *argInst; return 0; } static int Polycode_Bone_set_disableAnimation(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->disableAnimation = param; return 0; } static int Polycode_Bone(lua_State *L) { luaL_checktype(L, 1, LUA_TSTRING); String boneName = String(lua_tostring(L, 1)); Bone *inst = new Bone(boneName); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.Bone"); lua_setmetatable(L, -2); return 1; } static int Polycode_Bone_getName(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->getName().c_str()); return 1; } static int Polycode_Bone_setParentBone(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); shared_ptr bone = *(shared_ptr*) *((PolyBase**)lua_touserdata(L, 2)); inst->setParentBone(bone); return 0; } static int Polycode_Bone_addChildBone(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); shared_ptr bone = *(shared_ptr*) *((PolyBase**)lua_touserdata(L, 2)); inst->addChildBone(bone); return 0; } static int Polycode_Bone_getParentBone(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); shared_ptr *retInst = new shared_ptr(); *retInst = inst->getParentBone(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.shared_ptr"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_getNumChildBones(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getNumChildBones()); return 1; } static int Polycode_Bone_getChildBone(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int index = lua_tointeger(L, 2); shared_ptr *retInst = new shared_ptr(); *retInst = inst->getChildBone(index); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.shared_ptr"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_getBoneMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getBoneMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_setBoneMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 matrix = *(Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->setBoneMatrix(matrix); return 0; } static int Polycode_Bone_getRestMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getRestMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_getFullRestMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getFullRestMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_getParentRestMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getParentRestMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_getFinalMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getFinalMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_setRestMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 matrix = *(Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->setRestMatrix(matrix); return 0; } static int Polycode_Bone_setBaseMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 matrix = *(Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->setBaseMatrix(matrix); return 0; } static int Polycode_Bone_getBaseMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getBaseMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_getFullBaseMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getFullBaseMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_rebuildFinalMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); inst->rebuildFinalMatrix(); return 0; } static int Polycode_Bone_buildFinalMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->buildFinalMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Bone_intializeBone(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Bone *inst = (Bone*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 basePosition = *(Vector3*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); Vector3 baseScale = *(Vector3*) *((PolyBase**)lua_touserdata(L, 3)); luaL_checktype(L, 4, LUA_TUSERDATA); Quaternion baseRotation = *(Quaternion*) *((PolyBase**)lua_touserdata(L, 4)); luaL_checktype(L, 5, LUA_TUSERDATA); Vector3 restPosition = *(Vector3*) *((PolyBase**)lua_touserdata(L, 5)); luaL_checktype(L, 6, LUA_TUSERDATA); Vector3 restScale = *(Vector3*) *((PolyBase**)lua_touserdata(L, 6)); luaL_checktype(L, 7, LUA_TUSERDATA); Quaternion restRotation = *(Quaternion*) *((PolyBase**)lua_touserdata(L, 7)); inst->intializeBone(basePosition, baseScale, baseRotation, restPosition, restScale, restRotation); return 0; } static int Polycode_delete_Bone(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((Bone*) *inst); *inst = NULL; return 0; } static int Polycode_Camera_get_frustumCulling(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->frustumCulling); return 1; } static int Polycode_Camera_get_topLeftOrtho(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->topLeftOrtho); return 1; } static int Polycode_Camera_get_cameraShift(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->cameraShift; return 1; } static int Polycode_Camera_set_frustumCulling(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->frustumCulling = param; return 0; } static int Polycode_Camera_set_topLeftOrtho(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->topLeftOrtho = param; return 0; } static int Polycode_Camera_set_cameraShift(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector2 *argInst = (Vector2*) *((PolyBase**)lua_touserdata(L, 2)); inst->cameraShift = *argInst; return 0; } static int Polycode_Camera(lua_State *L) { Camera *inst = new Camera(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.Camera"); lua_setmetatable(L, -2); return 1; } static int Polycode_Camera_buildFrustumPlanes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); inst->buildFrustumPlanes(); return 0; } static int Polycode_Camera_isSphereInFrustum(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 pos = *(Vector3*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); Number fRadius = lua_tonumber(L, 3); lua_pushboolean(L, inst->isSphereInFrustum(pos, fRadius)); return 1; } static int Polycode_Camera_isAABBInFrustum(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); AABB aabb = *(AABB*) *((PolyBase**)lua_touserdata(L, 2)); lua_pushboolean(L, inst->isAABBInFrustum(aabb)); return 1; } static int Polycode_Camera_setOrthoMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool mode = lua_toboolean(L, 2) != 0; inst->setOrthoMode(mode); return 0; } static int Polycode_Camera_setOrthoSize(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number orthoSizeX = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number orthoSizeY = lua_tonumber(L, 3); inst->setOrthoSize(orthoSizeX, orthoSizeY); return 0; } static int Polycode_Camera_setFrustumMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number left = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number right = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number bottom = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number top = lua_tonumber(L, 5); luaL_checktype(L, 6, LUA_TNUMBER); Number front = lua_tonumber(L, 6); luaL_checktype(L, 7, LUA_TNUMBER); Number back = lua_tonumber(L, 7); inst->setFrustumMode(left, right, bottom, top, front, back); return 0; } static int Polycode_Camera_getOrthoMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->getOrthoMode()); return 1; } static int Polycode_Camera_getOrthoSizeX(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getOrthoSizeX()); return 1; } static int Polycode_Camera_getOrthoSizeY(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getOrthoSizeY()); return 1; } static int Polycode_Camera_setFOV(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number fov = lua_tonumber(L, 2); inst->setFOV(fov); return 0; } static int Polycode_Camera_getFOV(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getFOV()); return 1; } static int Polycode_Camera_setClippingPlanes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number nearClipPlane = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number farClipPlane = lua_tonumber(L, 3); inst->setClippingPlanes(nearClipPlane, farClipPlane); return 0; } static int Polycode_Camera_getNearClippingPlane(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getNearClippingPlane()); return 1; } static int Polycode_Camera_getFarClippingPlane(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getFarClippingPlane()); return 1; } static int Polycode_Camera_createProjectionMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->createProjectionMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Camera_hasFilterShader(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->hasFilterShader()); return 1; } static int Polycode_Camera_setPostFilter(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); shared_ptr material = *(shared_ptr*) *((PolyBase**)lua_touserdata(L, 2)); inst->setPostFilter(material); return 0; } static int Polycode_Camera_removePostFilter(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); inst->removePostFilter(); return 0; } static int Polycode_Camera_getScreenShaderMaterial(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); shared_ptr *retInst = new shared_ptr(); *retInst = inst->getScreenShaderMaterial(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.shared_ptr"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Camera_getProjectionMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getProjectionMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Camera_setCustomProjectionMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 matrix = *(Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->setCustomProjectionMatrix(matrix); return 0; } static int Polycode_Camera_getViewport(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); Polycode::Rectangle *retInst = new Polycode::Rectangle(); *retInst = inst->getViewport(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Polycode::Rectangle"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Camera_setViewport(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Polycode::Rectangle viewport = *(Polycode::Rectangle*) *((PolyBase**)lua_touserdata(L, 2)); inst->setViewport(viewport); return 0; } static int Polycode_Camera_setOrthoSizeMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int orthoSizeMode = lua_tointeger(L, 2); inst->setOrthoSizeMode(orthoSizeMode); return 0; } static int Polycode_Camera_getOrthoSizeMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getOrthoSizeMode()); return 1; } static int Polycode_Camera_setProjectionMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int mode = lua_tointeger(L, 2); inst->setProjectionMode(mode); return 0; } static int Polycode_Camera_getProjectionMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getProjectionMode()); return 1; } static int Polycode_Camera_projectRayFrom2DCoordinate(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector2 coordinate = *(Vector2*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); Polycode::Rectangle viewport = *(Polycode::Rectangle*) *((PolyBase**)lua_touserdata(L, 3)); Vector3 *retInst = new Vector3(); *retInst = inst->projectRayFrom2DCoordinate(coordinate, viewport); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Camera_getShaderPass(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int index = lua_tointeger(L, 2); ShaderPass *retInst = new ShaderPass(); *retInst = inst->getShaderPass(index); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.ShaderPass"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Camera_getNumShaderPasses(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Camera *inst = (Camera*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getNumShaderPasses()); return 1; } static int Polycode_delete_Camera(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((Camera*) *inst); *inst = NULL; return 0; } static int Polycode_Color_get_r(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->r); return 1; } static int Polycode_Color_get_g(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->g); return 1; } static int Polycode_Color_get_b(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->b); return 1; } static int Polycode_Color_get_a(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->a); return 1; } static int Polycode_Color_set_r(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->r = param; return 0; } static int Polycode_Color_set_g(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->g = param; return 0; } static int Polycode_Color_set_b(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->b = param; return 0; } static int Polycode_Color_set_a(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->a = param; return 0; } static int Polycode_Color(lua_State *L) { luaL_checktype(L, 1, LUA_TNUMBER); Number r = lua_tonumber(L, 1); luaL_checktype(L, 2, LUA_TNUMBER); Number g = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number b = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number a = lua_tonumber(L, 4); Color *inst = new Color(r, g, b, a); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.Color"); lua_setmetatable(L, -2); return 1; } static int Polycode_Color_ColorWithInts(lua_State *L) { luaL_checktype(L, 1, LUA_TNUMBER); int r = lua_tointeger(L, 1); luaL_checktype(L, 2, LUA_TNUMBER); int g = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int b = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int a = lua_tointeger(L, 4); Color *retInst = new Color(); *retInst = Color::ColorWithInts(r, g, b, a); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Color"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Color_ColorWithHex(lua_State *L) { luaL_checktype(L, 1, LUA_TNUMBER); int hex = lua_tointeger(L, 1); Color *retInst = new Color(); *retInst = Color::ColorWithHex(hex); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Color"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Color_setColorHex(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int hex = lua_tointeger(L, 2); inst->setColorHex(hex); return 0; } static int Polycode_Color_setColorHexRGB(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int hex = lua_tointeger(L, 2); inst->setColorHexRGB(hex); return 0; } static int Polycode_Color_setColorHexFromString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String hex = String(lua_tostring(L, 2)); inst->setColorHexFromString(hex); return 0; } static int Polycode_Color_setColorHexRGBFromString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String hex = String(lua_tostring(L, 2)); inst->setColorHexRGBFromString(hex); return 0; } static int Polycode_Color_setColorHSV(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number h = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number s = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number v = lua_tonumber(L, 4); inst->setColorHSV(h, s, v); return 0; } static int Polycode_Color_setColorRGBA(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int r = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int g = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int b = lua_tointeger(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); int a = lua_tointeger(L, 5); inst->setColorRGBA(r, g, b, a); return 0; } static int Polycode_Color_setColorRGB(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int r = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int g = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int b = lua_tointeger(L, 4); inst->setColorRGB(r, g, b); return 0; } static int Polycode_Color_setColor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number r = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number g = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number b = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number a = lua_tonumber(L, 5); inst->setColor(r, g, b, a); return 0; } static int Polycode_Color_blendColor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Color c2 = *(Color*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); int mode = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number amount = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TUSERDATA); Color c3 = *(Color*) *((PolyBase**)lua_touserdata(L, 5)); Color *retInst = new Color(); *retInst = inst->blendColor(c2, mode, amount, c3); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Color"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Color_Random(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); inst->Random(); return 0; } static int Polycode_Color_getBrightness(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getBrightness()); return 1; } static int Polycode_Color_RGBtoHSV(lua_State *L) { luaL_checktype(L, 1, LUA_TNUMBER); Number r = lua_tonumber(L, 1); luaL_checktype(L, 2, LUA_TNUMBER); Number g = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number b = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number h = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number s = lua_tonumber(L, 5); luaL_checktype(L, 6, LUA_TNUMBER); Number v = lua_tonumber(L, 6); Color::RGBtoHSV(r, g, b, h, s, v); return 0; } static int Polycode_Color_getHue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getHue()); return 1; } static int Polycode_Color_getSaturation(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getSaturation()); return 1; } static int Polycode_Color_getValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getValue()); return 1; } static int Polycode_Color_getUint(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Color *inst = (Color*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getUint()); return 1; } static int Polycode_delete_Color(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((Color*) *inst); *inst = NULL; return 0; } static int Polycode_ConfigEntry_get_key(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->key.c_str()); return 1; } static int Polycode_ConfigEntry_get_configNamespace(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->configNamespace.c_str()); return 1; } static int Polycode_ConfigEntry_get_numVal(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->numVal); return 1; } static int Polycode_ConfigEntry_get_stringVal(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->stringVal.c_str()); return 1; } static int Polycode_ConfigEntry_get_isString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->isString); return 1; } static int Polycode_ConfigEntry_set_key(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->key = param; return 0; } static int Polycode_ConfigEntry_set_configNamespace(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->configNamespace = param; return 0; } static int Polycode_ConfigEntry_set_numVal(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->numVal = param; return 0; } static int Polycode_ConfigEntry_set_stringVal(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->stringVal = param; return 0; } static int Polycode_ConfigEntry_set_isString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); ConfigEntry *inst = (ConfigEntry*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->isString = param; return 0; } static int Polycode_delete_ConfigEntry(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((ConfigEntry*) *inst); *inst = NULL; return 0; } static int Polycode_Config(lua_State *L) { Config *inst = new Config(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.Config"); lua_setmetatable(L, -2); return 1; } static int Polycode_Config_loadConfig(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String fileName = String(lua_tostring(L, 3)); inst->loadConfig(configNamespace, fileName); return 0; } static int Polycode_Config_saveConfig(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String fileName = String(lua_tostring(L, 3)); inst->saveConfig(configNamespace, fileName); return 0; } static int Polycode_Config_setStringValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String key = String(lua_tostring(L, 3)); luaL_checktype(L, 4, LUA_TSTRING); String value = String(lua_tostring(L, 4)); inst->setStringValue(configNamespace, key, value); return 0; } static int Polycode_Config_setNumericValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String key = String(lua_tostring(L, 3)); luaL_checktype(L, 4, LUA_TNUMBER); Number value = lua_tonumber(L, 4); inst->setNumericValue(configNamespace, key, value); return 0; } static int Polycode_Config_getNumericValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String key = String(lua_tostring(L, 3)); lua_pushnumber(L, inst->getNumericValue(configNamespace, key)); return 1; } static int Polycode_Config_getStringValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String key = String(lua_tostring(L, 3)); lua_pushstring(L, inst->getStringValue(configNamespace, key).c_str()); return 1; } static int Polycode_Config_setBoolValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String key = String(lua_tostring(L, 3)); luaL_checktype(L, 4, LUA_TBOOLEAN); bool value = lua_toboolean(L, 4) != 0; inst->setBoolValue(configNamespace, key, value); return 0; } static int Polycode_Config_getBoolValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Config *inst = (Config*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String configNamespace = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String key = String(lua_tostring(L, 3)); lua_pushboolean(L, inst->getBoolValue(configNamespace, key)); return 1; } static int Polycode_delete_Config(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((Config*) *inst); *inst = NULL; return 0; } static int Polycode_Core_get_paused(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->paused); return 1; } static int Polycode_Core_get_pauseOnLoseFocus(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->pauseOnLoseFocus); return 1; } static int Polycode_Core_get_defaultScreenWidth(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->defaultScreenWidth); return 1; } static int Polycode_Core_get_defaultScreenHeight(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->defaultScreenHeight); return 1; } static int Polycode_Core_get_deviceAttitude(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->deviceAttitude; return 1; } static int Polycode_Core_set_paused(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->paused = param; return 0; } static int Polycode_Core_set_pauseOnLoseFocus(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->pauseOnLoseFocus = param; return 0; } static int Polycode_Core_set_defaultScreenWidth(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->defaultScreenWidth = param; return 0; } static int Polycode_Core_set_defaultScreenHeight(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->defaultScreenHeight = param; return 0; } static int Polycode_Core_set_deviceAttitude(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Quaternion *argInst = (Quaternion*) *((PolyBase**)lua_touserdata(L, 2)); inst->deviceAttitude = *argInst; return 0; } static int Polycode_Core_Update(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->Update()); return 1; } static int Polycode_Core_fixedUpdate(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->fixedUpdate()); return 1; } static int Polycode_Core_systemUpdate(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->systemUpdate()); return 1; } static int Polycode_Core_enableMouse(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool newval = lua_toboolean(L, 2) != 0; inst->enableMouse(newval); return 0; } static int Polycode_Core_captureMouse(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool newval = lua_toboolean(L, 2) != 0; inst->captureMouse(newval); return 0; } static int Polycode_Core_setCursor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int cursorType = lua_tointeger(L, 2); inst->setCursor(cursorType); return 0; } static int Polycode_Core_warpCursor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int x = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int y = lua_tointeger(L, 3); inst->warpCursor(x, y); return 0; } static int Polycode_Core_openOnScreenKeyboard(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool open = lua_toboolean(L, 2) != 0; inst->openOnScreenKeyboard(open); return 0; } static int Polycode_Core_copyStringToClipboard(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String str = String(lua_tostring(L, 2)); inst->copyStringToClipboard(str); return 0; } static int Polycode_Core_getClipboardString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->getClipboardString().c_str()); return 1; } static int Polycode_Core_getFPS(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getFPS()); return 1; } static int Polycode_Core_Shutdown(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); inst->Shutdown(); return 0; } static int Polycode_Core_isFullscreen(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->isFullscreen()); return 1; } static int Polycode_Core_getAALevel(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getAALevel()); return 1; } static int Polycode_Core_getXRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getXRes()); return 1; } static int Polycode_Core_getYRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getYRes()); return 1; } static int Polycode_Core_getBackingXRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getBackingXRes()); return 1; } static int Polycode_Core_getBackingYRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getBackingYRes()); return 1; } static int Polycode_Core_getScreenWidth(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getScreenWidth()); return 1; } static int Polycode_Core_getScreenHeight(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getScreenHeight()); return 1; } static int Polycode_Core_createFolder(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String folderPath = String(lua_tostring(L, 2)); inst->createFolder(folderPath); return 0; } static int Polycode_Core_copyDiskItem(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String itemPath = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String destItemPath = String(lua_tostring(L, 3)); inst->copyDiskItem(itemPath, destItemPath); return 0; } static int Polycode_Core_moveDiskItem(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String itemPath = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String destItemPath = String(lua_tostring(L, 3)); inst->moveDiskItem(itemPath, destItemPath); return 0; } static int Polycode_Core_removeDiskItem(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String itemPath = String(lua_tostring(L, 2)); inst->removeDiskItem(itemPath); return 0; } static int Polycode_Core_openFolderPicker(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->openFolderPicker().c_str()); return 1; } static int Polycode_Core_setFramerate(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int frameRate = lua_tointeger(L, 2); int maxFixedCycles; if(lua_isnumber(L, 3)) { maxFixedCycles = lua_tointeger(L, 3); } else { maxFixedCycles = 8; } inst->setFramerate(frameRate, maxFixedCycles); return 0; } static int Polycode_Core_openFilePicker(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); vector extensions = *(vector*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TBOOLEAN); bool allowMultiple = lua_toboolean(L, 3) != 0; return 0; } static int Polycode_Core_saveFilePicker(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); vector extensions = *(vector*) *((PolyBase**)lua_touserdata(L, 2)); lua_pushstring(L, inst->saveFilePicker(extensions).c_str()); return 1; } static int Polycode_Core_flushRenderContext(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); inst->flushRenderContext(); return 0; } static int Polycode_Core_prepareRenderContext(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); inst->prepareRenderContext(); return 0; } static int Polycode_Core_isWindowInitialized(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->isWindowInitialized()); return 1; } static int Polycode_Core_addFileSource(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String type = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String source = String(lua_tostring(L, 3)); inst->addFileSource(type, source); return 0; } static int Polycode_Core_removeFileSource(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String type = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String source = String(lua_tostring(L, 3)); inst->removeFileSource(type, source); return 0; } static int Polycode_Core_parseFolder(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String pathString = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TBOOLEAN); bool showHidden = lua_toboolean(L, 3) != 0; return 0; } static int Polycode_Core_systemParseFolder(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String pathString = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TBOOLEAN); bool showHidden = lua_toboolean(L, 3) != 0; luaL_checktype(L, 4, LUA_TUSERDATA); vector targetVector = *(vector*) *((PolyBase**)lua_touserdata(L, 4)); lua_pushboolean(L, inst->systemParseFolder(pathString, showHidden, targetVector)); return 1; } static int Polycode_Core_getResourcePathForFile(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String fileName = String(lua_tostring(L, 2)); lua_pushstring(L, inst->getResourcePathForFile(fileName).c_str()); return 1; } static int Polycode_Core_setVideoMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int xRes = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int yRes = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TBOOLEAN); bool fullScreen = lua_toboolean(L, 4) != 0; luaL_checktype(L, 5, LUA_TBOOLEAN); bool vSync = lua_toboolean(L, 5) != 0; luaL_checktype(L, 6, LUA_TNUMBER); int aaLevel = lua_tointeger(L, 6); luaL_checktype(L, 7, LUA_TNUMBER); int anisotropyLevel = lua_tointeger(L, 7); bool retinaSupport; if(lua_isboolean(L, 8)) { retinaSupport = lua_toboolean(L, 8) != 0; } else { retinaSupport = true; } inst->setVideoMode(xRes, yRes, fullScreen, vSync, aaLevel, anisotropyLevel, retinaSupport); return 0; } static int Polycode_Core_resizeTo(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int xRes = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int yRes = lua_tointeger(L, 3); inst->resizeTo(xRes, yRes); return 0; } static int Polycode_Core_doSleep(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); inst->doSleep(); return 0; } static int Polycode_Core_openURL(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String url = String(lua_tostring(L, 2)); inst->openURL(url); return 0; } static int Polycode_Core_getElapsed(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getElapsed()); return 1; } static int Polycode_Core_getTicks(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getTicks()); return 1; } static int Polycode_Core_getRefreshIntervalMs(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getRefreshIntervalMs()); return 1; } static int Polycode_Core_getTimeSleptMs(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getTimeSleptMs()); return 1; } static int Polycode_Core_getFixedTimestep(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getFixedTimestep()); return 1; } static int Polycode_Core_getViewport(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); Polycode::Rectangle *retInst = new Polycode::Rectangle(); *retInst = inst->getViewport(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Polycode::Rectangle"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Core_getTicksFloat(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getTicksFloat()); return 1; } static int Polycode_Core_executeExternalCommand(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String command = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String args = String(lua_tostring(L, 3)); luaL_checktype(L, 4, LUA_TSTRING); String inDirectory = String(lua_tostring(L, 4)); lua_pushstring(L, inst->executeExternalCommand(command, args, inDirectory).c_str()); return 1; } static int Polycode_Core_getDefaultWorkingDirectory(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->getDefaultWorkingDirectory().c_str()); return 1; } static int Polycode_Core_getUserHomeDirectory(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->getUserHomeDirectory().c_str()); return 1; } static int Polycode_Core_makeApplicationMain(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); inst->makeApplicationMain(); return 0; } static int Polycode_Core_getConfig(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Core *inst = (Core*) *((PolyBase**)lua_touserdata(L, 1)); ConfigRef *retInst = new ConfigRef(); *retInst = inst->getConfig(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.ConfigRef"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_delete_Core(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((Core*) *inst); *inst = NULL; return 0; } static int Polycode_VideoModeChangeInfo_get_xRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->xRes); return 1; } static int Polycode_VideoModeChangeInfo_get_yRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->yRes); return 1; } static int Polycode_VideoModeChangeInfo_get_fullScreen(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->fullScreen); return 1; } static int Polycode_VideoModeChangeInfo_get_vSync(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->vSync); return 1; } static int Polycode_VideoModeChangeInfo_get_aaLevel(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->aaLevel); return 1; } static int Polycode_VideoModeChangeInfo_get_anisotropyLevel(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->anisotropyLevel); return 1; } static int Polycode_VideoModeChangeInfo_get_retinaSupport(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->retinaSupport); return 1; } static int Polycode_VideoModeChangeInfo_set_xRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->xRes = param; return 0; } static int Polycode_VideoModeChangeInfo_set_yRes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->yRes = param; return 0; } static int Polycode_VideoModeChangeInfo_set_fullScreen(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->fullScreen = param; return 0; } static int Polycode_VideoModeChangeInfo_set_vSync(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->vSync = param; return 0; } static int Polycode_VideoModeChangeInfo_set_aaLevel(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->aaLevel = param; return 0; } static int Polycode_VideoModeChangeInfo_set_anisotropyLevel(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->anisotropyLevel = param; return 0; } static int Polycode_VideoModeChangeInfo_set_retinaSupport(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); VideoModeChangeInfo *inst = (VideoModeChangeInfo*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->retinaSupport = param; return 0; } static int Polycode_delete_VideoModeChangeInfo(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((VideoModeChangeInfo*) *inst); *inst = NULL; return 0; } static int Polycode_PolycodeViewBase_get_resizable(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolycodeViewBase *inst = (PolycodeViewBase*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->resizable); return 1; } static int Polycode_PolycodeViewBase_set_resizable(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolycodeViewBase *inst = (PolycodeViewBase*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->resizable = param; return 0; } static int Polycode_PolycodeViewBase(lua_State *L) { PolycodeViewBase *inst = new PolycodeViewBase(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.PolycodeViewBase"); lua_setmetatable(L, -2); return 1; } static int Polycode_delete_PolycodeViewBase(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((PolycodeViewBase*) *inst); *inst = NULL; return 0; } static int Polycode_DummyCore(lua_State *L) { DummyCore *inst = new DummyCore(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.DummyCore"); lua_setmetatable(L, -2); return 1; } static int Polycode_DummyCore_systemUpdate(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->systemUpdate()); return 1; } static int Polycode_DummyCore_setCursor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int cursorType = lua_tointeger(L, 2); inst->setCursor(cursorType); return 0; } static int Polycode_DummyCore_copyStringToClipboard(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String str = String(lua_tostring(L, 2)); inst->copyStringToClipboard(str); return 0; } static int Polycode_DummyCore_getClipboardString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->getClipboardString().c_str()); return 1; } static int Polycode_DummyCore_createFolder(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String folderPath = String(lua_tostring(L, 2)); inst->createFolder(folderPath); return 0; } static int Polycode_DummyCore_copyDiskItem(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String itemPath = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String destItemPath = String(lua_tostring(L, 3)); inst->copyDiskItem(itemPath, destItemPath); return 0; } static int Polycode_DummyCore_moveDiskItem(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String itemPath = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String destItemPath = String(lua_tostring(L, 3)); inst->moveDiskItem(itemPath, destItemPath); return 0; } static int Polycode_DummyCore_removeDiskItem(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String itemPath = String(lua_tostring(L, 2)); inst->removeDiskItem(itemPath); return 0; } static int Polycode_DummyCore_openFolderPicker(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->openFolderPicker().c_str()); return 1; } static int Polycode_DummyCore_openFilePicker(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); vector extensions = *(vector*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TBOOLEAN); bool allowMultiple = lua_toboolean(L, 3) != 0; return 0; } static int Polycode_DummyCore_saveFilePicker(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); vector extensions = *(vector*) *((PolyBase**)lua_touserdata(L, 2)); lua_pushstring(L, inst->saveFilePicker(extensions).c_str()); return 1; } static int Polycode_DummyCore_flushRenderContext(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); inst->flushRenderContext(); return 0; } static int Polycode_DummyCore_openURL(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String url = String(lua_tostring(L, 2)); inst->openURL(url); return 0; } static int Polycode_DummyCore_getTicks(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getTicks()); return 1; } static int Polycode_DummyCore_executeExternalCommand(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String command = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String args = String(lua_tostring(L, 3)); luaL_checktype(L, 4, LUA_TSTRING); String inDirectory = String(lua_tostring(L, 4)); lua_pushstring(L, inst->executeExternalCommand(command, args, inDirectory).c_str()); return 1; } static int Polycode_DummyCore_systemParseFolder(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); DummyCore *inst = (DummyCore*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String pathString = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TBOOLEAN); bool showHidden = lua_toboolean(L, 3) != 0; luaL_checktype(L, 4, LUA_TUSERDATA); vector targetVector = *(vector*) *((PolyBase**)lua_touserdata(L, 4)); lua_pushboolean(L, inst->systemParseFolder(pathString, showHidden, targetVector)); return 1; } static int Polycode_delete_DummyCore(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((DummyCore*) *inst); *inst = NULL; return 0; } static int Polycode_TimeInfo_get_seconds(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->seconds); return 1; } static int Polycode_TimeInfo_get_minutes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->minutes); return 1; } static int Polycode_TimeInfo_get_hours(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->hours); return 1; } static int Polycode_TimeInfo_get_month(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->month); return 1; } static int Polycode_TimeInfo_get_monthDay(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->monthDay); return 1; } static int Polycode_TimeInfo_get_weekDay(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->weekDay); return 1; } static int Polycode_TimeInfo_get_year(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->year); return 1; } static int Polycode_TimeInfo_get_yearDay(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->yearDay); return 1; } static int Polycode_TimeInfo_set_seconds(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->seconds = param; return 0; } static int Polycode_TimeInfo_set_minutes(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->minutes = param; return 0; } static int Polycode_TimeInfo_set_hours(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->hours = param; return 0; } static int Polycode_TimeInfo_set_month(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->month = param; return 0; } static int Polycode_TimeInfo_set_monthDay(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->monthDay = param; return 0; } static int Polycode_TimeInfo_set_weekDay(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->weekDay = param; return 0; } static int Polycode_TimeInfo_set_year(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->year = param; return 0; } static int Polycode_TimeInfo_set_yearDay(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); TimeInfo *inst = (TimeInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->yearDay = param; return 0; } static int Polycode_TimeInfo(lua_State *L) { TimeInfo *inst = new TimeInfo(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.TimeInfo"); lua_setmetatable(L, -2); return 1; } static int Polycode_delete_TimeInfo(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((TimeInfo*) *inst); *inst = NULL; return 0; } static int Polycode_CoreMotionEvent_get_amount(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreMotionEvent *inst = (CoreMotionEvent*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->amount; return 1; } static int Polycode_CoreMotionEvent_set_amount(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreMotionEvent *inst = (CoreMotionEvent*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->amount = *argInst; return 0; } static int Polycode_CoreMotionEvent(lua_State *L) { CoreMotionEvent *inst = new CoreMotionEvent(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.CoreMotionEvent"); lua_setmetatable(L, -2); return 1; } static int Polycode_delete_CoreMotionEvent(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((CoreMotionEvent*) *inst); *inst = NULL; return 0; } static int Polycode_CoreFileExtension_get_extension(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreFileExtension *inst = (CoreFileExtension*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->extension.c_str()); return 1; } static int Polycode_CoreFileExtension_get_description(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreFileExtension *inst = (CoreFileExtension*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->description.c_str()); return 1; } static int Polycode_CoreFileExtension_set_extension(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreFileExtension *inst = (CoreFileExtension*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->extension = param; return 0; } static int Polycode_CoreFileExtension_set_description(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreFileExtension *inst = (CoreFileExtension*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->description = param; return 0; } static int Polycode_CoreFileExtension(lua_State *L) { CoreFileExtension *inst = new CoreFileExtension(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.CoreFileExtension"); lua_setmetatable(L, -2); return 1; } static int Polycode_delete_CoreFileExtension(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((CoreFileExtension*) *inst); *inst = NULL; return 0; } static int Polycode_OSFileEntry_get_name(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->name.c_str()); return 1; } static int Polycode_OSFileEntry_get_extension(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->extension.c_str()); return 1; } static int Polycode_OSFileEntry_get_nameWithoutExtension(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->nameWithoutExtension.c_str()); return 1; } static int Polycode_OSFileEntry_get_basePath(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->basePath.c_str()); return 1; } static int Polycode_OSFileEntry_get_fullPath(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->fullPath.c_str()); return 1; } static int Polycode_OSFileEntry_get_type(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->type); return 1; } static int Polycode_OSFileEntry_set_name(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->name = param; return 0; } static int Polycode_OSFileEntry_set_extension(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->extension = param; return 0; } static int Polycode_OSFileEntry_set_nameWithoutExtension(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->nameWithoutExtension = param; return 0; } static int Polycode_OSFileEntry_set_basePath(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->basePath = param; return 0; } static int Polycode_OSFileEntry_set_fullPath(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->fullPath = param; return 0; } static int Polycode_OSFileEntry_set_type(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->type = param; return 0; } static int Polycode_OSFileEntry(lua_State *L) { OSFileEntry *inst = new OSFileEntry(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.OSFileEntry"); lua_setmetatable(L, -2); return 1; } static int Polycode_OSFileEntry_init(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); OSFileEntry *inst = (OSFileEntry*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String path = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String name = String(lua_tostring(L, 3)); luaL_checktype(L, 4, LUA_TNUMBER); int type = lua_tointeger(L, 4); inst->init(path, name, type); return 0; } static int Polycode_delete_OSFileEntry(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((OSFileEntry*) *inst); *inst = NULL; return 0; } static int Polycode_CoreInput_get_simulateTouchWithMouse(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->simulateTouchWithMouse); return 1; } static int Polycode_CoreInput_get_simulateTouchAsPen(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->simulateTouchAsPen); return 1; } static int Polycode_CoreInput_get_simulateMouseWithTouch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->simulateMouseWithTouch); return 1; } static int Polycode_CoreInput_get_keyRepeat(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->keyRepeat); return 1; } static int Polycode_CoreInput_get_mousePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->mousePosition; return 1; } static int Polycode_CoreInput_get_deltaMousePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->deltaMousePosition; return 1; } static int Polycode_CoreInput_set_simulateTouchWithMouse(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->simulateTouchWithMouse = param; return 0; } static int Polycode_CoreInput_set_simulateTouchAsPen(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->simulateTouchAsPen = param; return 0; } static int Polycode_CoreInput_set_simulateMouseWithTouch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->simulateMouseWithTouch = param; return 0; } static int Polycode_CoreInput_set_keyRepeat(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->keyRepeat = param; return 0; } static int Polycode_CoreInput_set_mousePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector2 *argInst = (Vector2*) *((PolyBase**)lua_touserdata(L, 2)); inst->mousePosition = *argInst; return 0; } static int Polycode_CoreInput_set_deltaMousePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector2 *argInst = (Vector2*) *((PolyBase**)lua_touserdata(L, 2)); inst->deltaMousePosition = *argInst; return 0; } static int Polycode_CoreInput(lua_State *L) { CoreInput *inst = new CoreInput(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.CoreInput"); lua_setmetatable(L, -2); return 1; } static int Polycode_CoreInput_getMousePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); Vector2 *retInst = new Vector2(); *retInst = inst->getMousePosition(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector2"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_CoreInput_getKeyState(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); PolyKEY keyCode = (PolyKEY)lua_tointeger(L, 2); lua_pushboolean(L, inst->getKeyState(keyCode)); return 1; } static int Polycode_CoreInput_getJoystickButtonState(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int joystickIndex = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int button = lua_tointeger(L, 3); lua_pushboolean(L, inst->getJoystickButtonState(joystickIndex, button)); return 1; } static int Polycode_CoreInput_getJoystickAxisValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int joystickIndex = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int axis = lua_tointeger(L, 3); lua_pushnumber(L, inst->getJoystickAxisValue(joystickIndex, axis)); return 1; } static int Polycode_CoreInput_getMouseDelta(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); Vector2 *retInst = new Vector2(); *retInst = inst->getMouseDelta(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector2"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_CoreInput_getMouseButtonState(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int mouseButton = lua_tointeger(L, 2); lua_pushboolean(L, inst->getMouseButtonState(mouseButton)); return 1; } static int Polycode_CoreInput_getNumJoysticks(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getNumJoysticks()); return 1; } static int Polycode_CoreInput_addJoystick(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int deviceID = lua_tointeger(L, 2); inst->addJoystick(deviceID); return 0; } static int Polycode_CoreInput_removeJoystick(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int deviceID = lua_tointeger(L, 2); inst->removeJoystick(deviceID); return 0; } static int Polycode_CoreInput_joystickAxisMoved(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int axisID = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number value = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int deviceID = lua_tointeger(L, 4); inst->joystickAxisMoved(axisID, value, deviceID); return 0; } static int Polycode_CoreInput_joystickButtonDown(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int buttonID = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int deviceID = lua_tointeger(L, 3); inst->joystickButtonDown(buttonID, deviceID); return 0; } static int Polycode_CoreInput_joystickButtonUp(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int buttonID = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int deviceID = lua_tointeger(L, 3); inst->joystickButtonUp(buttonID, deviceID); return 0; } static int Polycode_CoreInput_mouseWheelUp(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int ticks = lua_tointeger(L, 2); inst->mouseWheelUp(ticks); return 0; } static int Polycode_CoreInput_mouseWheelDown(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int ticks = lua_tointeger(L, 2); inst->mouseWheelDown(ticks); return 0; } static int Polycode_CoreInput_setMouseButtonState(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int mouseButton = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TBOOLEAN); bool state = lua_toboolean(L, 3) != 0; luaL_checktype(L, 4, LUA_TNUMBER); int ticks = lua_tointeger(L, 4); inst->setMouseButtonState(mouseButton, state, ticks); return 0; } static int Polycode_CoreInput_setMousePosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int x = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int y = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int ticks = lua_tointeger(L, 4); inst->setMousePosition(x, y, ticks); return 0; } static int Polycode_CoreInput_setKeyState(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); PolyKEY keyCode = (PolyKEY)lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TBOOLEAN); bool newState = lua_toboolean(L, 3) != 0; luaL_checktype(L, 4, LUA_TNUMBER); int ticks = lua_tointeger(L, 4); inst->setKeyState(keyCode, newState, ticks); return 0; } static int Polycode_CoreInput_setDeltaPosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int x = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int y = lua_tointeger(L, 3); inst->setDeltaPosition(x, y); return 0; } static int Polycode_CoreInput_touchesBegan(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); TouchInfo touch = *(TouchInfo*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); vector touches = *(vector*) *((PolyBase**)lua_touserdata(L, 3)); luaL_checktype(L, 4, LUA_TNUMBER); int ticks = lua_tointeger(L, 4); inst->touchesBegan(touch, touches, ticks); return 0; } static int Polycode_CoreInput_touchesMoved(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); TouchInfo touch = *(TouchInfo*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); vector touches = *(vector*) *((PolyBase**)lua_touserdata(L, 3)); luaL_checktype(L, 4, LUA_TNUMBER); int ticks = lua_tointeger(L, 4); inst->touchesMoved(touch, touches, ticks); return 0; } static int Polycode_CoreInput_touchesEnded(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); TouchInfo touch = *(TouchInfo*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); vector touches = *(vector*) *((PolyBase**)lua_touserdata(L, 3)); luaL_checktype(L, 4, LUA_TNUMBER); int ticks = lua_tointeger(L, 4); inst->touchesEnded(touch, touches, ticks); return 0; } static int Polycode_CoreInput_textInput(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String text = String(lua_tostring(L, 2)); inst->textInput(text); return 0; } static int Polycode_CoreInput_clearInput(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); CoreInput *inst = (CoreInput*) *((PolyBase**)lua_touserdata(L, 1)); inst->clearInput(); return 0; } static int Polycode_delete_CoreInput(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((CoreInput*) *inst); *inst = NULL; return 0; } static int Polycode_JoystickInfo_get_deviceID(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); JoystickInfo *inst = (JoystickInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->deviceID); return 1; } static int Polycode_JoystickInfo_get_deviceIndex(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); JoystickInfo *inst = (JoystickInfo*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->deviceIndex); return 1; } static int Polycode_JoystickInfo_set_deviceID(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); JoystickInfo *inst = (JoystickInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->deviceID = param; return 0; } static int Polycode_JoystickInfo_set_deviceIndex(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); JoystickInfo *inst = (JoystickInfo*) *((PolyBase**)lua_touserdata(L, 1)); int param = lua_tointeger(L, 2); inst->deviceIndex = param; return 0; } static int Polycode_JoystickInfo(lua_State *L) { JoystickInfo *inst = new JoystickInfo(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.JoystickInfo"); lua_setmetatable(L, -2); return 1; } static int Polycode_delete_JoystickInfo(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((JoystickInfo*) *inst); *inst = NULL; return 0; } static int Polycode_Data(lua_State *L) { Data *inst = new Data(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.Data"); lua_setmetatable(L, -2); return 1; } static int Polycode_Data_getAsString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Data *inst = (Data*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int encoding = lua_tointeger(L, 2); lua_pushstring(L, inst->getAsString(encoding).c_str()); return 1; } static int Polycode_Data_setFromString(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Data *inst = (Data*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String str = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); int encoding = lua_tointeger(L, 3); inst->setFromString(str, encoding); return 0; } static int Polycode_delete_Data(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((Data*) *inst); *inst = NULL; return 0; } static int Polycode_MouseEventResult_get_hit(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); MouseEventResult *inst = (MouseEventResult*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->hit); return 1; } static int Polycode_MouseEventResult_get_blocked(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); MouseEventResult *inst = (MouseEventResult*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->blocked); return 1; } static int Polycode_MouseEventResult_set_hit(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); MouseEventResult *inst = (MouseEventResult*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->hit = param; return 0; } static int Polycode_MouseEventResult_set_blocked(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); MouseEventResult *inst = (MouseEventResult*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->blocked = param; return 0; } static int Polycode_delete_MouseEventResult(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((MouseEventResult*) *inst); *inst = NULL; return 0; } static int Polycode_EntityProp_get_propName(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); EntityProp *inst = (EntityProp*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->propName.c_str()); return 1; } static int Polycode_EntityProp_get_propValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); EntityProp *inst = (EntityProp*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->propValue.c_str()); return 1; } static int Polycode_EntityProp_set_propName(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); EntityProp *inst = (EntityProp*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->propName = param; return 0; } static int Polycode_EntityProp_set_propValue(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); EntityProp *inst = (EntityProp*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->propValue = param; return 0; } static int Polycode_delete_EntityProp(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((EntityProp*) *inst); *inst = NULL; return 0; } static int Polycode_AABB_get_min(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); AABB *inst = (AABB*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->min; return 1; } static int Polycode_AABB_get_max(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); AABB *inst = (AABB*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->max; return 1; } static int Polycode_AABB_set_min(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); AABB *inst = (AABB*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->min = *argInst; return 0; } static int Polycode_AABB_set_max(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); AABB *inst = (AABB*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 *argInst = (Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->max = *argInst; return 0; } static int Polycode_delete_AABB(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((AABB*) *inst); *inst = NULL; return 0; } static int Polycode_Rotation_get_pitch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Rotation *inst = (Rotation*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->pitch); return 1; } static int Polycode_Rotation_get_yaw(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Rotation *inst = (Rotation*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->yaw); return 1; } static int Polycode_Rotation_get_roll(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Rotation *inst = (Rotation*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->roll); return 1; } static int Polycode_Rotation_set_pitch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Rotation *inst = (Rotation*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->pitch = param; return 0; } static int Polycode_Rotation_set_yaw(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Rotation *inst = (Rotation*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->yaw = param; return 0; } static int Polycode_Rotation_set_roll(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Rotation *inst = (Rotation*) *((PolyBase**)lua_touserdata(L, 1)); Number param = lua_tonumber(L, 2); inst->roll = param; return 0; } static int Polycode_Rotation(lua_State *L) { Rotation *inst = new Rotation(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.Rotation"); lua_setmetatable(L, -2); return 1; } static int Polycode_delete_Rotation(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); PolyBase **inst = (PolyBase**)lua_touserdata(L, 1); delete ((Rotation*) *inst); *inst = NULL; return 0; } static int Polycode_Entity_get_ownsChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->ownsChildren); return 1; } static int Polycode_Entity_get_billboardMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->billboardMode); return 1; } static int Polycode_Entity_get_color(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->color; return 1; } static int Polycode_Entity_get_enabled(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->enabled); return 1; } static int Polycode_Entity_get_visible(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->visible); return 1; } static int Polycode_Entity_get_depthWrite(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->depthWrite); return 1; } static int Polycode_Entity_get_depthTest(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->depthTest); return 1; } static int Polycode_Entity_get_colorAffectsChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->colorAffectsChildren); return 1; } static int Polycode_Entity_get_visibilityAffectsChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->visibilityAffectsChildren); return 1; } static int Polycode_Entity_get_ignoreParentMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->ignoreParentMatrix); return 1; } static int Polycode_Entity_get_enableScissor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->enableScissor); return 1; } static int Polycode_Entity_get_scissorBox(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->scissorBox; return 1; } static int Polycode_Entity_get_editorOnly(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->editorOnly); return 1; } static int Polycode_Entity_get_id(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushstring(L, inst->id.c_str()); return 1; } static int Polycode_Entity_get_collisionShapeType(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->collisionShapeType; return 1; } static int Polycode_Entity_get_processInputEvents(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->processInputEvents); return 1; } static int Polycode_Entity_get_blockMouseInput(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->blockMouseInput); return 1; } static int Polycode_Entity_get_snapToPixels(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->snapToPixels); return 1; } static int Polycode_Entity_get_mouseOver(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->mouseOver); return 1; } static int Polycode_Entity_get_rendererVis(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->rendererVis); return 1; } static int Polycode_Entity_get_layerID(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)&inst->layerID; return 1; } static int Polycode_Entity_get_castShadows(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->castShadows); return 1; } static int Polycode_Entity_set_ownsChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->ownsChildren = param; return 0; } static int Polycode_Entity_set_billboardMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->billboardMode = param; return 0; } static int Polycode_Entity_set_color(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Color *argInst = (Color*) *((PolyBase**)lua_touserdata(L, 2)); inst->color = *argInst; return 0; } static int Polycode_Entity_set_enabled(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->enabled = param; return 0; } static int Polycode_Entity_set_visible(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->visible = param; return 0; } static int Polycode_Entity_set_depthWrite(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->depthWrite = param; return 0; } static int Polycode_Entity_set_depthTest(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->depthTest = param; return 0; } static int Polycode_Entity_set_colorAffectsChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->colorAffectsChildren = param; return 0; } static int Polycode_Entity_set_visibilityAffectsChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->visibilityAffectsChildren = param; return 0; } static int Polycode_Entity_set_ignoreParentMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->ignoreParentMatrix = param; return 0; } static int Polycode_Entity_set_enableScissor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->enableScissor = param; return 0; } static int Polycode_Entity_set_scissorBox(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Rectangle *argInst = (Rectangle*) *((PolyBase**)lua_touserdata(L, 2)); inst->scissorBox = *argInst; return 0; } static int Polycode_Entity_set_editorOnly(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->editorOnly = param; return 0; } static int Polycode_Entity_set_id(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); String param = lua_tostring(L, 2); inst->id = param; return 0; } static int Polycode_Entity_set_collisionShapeType(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); char *argInst = (char*) *((PolyBase**)lua_touserdata(L, 2)); inst->collisionShapeType = *argInst; return 0; } static int Polycode_Entity_set_processInputEvents(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->processInputEvents = param; return 0; } static int Polycode_Entity_set_blockMouseInput(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->blockMouseInput = param; return 0; } static int Polycode_Entity_set_snapToPixels(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->snapToPixels = param; return 0; } static int Polycode_Entity_set_mouseOver(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->mouseOver = param; return 0; } static int Polycode_Entity_set_rendererVis(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->rendererVis = param; return 0; } static int Polycode_Entity_set_layerID(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); char *argInst = (char*) *((PolyBase**)lua_touserdata(L, 2)); inst->layerID = *argInst; return 0; } static int Polycode_Entity_set_castShadows(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); bool param = lua_toboolean(L, 2) != 0; inst->castShadows = param; return 0; } static int Polycode_Entity(lua_State *L) { Entity *inst = new Entity(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); *userdataPtr = (PolyBase*)inst; luaL_getmetatable(L, "Polycode.Entity"); lua_setmetatable(L, -2); return 1; } static int Polycode_Entity_initEntity(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->initEntity(); return 0; } static int Polycode_Entity_Update(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number elapsed = lua_tonumber(L, 2); inst->Update(elapsed); return 0; } static int Polycode_Entity_fixedUpdate(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->fixedUpdate(); return 0; } static int Polycode_Entity_dirtyMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool val = lua_toboolean(L, 2) != 0; inst->dirtyMatrix(val); return 0; } static int Polycode_Entity_rebuildTransformMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->rebuildTransformMatrix(); return 0; } static int Polycode_Entity_updateEntityMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->updateEntityMatrix(); return 0; } static int Polycode_Entity_getTransformMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getTransformMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getConcatenatedMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getConcatenatedMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getAnchorAdjustedMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getAnchorAdjustedMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getConcatenatedRollMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getConcatenatedRollMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_setTransformByMatrixPure(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 matrix = *(Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); inst->setTransformByMatrixPure(matrix); return 0; } static int Polycode_Entity_getLookAtMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 loc = *(Vector3*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); Vector3 upVector = *(Vector3*) *((PolyBase**)lua_touserdata(L, 3)); Matrix4 *retInst = new Matrix4(); *retInst = inst->getLookAtMatrix(loc, upVector); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getNumChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getNumChildren()); return 1; } static int Polycode_Entity_setOwnsChildrenRecursive(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool val = lua_toboolean(L, 2) != 0; inst->setOwnsChildrenRecursive(val); return 0; } static int Polycode_Entity_getPosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector3 *retInst = new Vector3(); *retInst = inst->getPosition(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getPosition2D(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector2 *retInst = new Vector2(); *retInst = inst->getPosition2D(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector2"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getCombinedPosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector3 *retInst = new Vector3(); *retInst = inst->getCombinedPosition(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_setPosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number y = lua_tonumber(L, 3); Number z; if(lua_isnumber(L, 4)) { z = lua_tonumber(L, 4); } else { z = 0.0; } inst->setPosition(x, y, z); return 0; } static int Polycode_Entity_setPositionX(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); inst->setPositionX(x); return 0; } static int Polycode_Entity_setPositionY(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number y = lua_tonumber(L, 2); inst->setPositionY(y); return 0; } static int Polycode_Entity_Translate(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number y = lua_tonumber(L, 3); Number z; if(lua_isnumber(L, 4)) { z = lua_tonumber(L, 4); } else { z = 0.0; } inst->Translate(x, y, z); return 0; } static int Polycode_Entity_setPositionZ(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number z = lua_tonumber(L, 2); inst->setPositionZ(z); return 0; } static int Polycode_Entity_setScaleX(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); inst->setScaleX(x); return 0; } static int Polycode_Entity_setScaleY(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number y = lua_tonumber(L, 2); inst->setScaleY(y); return 0; } static int Polycode_Entity_setScaleZ(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number z = lua_tonumber(L, 2); inst->setScaleZ(z); return 0; } static int Polycode_Entity_Scale(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number y = lua_tonumber(L, 3); Number z; if(lua_isnumber(L, 4)) { z = lua_tonumber(L, 4); } else { z = 0.0; } inst->Scale(x, y, z); return 0; } static int Polycode_Entity_setScale(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number y = lua_tonumber(L, 3); Number z; if(lua_isnumber(L, 4)) { z = lua_tonumber(L, 4); } else { z = 1.0; } inst->setScale(x, y, z); return 0; } static int Polycode_Entity_getCompoundScale(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector3 *retInst = new Vector3(); *retInst = inst->getCompoundScale(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getScale(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector3 *retInst = new Vector3(); *retInst = inst->getScale(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getRotationEuler(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector3 *retInst = new Vector3(); *retInst = inst->getRotationEuler(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getCombinedPitch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getCombinedPitch()); return 1; } static int Polycode_Entity_getCombinedYaw(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getCombinedYaw()); return 1; } static int Polycode_Entity_getCombinedRoll(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getCombinedRoll()); return 1; } static int Polycode_Entity_rebuildRotation(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->rebuildRotation(); return 0; } static int Polycode_Entity_setRotationEuler(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 rotation = *(Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->setRotationEuler(rotation); return 0; } static int Polycode_Entity_setPitch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number pitch = lua_tonumber(L, 2); inst->setPitch(pitch); return 0; } static int Polycode_Entity_setYaw(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number yaw = lua_tonumber(L, 2); inst->setYaw(yaw); return 0; } static int Polycode_Entity_setRoll(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number roll = lua_tonumber(L, 2); inst->setRoll(roll); return 0; } static int Polycode_Entity_Roll(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number roll = lua_tonumber(L, 2); inst->Roll(roll); return 0; } static int Polycode_Entity_Yaw(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number yaw = lua_tonumber(L, 2); inst->Yaw(yaw); return 0; } static int Polycode_Entity_Pitch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number pitch = lua_tonumber(L, 2); inst->Pitch(pitch); return 0; } static int Polycode_Entity_getPitch(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getPitch()); return 1; } static int Polycode_Entity_getYaw(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getYaw()); return 1; } static int Polycode_Entity_getRoll(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getRoll()); return 1; } static int Polycode_Entity_getWidth(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getWidth()); return 1; } static int Polycode_Entity_getHeight(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getHeight()); return 1; } static int Polycode_Entity_getDepth(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushnumber(L, inst->getDepth()); return 1; } static int Polycode_Entity_setWidth(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number width = lua_tonumber(L, 2); inst->setWidth(width); return 0; } static int Polycode_Entity_setHeight(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number height = lua_tonumber(L, 2); inst->setHeight(height); return 0; } static int Polycode_Entity_setDepth(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number depth = lua_tonumber(L, 2); inst->setDepth(depth); return 0; } static int Polycode_Entity_setRotationQuat(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number w = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number x = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number y = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number z = lua_tonumber(L, 5); inst->setRotationQuat(w, x, y, z); return 0; } static int Polycode_Entity_setRotationByQuaternion(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Quaternion quaternion = *(Quaternion*) *((PolyBase**)lua_touserdata(L, 2)); inst->setRotationByQuaternion(quaternion); return 0; } static int Polycode_Entity_getRotationQuat(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Quaternion *retInst = new Quaternion(); *retInst = inst->getRotationQuat(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Quaternion"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getConcatenatedQuat(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Quaternion *retInst = new Quaternion(); *retInst = inst->getConcatenatedQuat(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Quaternion"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_lookAt(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 loc = *(Vector3*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); Vector3 upVector = *(Vector3*) *((PolyBase**)lua_touserdata(L, 3)); inst->lookAt(loc, upVector); return 0; } static int Polycode_Entity_getCombinedColor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Color *retInst = new Color(); *retInst = inst->getCombinedColor(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Color"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_setColor(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number r = lua_tonumber(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); Number g = lua_tonumber(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); Number b = lua_tonumber(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); Number a = lua_tonumber(L, 5); inst->setColor(r, g, b, a); return 0; } static int Polycode_Entity_setColorInt(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int r = lua_tointeger(L, 2); luaL_checktype(L, 3, LUA_TNUMBER); int g = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int b = lua_tointeger(L, 4); luaL_checktype(L, 5, LUA_TNUMBER); int a = lua_tointeger(L, 5); inst->setColorInt(r, g, b, a); return 0; } static int Polycode_Entity_setAnchorPoint(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 anchorPoint = *(Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->setAnchorPoint(anchorPoint); return 0; } static int Polycode_Entity_getAnchorPoint(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector3 *retInst = new Vector3(); *retInst = inst->getAnchorPoint(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_onMouseDown(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Ray ray = *(Ray*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); int mouseButton = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int timestamp = lua_tointeger(L, 4); MouseEventResult *retInst = new MouseEventResult(); *retInst = inst->onMouseDown(ray, mouseButton, timestamp); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.MouseEventResult"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_onMouseUp(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Ray ray = *(Ray*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); int mouseButton = lua_tointeger(L, 3); luaL_checktype(L, 4, LUA_TNUMBER); int timestamp = lua_tointeger(L, 4); MouseEventResult *retInst = new MouseEventResult(); *retInst = inst->onMouseUp(ray, mouseButton, timestamp); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.MouseEventResult"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_onMouseMove(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Ray ray = *(Ray*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); int timestamp = lua_tointeger(L, 3); MouseEventResult *retInst = new MouseEventResult(); *retInst = inst->onMouseMove(ray, timestamp); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.MouseEventResult"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_onMouseWheelUp(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Ray ray = *(Ray*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); int timestamp = lua_tointeger(L, 3); MouseEventResult *retInst = new MouseEventResult(); *retInst = inst->onMouseWheelUp(ray, timestamp); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.MouseEventResult"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_onMouseWheelDown(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Ray ray = *(Ray*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TNUMBER); int timestamp = lua_tointeger(L, 3); MouseEventResult *retInst = new MouseEventResult(); *retInst = inst->onMouseWheelDown(ray, timestamp); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.MouseEventResult"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_setDepthOnly(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool val = lua_toboolean(L, 2) != 0; inst->setDepthOnly(val); return 0; } static int Polycode_Entity_getDepthOnly(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->getDepthOnly()); return 1; } static int Polycode_Entity_setBlendingMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int newBlendingMode = lua_tointeger(L, 2); inst->setBlendingMode(newBlendingMode); return 0; } static int Polycode_Entity_getBlendingMode(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getBlendingMode()); return 1; } static int Polycode_Entity_getEntityProp(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String propName = String(lua_tostring(L, 2)); lua_pushstring(L, inst->getEntityProp(propName).c_str()); return 1; } static int Polycode_Entity_setEntityProp(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String propName = String(lua_tostring(L, 2)); luaL_checktype(L, 3, LUA_TSTRING); String propValue = String(lua_tostring(L, 3)); inst->setEntityProp(propName, propValue); return 0; } static int Polycode_Entity_setInverseY(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TBOOLEAN); bool val = lua_toboolean(L, 2) != 0; inst->setInverseY(val); return 0; } static int Polycode_Entity_getInverseY(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushboolean(L, inst->getInverseY()); return 1; } static int Polycode_Entity_doUpdates(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number elapsed = lua_tonumber(L, 2); inst->doUpdates(elapsed); return 0; } static int Polycode_Entity_doFixedUpdates(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->doFixedUpdates(); return 0; } static int Polycode_Entity_buildPositionMatrix(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Matrix4 *retInst = new Matrix4(); *retInst = inst->buildPositionMatrix(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Matrix4"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_customHitDetection(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Ray ray = *(Ray*) *((PolyBase**)lua_touserdata(L, 2)); lua_pushboolean(L, inst->customHitDetection(ray)); return 1; } static int Polycode_Entity_getNumTags(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); lua_pushinteger(L, inst->getNumTags()); return 1; } static int Polycode_Entity_getTagAtIndex(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); int index = lua_tointeger(L, 2); lua_pushstring(L, inst->getTagAtIndex(index).c_str()); return 1; } static int Polycode_Entity_hasTag(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String tag = String(lua_tostring(L, 2)); lua_pushboolean(L, inst->hasTag(tag)); return 1; } static int Polycode_Entity_clearTags(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->clearTags(); return 0; } static int Polycode_Entity_addTag(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TSTRING); String tag = String(lua_tostring(L, 2)); inst->addTag(tag); return 0; } static int Polycode_Entity_getScreenPosition(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Matrix4 projectionMatrix = *(Matrix4*) *((PolyBase**)lua_touserdata(L, 2)); luaL_checktype(L, 3, LUA_TUSERDATA); Matrix4 cameraMatrix = *(Matrix4*) *((PolyBase**)lua_touserdata(L, 3)); luaL_checktype(L, 4, LUA_TUSERDATA); Polycode::Rectangle viewport = *(Polycode::Rectangle*) *((PolyBase**)lua_touserdata(L, 4)); Vector2 *retInst = new Vector2(); *retInst = inst->getScreenPosition(projectionMatrix, cameraMatrix, viewport); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector2"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_recalculateAABBAllChildren(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->recalculateAABBAllChildren(); return 0; } static int Polycode_Entity_recalculateAABB(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); inst->recalculateAABB(); return 0; } static int Polycode_Entity_getWorldAABB(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); AABB *retInst = new AABB(); *retInst = inst->getWorldAABB(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.AABB"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_getLocalBoundingBox(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); Vector3 *retInst = new Vector3(); *retInst = inst->getLocalBoundingBox(); PolyBase **userdataPtr = (PolyBase**)lua_newuserdata(L, sizeof(PolyBase*)); luaL_getmetatable(L, "Polycode.Vector3"); lua_setmetatable(L, -2); *userdataPtr = (PolyBase*)retInst; return 1; } static int Polycode_Entity_setLocalBoundingBox(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); Vector3 box = *(Vector3*) *((PolyBase**)lua_touserdata(L, 2)); inst->setLocalBoundingBox(box); return 0; } static int Polycode_Entity_setLocalBoundingBoxX(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number x = lua_tonumber(L, 2); inst->setLocalBoundingBoxX(x); return 0; } static int Polycode_Entity_setLocalBoundingBoxY(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number y = lua_tonumber(L, 2); inst->setLocalBoundingBoxY(y); return 0; } static int Polycode_Entity_setLocalBoundingBoxZ(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TNUMBER); Number z = lua_tonumber(L, 2); inst->setLocalBoundingBoxZ(z); return 0; } static int Polycode_Entity_attachScript(lua_State *L) { luaL_checktype(L, 1, LUA_TUSERDATA); Entity *inst = (Entity*) *((PolyBase**)lua_touserdata(L, 1)); luaL_checktype(L, 2, LUA_TUSERDATA); shared_ptr