public void Teleport(PlayerLocation newPosition) { new EntityTeleport(Wrapper) { UniqueServerId = EntityId, Coordinates = newPosition.ToVector3(), OnGround = newPosition.OnGround, Pitch = newPosition.Pitch, Yaw = newPosition.Yaw }.Broadcast(Level, true, this); }
public bool SetIntersectLocation(BoundingBox bbox, PlayerLocation location) { var ray = new Ray(location.ToVector3() - Velocity, Velocity.Normalize()); var distance = ray.Intersects(bbox); if (distance != null) { var dist = (double) distance - 0.1; var pos = ray.Position + (ray.Direction*dist); KnownPosition.X = (float) pos.X; KnownPosition.Y = (float) pos.Y; KnownPosition.Z = (float) pos.Z; return true; } return false; }