+local physics_attrs = {"jump", "speed", "gravity"}
+local function apply_physics_override(player, overrides)
+ if player_monoids then
+ for _, attr in pairs(physics_attrs) do
+ if overrides[attr] then
+ player_monoids[attr]:add_change(player, overrides[attr], "hangglider:glider")
+ end
+ end
+ else
+ player:set_physics_override(overrides)
+ end
+end
+
+local function remove_physics_override(player, overrides)
+ for _, attr in pairs(physics_attrs) do
+ if overrides[attr] then
+ if player_monoids then
+ player_monoids[attr]:del_change(player, "hangglider:glider")
+ else
+ player:set_physics_override({[attr] = 1})
+ end
+ end
+ end
+end
+