github.com/df-mc/dragonfly@v0.9.13/server/block/tall_grass_type.go (about) 1 package block 2 3 // TallGrassType represents a tall grass plant, which can be placed on top of grass blocks. 4 type TallGrassType struct { 5 tallGrass 6 } 7 8 // LegacyTallGrass returns the legacy tall grass variant of tall grass. 9 func LegacyTallGrass() TallGrassType { 10 return TallGrassType{0} 11 } 12 13 // NormalTallGrass returns the tall grass variant of tall grass. 14 func NormalTallGrass() TallGrassType { 15 return TallGrassType{1} 16 } 17 18 // FernTallGrass returns the fern variant of tall grass. 19 func FernTallGrass() TallGrassType { 20 return TallGrassType{2} 21 } 22 23 // TallGrassTypes returns all variants of tall grass. 24 func TallGrassTypes() []TallGrassType { 25 return []TallGrassType{LegacyTallGrass(), NormalTallGrass(), FernTallGrass()} 26 } 27 28 type tallGrass uint8 29 30 // Uint8 ... 31 func (g tallGrass) Uint8() uint8 { 32 return uint8(g) 33 } 34 35 // Double returns the double tall grass variant of the tall grass. 36 func (g tallGrass) Double() DoubleTallGrassType { 37 switch g { 38 case 0, 1: 39 return NormalDoubleTallGrass() 40 case 2: 41 return FernDoubleTallGrass() 42 } 43 panic("unknown tall grass type") 44 } 45 46 // Name ... 47 func (g tallGrass) Name() string { 48 switch g { 49 case 0, 1: 50 return "Grass" 51 case 2: 52 return "Fern" 53 } 54 panic("unknown tall grass type") 55 } 56 57 // String ... 58 func (g tallGrass) String() string { 59 switch g { 60 case 0: 61 return "default" 62 case 1: 63 return "tall" 64 case 2: 65 return "fern" 66 } 67 panic("unknown tall grass type") 68 }