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

     1  package block
     2  
     3  // PrismarineType represents a type of prismarine.
     4  type PrismarineType struct {
     5  	prismarine
     6  }
     7  
     8  type prismarine uint8
     9  
    10  // NormalPrismarine is the normal variant of prismarine.
    11  func NormalPrismarine() PrismarineType {
    12  	return PrismarineType{0}
    13  }
    14  
    15  // DarkPrismarine is the dark variant of prismarine.
    16  func DarkPrismarine() PrismarineType {
    17  	return PrismarineType{1}
    18  }
    19  
    20  // BrickPrismarine is the brick variant of prismarine.
    21  func BrickPrismarine() PrismarineType {
    22  	return PrismarineType{2}
    23  }
    24  
    25  // Uint8 returns the prismarine as a uint8.
    26  func (s prismarine) Uint8() uint8 {
    27  	return uint8(s)
    28  }
    29  
    30  // Name ...
    31  func (s prismarine) Name() string {
    32  	switch s {
    33  	case 0:
    34  		return "Prismarine"
    35  	case 1:
    36  		return "Dark Prismarine"
    37  	case 2:
    38  		return "Prismarine Bricks"
    39  	}
    40  	panic("unknown prismarine type")
    41  }
    42  
    43  // String ...
    44  func (s prismarine) String() string {
    45  	switch s {
    46  	case 0:
    47  		return "default"
    48  	case 1:
    49  		return "dark"
    50  	case 2:
    51  		return "bricks"
    52  	}
    53  	panic("unknown prismarine type")
    54  }
    55  
    56  // PrismarineTypes ...
    57  func PrismarineTypes() []PrismarineType {
    58  	return []PrismarineType{NormalPrismarine(), DarkPrismarine(), BrickPrismarine()}
    59  }