entity: truncate move delta to [0, 1]
This commit is contained in:
parent
0e4e17ced7
commit
9122954e62
@ -25,6 +25,13 @@ const MoveEps = 1e-7
|
|||||||
// It does not change anything in e.
|
// It does not change anything in e.
|
||||||
func (e *Entity) move(delta itype.Vec3d, w *world.World) (finDelta itype.Vec3d, finVelocity itype.Vec3d, onGround bool) {
|
func (e *Entity) move(delta itype.Vec3d, w *world.World) (finDelta itype.Vec3d, finVelocity itype.Vec3d, onGround bool) {
|
||||||
|
|
||||||
|
// Truncate the delta to [0, 1]
|
||||||
|
for i := 0; i < len(delta); i++ {
|
||||||
|
if math.Abs(delta[i]) > 1 {
|
||||||
|
delta[i] /= math.Abs(delta[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get the hitboxes and the blocks region covering it
|
// Get the hitboxes and the blocks region covering it
|
||||||
hb := e.WorldHitbox()
|
hb := e.WorldHitbox()
|
||||||
hbmin, hbmax := itype.Vec3d{1000000000, 1000000000, 1000000000}, itype.Vec3d{-1000000000, -1000000000, -1000000000}
|
hbmin, hbmax := itype.Vec3d{1000000000, 1000000000, 1000000000}, itype.Vec3d{-1000000000, -1000000000, -1000000000}
|
||||||
|
Loading…
Reference in New Issue
Block a user