diff --git a/res/content/base/models/drop-item.obj b/res/content/base/models/drop-item.obj index 58702e79..2bb32447 100644 --- a/res/content/base/models/drop-item.obj +++ b/res/content/base/models/drop-item.obj @@ -1,28 +1,52 @@ o Cube -v -0.282501 -0.015663 -0.282501 -v -0.282501 -0.015663 0.2825 -v 0.2825 -0.015663 0.282501 -v 0.282501 -0.015663 -0.2825 -v 0.282501 0.021634 -0.2825 -v 0.2825 0.021634 0.282501 -v -0.282501 0.021634 0.2825 -v -0.282501 0.021634 -0.282501 -v -0.282501 0.021634 -0.282501 -v -0.282501 0.021634 0.2825 -v 0.2825 0.021634 0.282501 -v 0.282501 0.021634 -0.2825 -v 0.282501 -0.015663 -0.2825 -v 0.2825 -0.015663 0.282501 -v -0.282501 -0.015663 0.2825 -v -0.282501 -0.015663 -0.282501 -v 0.282501 0.0284 -0.2825 -v 0.2825 0.0284 0.282501 -v -0.282501 0.0284 0.2825 -v -0.282501 0.0284 -0.282501 -v -0.282501 0.0284 -0.282501 -v -0.282501 0.0284 0.2825 -v 0.2825 0.0284 0.282501 -v 0.282501 0.0284 -0.2825 +v 0.282501 -0.01971 -0.28250 +v -0.282501 -0.01971 -0.282501 +v -0.282501 -0.01971 0.28250 +v 0.28250 -0.01971 0.282501 +v 0.282501 0.05986 -0.28250 +v -0.282501 0.05986 -0.282501 +v -0.282501 0.05986 0.28250 +v 0.28250 0.05986 0.282501 +v 0.282501 0.05986 -0.28250 +v 0.28250 0.05986 0.282501 +v -0.282501 0.05986 0.28250 +v -0.282501 0.05986 -0.282501 +v 0.282501 -0.01971 -0.28250 +v 0.28250 -0.01971 0.282501 +v -0.282501 -0.01971 0.28250 +v -0.282501 -0.01971 -0.282501 +v 0.282501 0.05986 -0.28250 +v -0.282501 0.05986 -0.282501 +v -0.282501 0.05986 0.28250 +v 0.28250 0.05986 0.282501 +v 0.282501 0.05986 -0.28250 +v 0.28250 0.05986 0.282501 +v -0.282501 0.05986 0.28250 +v -0.282501 0.05986 -0.282501 +v 0.282501 0.01156 -0.28250 +v -0.282501 0.01156 -0.282501 +v -0.282501 0.01156 0.28250 +v 0.28250 0.01156 0.282501 +v 0.282501 0.04422 -0.28250 +v -0.282501 0.04422 -0.282501 +v -0.282501 0.04422 0.28250 +v 0.28250 0.04422 0.282501 +v 0.282501 0.04422 -0.28250 +v 0.28250 0.04422 0.282501 +v -0.282501 0.04422 0.28250 +v -0.282501 0.04422 -0.282501 +v 0.282501 0.01156 -0.28250 +v 0.28250 0.01156 0.282501 +v -0.282501 0.01156 0.28250 +v -0.282501 0.01156 -0.282501 +v 0.282501 0.04422 -0.28250 +v -0.282501 0.04422 -0.282501 +v -0.282501 0.04422 0.28250 +v 0.28250 0.04422 0.282501 +v 0.282501 0.04422 -0.28250 +v 0.28250 0.04422 0.282501 +v -0.282501 0.04422 0.28250 +v -0.282501 0.04422 -0.282501 vt 0.0 0.0 vt 1.0 0.0 vt 1.0 1.0 @@ -47,13 +71,43 @@ vt 0.0 0.0 vt 0.0 1.0 vt 1.0 1.0 vt 1.0 0.0 -vn 0.0 1.0 0.0 -vn 0.0 -1.0 0.0 +vt 0.0 0.0 +vt 1.0 0.0 +vt 1.0 1.0 +vt 0.0 1.0 +vt 0.0 0.0 +vt 1.0 0.0 +vt 1.0 1.0 +vt 0.0 1.0 +vt 0.0 0.0 +vt 0.0 1.0 +vt 1.0 1.0 +vt 1.0 0.0 +vt 0.0 0.0 +vt 0.0 1.0 +vt 1.0 1.0 +vt 1.0 0.0 +vt 0.0 0.0 +vt 1.0 0.0 +vt 1.0 1.0 +vt 0.0 1.0 +vt 0.0 0.0 +vt 0.0 1.0 +vt 1.0 1.0 +vt 1.0 0.0 +vn -0.0 1.0 0.0 +vn 0.0 -1.0 -0.0 usemtl $0 -s off -f 4/1/1 1/2/1 2/3/1 3/4/1 -f 5/5/1 8/6/1 7/7/1 6/8/1 -f 12/9/2 11/10/2 10/11/2 9/12/2 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/1 6/6/1 7/7/1 8/8/1 +f 9/9/2 10/10/2 11/11/2 12/12/2 f 13/13/2 14/14/2 15/15/2 16/16/2 -f 17/17/1 20/18/1 19/19/1 18/20/1 -f 24/21/2 23/22/2 22/23/2 21/24/2 +f 17/17/1 18/18/1 19/19/1 20/20/1 +f 21/21/2 22/22/2 23/23/2 24/24/2 +f 25/25/1 26/26/1 27/27/1 28/28/1 +f 29/29/1 30/30/1 31/31/1 32/32/1 +f 33/33/2 34/34/2 35/35/2 36/36/2 +f 37/37/2 38/38/2 39/39/2 40/40/2 +f 41/41/1 42/42/1 43/43/1 44/44/1 +f 45/45/2 46/46/2 47/47/2 48/48/2 diff --git a/res/content/base/scripts/components/drop.lua b/res/content/base/scripts/components/drop.lua index 8d579cf2..fe67ad70 100644 --- a/res/content/base/scripts/components/drop.lua +++ b/res/content/base/scripts/components/drop.lua @@ -17,6 +17,7 @@ do -- setup visuals local bid = block.index(icon:sub(16)) if block.get_model(bid) == "X" then entity:set_rig("drop-item") + body:set_size(vec3.mul(body:get_size(), {1.0, 0.3, 1.0})) rig:set_texture("$0", icon) else local textures = block.get_textures(bid) @@ -26,6 +27,7 @@ do -- setup visuals end else entity:set_rig("drop-item") + body:set_size(vec3.mul(body:get_size(), {1.0, 0.3, 1.0})) rig:set_texture("$0", icon) end end diff --git a/res/modules/internal/stdcomp.lua b/res/modules/internal/stdcomp.lua index 985604ee..a7b4f13d 100644 --- a/res/modules/internal/stdcomp.lua +++ b/res/modules/internal/stdcomp.lua @@ -17,6 +17,7 @@ local Rigidbody = {__index={ get_vel=function(self) return __rigidbody.get_vel(self.eid) end, set_vel=function(self, v) return __rigidbody.set_vel(self.eid, v) end, get_size=function(self) return __rigidbody.get_size(self.eid) end, + set_size=function(self, v) return __rigidbody.set_size(self.eid, v) end, }} function new_Rigidbody(eid) diff --git a/src/logic/scripting/lua/libentity.cpp b/src/logic/scripting/lua/libentity.cpp index 337d53ac..68eec78c 100644 --- a/src/logic/scripting/lua/libentity.cpp +++ b/src/logic/scripting/lua/libentity.cpp @@ -119,7 +119,14 @@ static int l_set_enabled(lua::State* L) { static int l_get_size(lua::State* L) { if (auto entity = get_entity(L, 1)) { - return lua::pushvec3(L, entity->getRigidbody().hitbox.halfsize * 2.0f); + return lua::pushvec3_arr(L, entity->getRigidbody().hitbox.halfsize * 2.0f); + } + return 0; +} + +static int l_set_size(lua::State* L) { + if (auto entity = get_entity(L, 1)) { + entity->getRigidbody().hitbox.halfsize = lua::tovec3(L, 2) * 0.5f; } return 0; } @@ -199,5 +206,6 @@ const luaL_Reg rigidbodylib [] = { {"get_vel", lua::wrap}, {"set_vel", lua::wrap}, {"get_size", lua::wrap}, + {"set_size", lua::wrap}, {NULL, NULL} };