From a6aa42a5211ec504623dc475b973549652685da1 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 4 Jul 2024 06:18:11 +0300 Subject: [PATCH] add transform:get_size(), :set_size(...) --- res/modules/internal/stdcomp.lua | 2 ++ src/logic/scripting/lua/libentity.cpp | 2 ++ src/objects/Entities.hpp | 7 +++++++ 3 files changed, 11 insertions(+) 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;