github.com/df-mc/dragonfly@v0.9.13/server/block/anvil_type.go (about) 1 package block 2 3 // AnvilType represents a type of anvil, such as undamaged, slightly damaged, or very damaged. 4 type AnvilType struct { 5 anvil 6 } 7 8 // UndamagedAnvil returns the undamaged anvil type. 9 func UndamagedAnvil() AnvilType { 10 return AnvilType{0} 11 } 12 13 // SlightlyDamagedAnvil returns the slightly damaged anvil type. 14 func SlightlyDamagedAnvil() AnvilType { 15 return AnvilType{1} 16 } 17 18 // VeryDamagedAnvil returns the very damaged anvil type. 19 func VeryDamagedAnvil() AnvilType { 20 return AnvilType{2} 21 } 22 23 // AnvilTypes returns all anvil types. 24 func AnvilTypes() []AnvilType { 25 return []AnvilType{UndamagedAnvil(), SlightlyDamagedAnvil(), VeryDamagedAnvil()} 26 } 27 28 type anvil uint8 29 30 // Uint8 returns the anvil type as a uint8. 31 func (a anvil) Uint8() uint8 { 32 return uint8(a) 33 } 34 35 // String returns the anvil type as a string. 36 func (a anvil) String() string { 37 switch a { 38 case 0: 39 return "undamaged" 40 case 1: 41 return "slightly_damaged" 42 case 2: 43 return "very_damaged" 44 } 45 panic("should never happen") 46 }