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  }