github.com/df-mc/dragonfly@v0.9.13/server/block/anvil_type.go (about)

     1  package block
     2  
     3  // AnvilType represents a type of anvil, such as undamaged, slightly damaged, or very damaged.
     4  type AnvilType struct {
     5  	anvil
     6  }
     7  
     8  // UndamagedAnvil returns the undamaged anvil type.
     9  func UndamagedAnvil() AnvilType {
    10  	return AnvilType{0}
    11  }
    12  
    13  // SlightlyDamagedAnvil returns the slightly damaged anvil type.
    14  func SlightlyDamagedAnvil() AnvilType {
    15  	return AnvilType{1}
    16  }
    17  
    18  // VeryDamagedAnvil returns the very damaged anvil type.
    19  func VeryDamagedAnvil() AnvilType {
    20  	return AnvilType{2}
    21  }
    22  
    23  // AnvilTypes returns all anvil types.
    24  func AnvilTypes() []AnvilType {
    25  	return []AnvilType{UndamagedAnvil(), SlightlyDamagedAnvil(), VeryDamagedAnvil()}
    26  }
    27  
    28  type anvil uint8
    29  
    30  // Uint8 returns the anvil type as a uint8.
    31  func (a anvil) Uint8() uint8 {
    32  	return uint8(a)
    33  }
    34  
    35  // String returns the anvil type as a string.
    36  func (a anvil) String() string {
    37  	switch a {
    38  	case 0:
    39  		return "undamaged"
    40  	case 1:
    41  		return "slightly_damaged"
    42  	case 2:
    43  		return "very_damaged"
    44  	}
    45  	panic("should never happen")
    46  }