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

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