Files
mc/server/block/obsidian.go
T

46 lines
1.1 KiB
Go
Raw Permalink Normal View History

2026-07-09 08:33:57 +08:00
package block
import (
"github.com/df-mc/dragonfly/server/item"
)
// Obsidian is a dark purple block known for its high blast resistance and strength, most commonly found when
// water flows over lava.
type Obsidian struct {
solid
bassDrum
// Crying specifies if the block is a crying obsidian block. If true, the block is blue and emits light.
Crying bool
}
// LightEmissionLevel ...
func (o Obsidian) LightEmissionLevel() uint8 {
if o.Crying {
return 10
}
return 0
}
// EncodeItem ...
func (o Obsidian) EncodeItem() (name string, meta int16) {
if o.Crying {
return "minecraft:crying_obsidian", 0
}
return "minecraft:obsidian", 0
}
// EncodeBlock ...
func (o Obsidian) EncodeBlock() (string, map[string]any) {
if o.Crying {
return "minecraft:crying_obsidian", nil
}
return "minecraft:obsidian", nil
}
// BreakInfo ...
func (o Obsidian) BreakInfo() BreakInfo {
return newBreakInfo(35, func(t item.Tool) bool {
return t.ToolType() == item.TypePickaxe && t.HarvestLevel() >= item.ToolTierDiamond.HarvestLevel
}, pickaxeEffective, oneOf(o)).withBlastResistance(6000)
}