Doors, lifts and trains, as FTE runs them (WPhys_Physics_Pusher): brush models that
move on their own clock (ltime) by their velocity and turn by their avelocity,
through QuakeServer.Physics.Push (moving only) or QuakeServer.Physics.PushTurn
(turning). Each frame a pusher moves for the frame, or only until its nextthink when
that comes first; the clock advances only when the push went through. When the clock
has reached nextthink the think runs, with the program's time the frame's start. A
pusher its think moved or turned is put back and pushed that far, taking along what it
carries.
server = QuakeServer.Physics.Pusher.run(server, door)
Summary
Functions
Push pusher by move and turn it by turn at once, as after its think moved it.
Move pusher entity through this frame, and run its think when its clock has reached it.
Functions
@spec push( QuakeServer.Server.t(), non_neg_integer(), Cauldron3D.Vec.t(), Cauldron3D.Vec.t() ) :: {:ok | :blocked, QuakeServer.Server.t()}
Push pusher by move and turn it by turn at once, as after its think moved it.
@spec run(QuakeServer.Server.t(), non_neg_integer()) :: QuakeServer.Server.t()
Move pusher entity through this frame, and run its think when its clock has reached it.