github.com/df-mc/dragonfly@v0.9.13/server/block/prismarine_type.go (about) 1 package block 2 3 // PrismarineType represents a type of prismarine. 4 type PrismarineType struct { 5 prismarine 6 } 7 8 type prismarine uint8 9 10 // NormalPrismarine is the normal variant of prismarine. 11 func NormalPrismarine() PrismarineType { 12 return PrismarineType{0} 13 } 14 15 // DarkPrismarine is the dark variant of prismarine. 16 func DarkPrismarine() PrismarineType { 17 return PrismarineType{1} 18 } 19 20 // BrickPrismarine is the brick variant of prismarine. 21 func BrickPrismarine() PrismarineType { 22 return PrismarineType{2} 23 } 24 25 // Uint8 returns the prismarine as a uint8. 26 func (s prismarine) Uint8() uint8 { 27 return uint8(s) 28 } 29 30 // Name ... 31 func (s prismarine) Name() string { 32 switch s { 33 case 0: 34 return "Prismarine" 35 case 1: 36 return "Dark Prismarine" 37 case 2: 38 return "Prismarine Bricks" 39 } 40 panic("unknown prismarine type") 41 } 42 43 // String ... 44 func (s prismarine) String() string { 45 switch s { 46 case 0: 47 return "default" 48 case 1: 49 return "dark" 50 case 2: 51 return "bricks" 52 } 53 panic("unknown prismarine type") 54 } 55 56 // PrismarineTypes ... 57 func PrismarineTypes() []PrismarineType { 58 return []PrismarineType{NormalPrismarine(), DarkPrismarine(), BrickPrismarine()} 59 }