package world

// import (
// 	"math"
// 	"time"
// )

// // SetPosition method move your character around.
// // Server will ignore this if changes too much.
// func (g *Client) SetPosition(x, y, z float64, onGround bool) {
// 	g.motion <- func() {
// 		g.player.X, g.player.Y, g.player.Z = x, y, z
// 		g.player.OnGround = onGround
// 		sendPlayerPositionPacket(g) //向服务器更新位置
// 	}
// }

// // LookAt method turn player's hand and make it look at a point.
// func (g *Client) LookAt(x, y, z float64) {
// 	x0, y0, z0 := g.player.X, g.player.Y, g.player.Z
// 	x, y, z = x-x0, y-y0, z-z0

// 	r := math.Sqrt(x*x + y*y + z*z)
// 	yaw := -math.Atan2(x, z) / math.Pi * 180
// 	for yaw < 0 {
// 		yaw = 360 + yaw
// 	}
// 	pitch := -math.Asin(y/r) / math.Pi * 180

// 	g.LookYawPitch(float32(yaw), float32(pitch))
// }

// // LookYawPitch set player's hand to the direct by yaw and pitch.
// // yaw can be [0, 360) and pitch can be (-180, 180).
// // if |pitch|>90 the player's hand will be very strange.
// func (g *Client) LookYawPitch(yaw, pitch float32) {
// 	g.motion <- func() {
// 		g.player.Yaw, g.player.Pitch = yaw, pitch
// 		sendPlayerLookPacket(g) //向服务器更新朝向
// 	}
// }

// // SwingHand sent when the player's arm swings.
// // if hand is true, swing the main hand
// func (g *Client) SwingHand(hand bool) {
// 	if hand {
// 		sendAnimationPacket(g, 0)
// 	} else {
// 		sendAnimationPacket(g, 1)
// 	}
// }

// // Dig a block in the position and wait for it's breaked
// func (g *Client) Dig(x, y, z int) error {
// 	b := g.GetBlock(x, y, z).id
// 	sendPlayerDiggingPacket(g, 0, x, y, z, Top) //start
// 	sendPlayerDiggingPacket(g, 2, x, y, z, Top) //end

// 	for {
// 		time.Sleep(time.Millisecond * 50)
// 		if g.GetBlock(x, y, z).id != b {
// 			break
// 		}
// 		g.SwingHand(true)
// 	}

// 	return nil
// }

// // UseItem use the item in hand.
// // if hand is true, swing the main hand
// func (g *Client) UseItem(hand bool) {
// 	if hand {
// 		sendUseItemPacket(g, 0)
// 	} else {
// 		sendUseItemPacket(g, 1)
// 	}
// }
