diff --git a/res/modules/internal/stdcomp.lua b/res/modules/internal/stdcomp.lua index a7b4f13d..71976711 100644 --- a/res/modules/internal/stdcomp.lua +++ b/res/modules/internal/stdcomp.lua @@ -3,6 +3,8 @@ local Transform = {__index={ get_pos=function(self) return __transform.get_pos(self.eid) end, set_pos=function(self, v) return __transform.set_pos(self.eid, v) end, + get_size=function(self) return __transform.get_size(self.eid) end, + set_size=function(self, v) return __transform.set_size(self.eid, v) end, get_rot=function(self) return __transform.get_rot(self.eid) end, set_rot=function(self, m) return __transform.set_rot(self.eid, m) end, }} diff --git a/src/logic/scripting/lua/libentity.cpp b/src/logic/scripting/lua/libentity.cpp index 68eec78c..224c112f 100644 --- a/src/logic/scripting/lua/libentity.cpp +++ b/src/logic/scripting/lua/libentity.cpp @@ -195,6 +195,8 @@ const luaL_Reg modeltreelib [] = { const luaL_Reg transformlib [] = { {"get_pos", lua::wrap}, {"set_pos", lua::wrap}, + {"get_size", lua::wrap}, + {"set_size", lua::wrap}, {"get_rot", lua::wrap}, {"set_rot", lua::wrap}, {NULL, NULL} diff --git a/src/objects/Entities.hpp b/src/objects/Entities.hpp index 9b484fe1..58ceb7f5 100644 --- a/src/objects/Entities.hpp +++ b/src/objects/Entities.hpp @@ -44,6 +44,13 @@ struct Transform { dirty = true; } + inline void setSize(glm::vec3 v) { + if (glm::distance2(size, v) >= 0.0000001f) { + dirty = true; + } + size = v; + } + inline void setPos(glm::vec3 v) { if (glm::distance2(pos, v) >= 0.00001f) { dirty = true;