package item import ( "github.com/df-mc/dragonfly/server/world" "github.com/df-mc/dragonfly/server/world/sound" ) // Snowball is a throwable combat item obtained through shovelling snow. type Snowball struct{} // MaxCount ... func (s Snowball) MaxCount() int { return 16 } // Use ... func (s Snowball) Use(tx *world.Tx, user User, ctx *UseContext) bool { create := tx.World().EntityRegistry().Config().Snowball opts := world.EntitySpawnOpts{Position: eyePosition(user), Velocity: user.Rotation().Vec3().Mul(1.5)} tx.AddEntity(create(opts, user)) tx.PlaySound(user.Position(), sound.ItemThrow{}) ctx.SubtractFromCount(1) return true } // EncodeItem ... func (s Snowball) EncodeItem() (name string, meta int16) { return "minecraft:snowball", 0 }