FTE's straight push: a pusher moved by move takes along what stands on it and what
its new place overlaps, by setting each one's origin and testing the spot. One that
will not fit is nudged an eighth of a unit further, then left where it was if that is
free; a box with no width, one not solid or a box trigger (flattened), or anything in
a liquid pusher's way never blocks. Anything else blocks: the pusher and everything
moved go back, and the pusher's blocked runs. Nothing is touched by the push itself.
{:ok, server} = QuakeServer.Physics.Push.run(server, train, {4.0, 0.0, 0.0})
Summary
Functions
Push pusher by move. Returns {:ok, server}, or {:blocked, server} with everything put back.
Functions
@spec run(QuakeServer.Server.t(), non_neg_integer(), Cauldron3D.Vec.t()) :: {:ok | :blocked, QuakeServer.Server.t()}
Push pusher by move. Returns {:ok, server}, or {:blocked, server} with everything put back.