github.com/df-mc/dragonfly@v0.9.13/server/block/wood_type.go (about) 1 package block 2 3 // WoodType represents a type of wood of a block. Some blocks, such as log blocks, bark blocks, wooden planks and 4 // others carry one of these types. 5 type WoodType struct { 6 wood 7 } 8 9 // OakWood returns oak wood material. 10 func OakWood() WoodType { 11 return WoodType{0} 12 } 13 14 // SpruceWood returns spruce wood material. 15 func SpruceWood() WoodType { 16 return WoodType{1} 17 } 18 19 // BirchWood returns birchwood material. 20 func BirchWood() WoodType { 21 return WoodType{2} 22 } 23 24 // JungleWood returns jungle wood material. 25 func JungleWood() WoodType { 26 return WoodType{3} 27 } 28 29 // AcaciaWood returns acacia wood material. 30 func AcaciaWood() WoodType { 31 return WoodType{4} 32 } 33 34 // DarkOakWood returns dark oak wood material. 35 func DarkOakWood() WoodType { 36 return WoodType{5} 37 } 38 39 // CrimsonWood returns crimson wood material. 40 func CrimsonWood() WoodType { 41 return WoodType{6} 42 } 43 44 // WarpedWood returns warped wood material. 45 func WarpedWood() WoodType { 46 return WoodType{7} 47 } 48 49 // Mangrove returns mangrove wood material. 50 func Mangrove() WoodType { 51 return WoodType{8} 52 } 53 54 // Cherry returns cherry wood material. 55 func Cherry() WoodType { 56 return WoodType{9} 57 } 58 59 // WoodTypes returns a list of all wood types 60 func WoodTypes() []WoodType { 61 return []WoodType{OakWood(), SpruceWood(), BirchWood(), JungleWood(), AcaciaWood(), DarkOakWood(), CrimsonWood(), WarpedWood(), Mangrove(), Cherry()} 62 } 63 64 type wood uint8 65 66 // Uint8 returns the wood as a uint8. 67 func (w wood) Uint8() uint8 { 68 return uint8(w) 69 } 70 71 // Name ... 72 func (w wood) Name() string { 73 switch w { 74 case 0: 75 return "Oak Wood" 76 case 1: 77 return "Spruce Wood" 78 case 2: 79 return "Birch Wood" 80 case 3: 81 return "Jungle Wood" 82 case 4: 83 return "Acacia Wood" 84 case 5: 85 return "Dark Oak Wood" 86 case 6: 87 return "Crimson Wood" 88 case 7: 89 return "Warped Wood" 90 case 8: 91 return "Mangrove Wood" 92 case 9: 93 return "Cherry Wood" 94 } 95 panic("unknown wood type") 96 } 97 98 // String ... 99 func (w wood) String() string { 100 switch w { 101 case 0: 102 return "oak" 103 case 1: 104 return "spruce" 105 case 2: 106 return "birch" 107 case 3: 108 return "jungle" 109 case 4: 110 return "acacia" 111 case 5: 112 return "dark_oak" 113 case 6: 114 return "crimson" 115 case 7: 116 return "warped" 117 case 8: 118 return "mangrove" 119 case 9: 120 return "cherry" 121 } 122 panic("unknown wood type") 123 } 124 125 // Flammable returns whether the wood type is flammable. 126 func (w wood) Flammable() bool { 127 return w != CrimsonWood().wood && w != WarpedWood().wood 128 }