add on_player_set entity component event

This commit is contained in:
MihailRis 2026-07-18 19:09:43 +03:00
parent 8d7fab1f2f
commit e4a11f182e
9 changed files with 29 additions and 15 deletions

View file

@ -142,14 +142,16 @@ end
function is_flight() return flight end
function set_flight(flag) flight = flag end
function set_flight(flag)
flight = flag
body:set_gravity_scale(flight and 0.0 or props.gravity_scale)
end
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(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

@ -58,16 +58,12 @@ local function process_player_inputs(pid, rot, delta)
end
end
local prepared = false
body:set_enabled(false)
mob.set_flight(true)
function on_player_set(pid)
mob.set_flight(player.is_flight(pid))
body:set_body_type(player.is_noclip(pid) and "kinematic" or "dynamic")
end
function on_physics_update(delta)
if not prepared then
prepared = true
body:set_enabled(true)
end
local pid = entity:get_player()
if pid == -1 then
return