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  }