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

     1  package block
     2  
     3  import (
     4  	"github.com/df-mc/dragonfly/server/world"
     5  )
     6  
     7  // Prismarine is a type of stone that appears underwater in ruins and ocean monuments.
     8  type Prismarine struct {
     9  	solid
    10  	bassDrum
    11  
    12  	// Type is the type of prismarine of the block.
    13  	Type PrismarineType
    14  }
    15  
    16  // BreakInfo ...
    17  func (p Prismarine) BreakInfo() BreakInfo {
    18  	return newBreakInfo(1.5, pickaxeHarvestable, pickaxeEffective, oneOf(p)).withBlastResistance(30)
    19  }
    20  
    21  // EncodeItem ...
    22  func (p Prismarine) EncodeItem() (id string, meta int16) {
    23  	return "minecraft:prismarine", int16(p.Type.Uint8())
    24  }
    25  
    26  // EncodeBlock ...
    27  func (p Prismarine) EncodeBlock() (name string, properties map[string]any) {
    28  	return "minecraft:prismarine", map[string]any{"prismarine_block_type": p.Type.String()}
    29  }
    30  
    31  // allPrismarine returns a list of all prismarine block variants.
    32  func allPrismarine() (c []world.Block) {
    33  	for _, t := range PrismarineTypes() {
    34  		c = append(c, Prismarine{Type: t})
    35  	}
    36  	return
    37  }