github.com/df-mc/dragonfly@v0.9.13/server/block/banner_pattern_type.go (about) 1 package block 2 3 import "github.com/df-mc/dragonfly/server/item" 4 5 // BannerPatternType represents a type of banner pattern, used to customize banners. 6 type BannerPatternType struct { 7 bannerPatternType 8 } 9 10 // BorderBannerPattern represents the 'Border' banner pattern type. 11 func BorderBannerPattern() BannerPatternType { 12 return BannerPatternType{0} 13 } 14 15 // BricksBannerPattern represents the 'Bricks' banner pattern type. 16 func BricksBannerPattern() BannerPatternType { 17 return BannerPatternType{1} 18 } 19 20 // CircleBannerPattern represents the 'Circle' banner pattern type. 21 func CircleBannerPattern() BannerPatternType { 22 return BannerPatternType{2} 23 } 24 25 // CreeperBannerPattern represents the 'Creeper' banner pattern type. 26 func CreeperBannerPattern() BannerPatternType { 27 return BannerPatternType{3} 28 } 29 30 // CrossBannerPattern represents the 'Cross' banner pattern type. 31 func CrossBannerPattern() BannerPatternType { 32 return BannerPatternType{4} 33 } 34 35 // CurlyBorderBannerPattern represents the 'Curly Border' banner pattern type. 36 func CurlyBorderBannerPattern() BannerPatternType { 37 return BannerPatternType{5} 38 } 39 40 // DiagonalLeftBannerPattern represents the 'Diagonal Left' banner pattern type. 41 func DiagonalLeftBannerPattern() BannerPatternType { 42 return BannerPatternType{6} 43 } 44 45 // DiagonalRightBannerPattern represents the 'Diagonal Right' banner pattern type. 46 func DiagonalRightBannerPattern() BannerPatternType { 47 return BannerPatternType{7} 48 } 49 50 // DiagonalUpLeftBannerPattern represents the 'Diagonal Up Left' banner pattern type. 51 func DiagonalUpLeftBannerPattern() BannerPatternType { 52 return BannerPatternType{8} 53 } 54 55 // DiagonalUpRightBannerPattern represents the 'Diagonal Up Right' banner pattern type. 56 func DiagonalUpRightBannerPattern() BannerPatternType { 57 return BannerPatternType{9} 58 } 59 60 // FlowerBannerPattern represents the 'Flower' banner pattern type. 61 func FlowerBannerPattern() BannerPatternType { 62 return BannerPatternType{10} 63 } 64 65 // GradientBannerPattern represents the 'Gradient' banner pattern type. 66 func GradientBannerPattern() BannerPatternType { 67 return BannerPatternType{11} 68 } 69 70 // GradientUpBannerPattern represents the 'Gradient Up' banner pattern type. 71 func GradientUpBannerPattern() BannerPatternType { 72 return BannerPatternType{12} 73 } 74 75 // HalfHorizontalBannerPattern represents the 'Half Horizontal' banner pattern type. 76 func HalfHorizontalBannerPattern() BannerPatternType { 77 return BannerPatternType{13} 78 } 79 80 // HalfHorizontalBottomBannerPattern represents the 'Half Horizontal Bottom' banner pattern type. 81 func HalfHorizontalBottomBannerPattern() BannerPatternType { 82 return BannerPatternType{14} 83 } 84 85 // HalfVerticalBannerPattern represents the 'Half Vertical' banner pattern type. 86 func HalfVerticalBannerPattern() BannerPatternType { 87 return BannerPatternType{15} 88 } 89 90 // HalfVerticalRightBannerPattern represents the 'Half Vertical Right' banner pattern type. 91 func HalfVerticalRightBannerPattern() BannerPatternType { 92 return BannerPatternType{16} 93 } 94 95 // MojangBannerPattern represents the 'Mojang' banner pattern type. 96 func MojangBannerPattern() BannerPatternType { 97 return BannerPatternType{17} 98 } 99 100 // RhombusBannerPattern represents the 'Rhombus' banner pattern type. 101 func RhombusBannerPattern() BannerPatternType { 102 return BannerPatternType{18} 103 } 104 105 // SkullBannerPattern represents the 'Skull' banner pattern type. 106 func SkullBannerPattern() BannerPatternType { 107 return BannerPatternType{19} 108 } 109 110 // SmallStripesBannerPattern represents the 'Small Stripes' banner pattern type. 111 func SmallStripesBannerPattern() BannerPatternType { 112 return BannerPatternType{20} 113 } 114 115 // SquareBottomLeftBannerPattern represents the 'Square Bottom Left' banner pattern type. 116 func SquareBottomLeftBannerPattern() BannerPatternType { 117 return BannerPatternType{21} 118 } 119 120 // SquareBottomRightBannerPattern represents the 'Square Bottom Right' banner pattern type. 121 func SquareBottomRightBannerPattern() BannerPatternType { 122 return BannerPatternType{22} 123 } 124 125 // SquareTopLeftBannerPattern represents the 'Square Top Left' banner pattern type. 126 func SquareTopLeftBannerPattern() BannerPatternType { 127 return BannerPatternType{23} 128 } 129 130 // SquareTopRightBannerPattern represents the 'Square Top Right' banner pattern type. 131 func SquareTopRightBannerPattern() BannerPatternType { 132 return BannerPatternType{24} 133 } 134 135 // StraightCrossBannerPattern represents the 'Straight Cross' banner pattern type. 136 func StraightCrossBannerPattern() BannerPatternType { 137 return BannerPatternType{25} 138 } 139 140 // StripeBottomBannerPattern represents the 'Stripe Bottom' banner pattern type. 141 func StripeBottomBannerPattern() BannerPatternType { 142 return BannerPatternType{26} 143 } 144 145 // StripeCenterBannerPattern represents the 'Stripe Center' banner pattern type. 146 func StripeCenterBannerPattern() BannerPatternType { 147 return BannerPatternType{27} 148 } 149 150 // StripeDownLeftBannerPattern represents the 'Stripe Down Left' banner pattern type. 151 func StripeDownLeftBannerPattern() BannerPatternType { 152 return BannerPatternType{28} 153 } 154 155 // StripeDownRightBannerPattern represents the 'Stripe Down Right' banner pattern type. 156 func StripeDownRightBannerPattern() BannerPatternType { 157 return BannerPatternType{29} 158 } 159 160 // StripeLeftBannerPattern represents the 'Stripe Left' banner pattern type. 161 func StripeLeftBannerPattern() BannerPatternType { 162 return BannerPatternType{30} 163 } 164 165 // StripeMiddleBannerPattern represents the 'Stripe Middle' banner pattern type. 166 func StripeMiddleBannerPattern() BannerPatternType { 167 return BannerPatternType{31} 168 } 169 170 // StripeRightBannerPattern represents the 'Stripe Right' banner pattern type. 171 func StripeRightBannerPattern() BannerPatternType { 172 return BannerPatternType{32} 173 } 174 175 // StripeTopBannerPattern represents the 'Stripe Top' banner pattern type. 176 func StripeTopBannerPattern() BannerPatternType { 177 return BannerPatternType{33} 178 } 179 180 // TriangleBottomBannerPattern represents the 'Triangle Bottom' banner pattern type. 181 func TriangleBottomBannerPattern() BannerPatternType { 182 return BannerPatternType{34} 183 } 184 185 // TriangleTopBannerPattern represents the 'Triangle Top' banner pattern type. 186 func TriangleTopBannerPattern() BannerPatternType { 187 return BannerPatternType{35} 188 } 189 190 // TrianglesBottomBannerPattern represents the 'Triangles Bottom' banner pattern type. 191 func TrianglesBottomBannerPattern() BannerPatternType { 192 return BannerPatternType{36} 193 } 194 195 // TrianglesTopBannerPattern represents the 'Triangles Top' banner pattern type. 196 func TrianglesTopBannerPattern() BannerPatternType { 197 return BannerPatternType{37} 198 } 199 200 // GlobeBannerPattern represents the 'Globe' banner pattern type. 201 func GlobeBannerPattern() BannerPatternType { 202 return BannerPatternType{38} 203 } 204 205 // PiglinBannerPattern represents the 'Piglin' banner pattern type. 206 func PiglinBannerPattern() BannerPatternType { 207 return BannerPatternType{39} 208 } 209 210 // BannerPatternTypes returns all the available banner pattern types. 211 func BannerPatternTypes() []BannerPatternType { 212 return []BannerPatternType{ 213 BorderBannerPattern(), 214 BricksBannerPattern(), 215 CircleBannerPattern(), 216 CreeperBannerPattern(), 217 CrossBannerPattern(), 218 CurlyBorderBannerPattern(), 219 DiagonalLeftBannerPattern(), 220 DiagonalRightBannerPattern(), 221 DiagonalUpLeftBannerPattern(), 222 DiagonalUpRightBannerPattern(), 223 FlowerBannerPattern(), 224 GradientBannerPattern(), 225 GradientUpBannerPattern(), 226 HalfHorizontalBannerPattern(), 227 HalfHorizontalBottomBannerPattern(), 228 HalfVerticalBannerPattern(), 229 HalfVerticalRightBannerPattern(), 230 MojangBannerPattern(), 231 RhombusBannerPattern(), 232 SkullBannerPattern(), 233 SmallStripesBannerPattern(), 234 SquareBottomLeftBannerPattern(), 235 SquareBottomRightBannerPattern(), 236 SquareTopLeftBannerPattern(), 237 SquareTopRightBannerPattern(), 238 StraightCrossBannerPattern(), 239 StripeBottomBannerPattern(), 240 StripeCenterBannerPattern(), 241 StripeDownLeftBannerPattern(), 242 StripeDownRightBannerPattern(), 243 StripeLeftBannerPattern(), 244 StripeMiddleBannerPattern(), 245 StripeRightBannerPattern(), 246 StripeTopBannerPattern(), 247 TriangleBottomBannerPattern(), 248 TriangleTopBannerPattern(), 249 TrianglesBottomBannerPattern(), 250 TrianglesTopBannerPattern(), 251 GlobeBannerPattern(), 252 PiglinBannerPattern(), 253 } 254 } 255 256 type bannerPatternType uint8 257 258 // Uint8 returns the bannerPatternType as a uint8. 259 func (b bannerPatternType) Uint8() uint8 { 260 return uint8(b) 261 } 262 263 // String returns the bannerPatternType as a string. 264 func (b bannerPatternType) String() string { 265 switch b { 266 case 0: 267 return "border" 268 case 1: 269 return "bricks" 270 case 2: 271 return "circle" 272 case 3: 273 return "creeper" 274 case 4: 275 return "cross" 276 case 5: 277 return "curly_border" 278 case 6: 279 return "diagonal_left" 280 case 7: 281 return "diagonal_right" 282 case 8: 283 return "diagonal_up_left" 284 case 9: 285 return "diagonal_up_right" 286 case 10: 287 return "flower" 288 case 11: 289 return "gradient" 290 case 12: 291 return "gradient_up" 292 case 13: 293 return "half_horizontal" 294 case 14: 295 return "half_horizontal_bottom" 296 case 15: 297 return "half_vertical" 298 case 16: 299 return "half_vertical_right" 300 case 17: 301 return "mojang" 302 case 18: 303 return "rhombus" 304 case 19: 305 return "skull" 306 case 20: 307 return "small_stripes" 308 case 21: 309 return "square_bottom_left" 310 case 22: 311 return "square_bottom_right" 312 case 23: 313 return "square_top_left" 314 case 24: 315 return "square_top_right" 316 case 25: 317 return "straight_cross" 318 case 26: 319 return "stripe_bottom" 320 case 27: 321 return "stripe_center" 322 case 28: 323 return "stripe_downleft" 324 case 29: 325 return "stripe_downright" 326 case 30: 327 return "stripe_left" 328 case 31: 329 return "stripe_middle" 330 case 32: 331 return "stripe_right" 332 case 33: 333 return "stripe_top" 334 case 34: 335 return "triangle_bottom" 336 case 35: 337 return "triangle_top" 338 case 36: 339 return "triangles_bottom" 340 case 37: 341 return "triangles_top" 342 case 38: 343 return "globe" 344 case 39: 345 return "piglin" 346 } 347 panic("should never happen") 348 } 349 350 // Item returns the equivalent item type for the pattern. If none exists, false is returned. 351 func (b bannerPatternType) Item() (item.BannerPatternType, bool) { 352 switch b { 353 case 1: 354 return item.FieldMasonedBannerPattern(), true 355 case 3: 356 return item.CreeperBannerPattern(), true 357 case 5: 358 return item.BordureIndentedBannerPattern(), true 359 case 10: 360 return item.FlowerBannerPattern(), true 361 case 17: 362 return item.MojangBannerPattern(), true 363 case 19: 364 return item.SkullBannerPattern(), true 365 case 38: 366 return item.GlobeBannerPattern(), true 367 case 39: 368 return item.PiglinBannerPattern(), true 369 } 370 return item.BannerPatternType{}, false 371 }