fix body:set_gravity_scale & fix docs

This commit is contained in:
MihailRis 2025-09-22 23:52:50 +03:00
parent e61e8a6147
commit 8b38d57966
4 changed files with 11 additions and 6 deletions

View File

@ -86,9 +86,9 @@ body:get_size() -> vec3
body:set_size(size: vec3)
-- Returns the gravity multiplier
body:get_gravity_scale() -> vec3
body:get_gravity_scale() -> number
-- Sets the gravity multiplier
body:set_gravity_scale(scale: vec3)
body:set_gravity_scale(scale: number)
-- Returns the linear velocity attenuation multiplier (used to simulate air resistance and friction)
body:get_linear_damping() -> number

View File

@ -86,9 +86,9 @@ body:get_size() -> vec3
body:set_size(size: vec3)
-- Возвращает множитель гравитации
body:get_gravity_scale() -> vec3
body:get_gravity_scale() -> number
-- Устанавливает множитель гравитации
body:set_gravity_scale(scale: vec3)
body:set_gravity_scale(scale: number)
-- Возвращает множитель затухания линейной скорости (используется для имитации сопротивления воздуха и трения)
body:get_linear_damping() -> number

View File

@ -159,7 +159,7 @@ local prev_angle = (vec2.angle({dir[3], dir[1]})) % 360
function on_physics_update(delta)
local grounded = body:is_grounded()
body:set_vdamping(flight)
body:set_gravity_scale({0, flight and 0.0 or props.gravity_scale, 0})
body:set_gravity_scale(flight and 0.0 or props.gravity_scale)
body:set_linear_damping(
(flight or not grounded) and props.air_damping or props.ground_damping
)

View File

@ -54,7 +54,12 @@ static int l_get_gravity_scale(lua::State* L) {
static int l_set_gravity_scale(lua::State* L) {
if (auto entity = get_entity(L, 1)) {
entity->getRigidbody().hitbox.gravityScale = lua::tovec3(L, 2).y;
auto& hitbox = entity->getRigidbody().hitbox;
if (lua::istable(L, 2)) {
hitbox.gravityScale = lua::tovec3(L, 2).y;
} else {
hitbox.gravityScale = lua::tonumber(L, 2);
}
}
return 0;
}