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

     1  package block
     2  
     3  // GrindstoneAttachment represents a type of attachment for a Grindstone.
     4  type GrindstoneAttachment struct {
     5  	grindstoneAttachment
     6  }
     7  
     8  // StandingGrindstoneAttachment is a type of attachment for a standing Grindstone.
     9  func StandingGrindstoneAttachment() GrindstoneAttachment {
    10  	return GrindstoneAttachment{0}
    11  }
    12  
    13  // HangingGrindstoneAttachment is a type of attachment for a hanging Grindstone.
    14  func HangingGrindstoneAttachment() GrindstoneAttachment {
    15  	return GrindstoneAttachment{1}
    16  }
    17  
    18  // WallGrindstoneAttachment is a type of attachment for a wall Grindstone.
    19  func WallGrindstoneAttachment() GrindstoneAttachment {
    20  	return GrindstoneAttachment{2}
    21  }
    22  
    23  // GrindstoneAttachments returns all possible GrindstoneAttachments.
    24  func GrindstoneAttachments() []GrindstoneAttachment {
    25  	return []GrindstoneAttachment{StandingGrindstoneAttachment(), HangingGrindstoneAttachment(), WallGrindstoneAttachment()}
    26  }
    27  
    28  type grindstoneAttachment uint8
    29  
    30  // Uint8 returns the GrindstoneAttachment as a uint8.
    31  func (g grindstoneAttachment) Uint8() uint8 {
    32  	return uint8(g)
    33  }
    34  
    35  // String returns the GrindstoneAttachment as a string.
    36  func (g grindstoneAttachment) String() string {
    37  	switch g {
    38  	case 0:
    39  		return "standing"
    40  	case 1:
    41  		return "hanging"
    42  	case 2:
    43  		return "side"
    44  	}
    45  	panic("should never happen")
    46  }