up3
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
package item
|
||||
|
||||
import (
|
||||
"github.com/df-mc/dragonfly/server/world"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Pickaxe is a tool generally used for mining stone-like blocks and ores at a higher speed and to obtain
|
||||
// their drops.
|
||||
type Pickaxe struct {
|
||||
// Tier is the tier of the pickaxe.
|
||||
Tier ToolTier
|
||||
}
|
||||
|
||||
// ToolType returns the type for pickaxes.
|
||||
func (p Pickaxe) ToolType() ToolType {
|
||||
return TypePickaxe
|
||||
}
|
||||
|
||||
// HarvestLevel returns the level that this pickaxe is able to harvest. If a block has a harvest level above
|
||||
// this one, this pickaxe won't be able to harvest it.
|
||||
func (p Pickaxe) HarvestLevel() int {
|
||||
return p.Tier.HarvestLevel
|
||||
}
|
||||
|
||||
// BaseMiningEfficiency is the base efficiency of the pickaxe, when it comes to mining blocks. This decides
|
||||
// the speed with which blocks can be mined.
|
||||
func (p Pickaxe) BaseMiningEfficiency(world.Block) float64 {
|
||||
return p.Tier.BaseMiningEfficiency
|
||||
}
|
||||
|
||||
// MaxCount returns 1.
|
||||
func (p Pickaxe) MaxCount() int {
|
||||
return 1
|
||||
}
|
||||
|
||||
// AttackDamage returns the attack damage to the pickaxe.
|
||||
func (p Pickaxe) AttackDamage() float64 {
|
||||
return p.Tier.BaseAttackDamage + 1
|
||||
}
|
||||
|
||||
// EnchantmentValue ...
|
||||
func (p Pickaxe) EnchantmentValue() int {
|
||||
return p.Tier.EnchantmentValue
|
||||
}
|
||||
|
||||
// DurabilityInfo ...
|
||||
func (p Pickaxe) DurabilityInfo() DurabilityInfo {
|
||||
return DurabilityInfo{
|
||||
MaxDurability: p.Tier.Durability,
|
||||
BrokenItem: simpleItem(Stack{}),
|
||||
AttackDurability: 2,
|
||||
BreakDurability: 1,
|
||||
}
|
||||
}
|
||||
|
||||
// RepairableBy ...
|
||||
func (p Pickaxe) RepairableBy(i Stack) bool {
|
||||
return toolTierRepairable(p.Tier)(i)
|
||||
}
|
||||
|
||||
// SmeltInfo ...
|
||||
func (p Pickaxe) SmeltInfo() SmeltInfo {
|
||||
switch p.Tier {
|
||||
case ToolTierIron:
|
||||
return newOreSmeltInfo(NewStack(IronNugget{}, 1), 0.1)
|
||||
case ToolTierGold:
|
||||
return newOreSmeltInfo(NewStack(GoldNugget{}, 1), 0.1)
|
||||
case ToolTierCopper:
|
||||
return newOreSmeltInfo(NewStack(CopperNugget{}, 1), 0.1)
|
||||
}
|
||||
return SmeltInfo{}
|
||||
}
|
||||
|
||||
// FuelInfo ...
|
||||
func (p Pickaxe) FuelInfo() FuelInfo {
|
||||
if p.Tier == ToolTierWood {
|
||||
return newFuelInfo(time.Second * 10)
|
||||
}
|
||||
return FuelInfo{}
|
||||
}
|
||||
|
||||
// EncodeItem ...
|
||||
func (p Pickaxe) EncodeItem() (name string, meta int16) {
|
||||
return "minecraft:" + p.Tier.Name + "_pickaxe", 0
|
||||
}
|
||||
Reference in New Issue
Block a user