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

     1  package block
     2  
     3  import (
     4  	"github.com/df-mc/dragonfly/server/item"
     5  )
     6  
     7  // DiamondOre is a rare ore that generates underground.
     8  type DiamondOre struct {
     9  	solid
    10  	bassDrum
    11  
    12  	// Type is the type of diamond ore.
    13  	Type OreType
    14  }
    15  
    16  // BreakInfo ...
    17  func (d DiamondOre) BreakInfo() BreakInfo {
    18  	i := newBreakInfo(d.Type.Hardness(), func(t item.Tool) bool {
    19  		return t.ToolType() == item.TypePickaxe && t.HarvestLevel() >= item.ToolTierIron.HarvestLevel
    20  	}, pickaxeEffective, silkTouchOneOf(item.Diamond{}, d)).withXPDropRange(3, 7)
    21  	if d.Type == DeepslateOre() {
    22  		i = i.withBlastResistance(9)
    23  	}
    24  	return i
    25  }
    26  
    27  // SmeltInfo ...
    28  func (DiamondOre) SmeltInfo() item.SmeltInfo {
    29  	return newOreSmeltInfo(item.NewStack(item.Diamond{}, 1), 1)
    30  }
    31  
    32  // EncodeItem ...
    33  func (d DiamondOre) EncodeItem() (name string, meta int16) {
    34  	return "minecraft:" + d.Type.Prefix() + "diamond_ore", 0
    35  }
    36  
    37  // EncodeBlock ...
    38  func (d DiamondOre) EncodeBlock() (string, map[string]any) {
    39  	return "minecraft:" + d.Type.Prefix() + "diamond_ore", nil
    40  }