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

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