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

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