|
|
|
@ -4,11 +4,17 @@ import type { InventoryItem } from '../util/usePlayer'
|
|
|
|
|
export type ItemQuality = 'wood' | 'iron' | 'silver' | 'gold' | 'diamond'
|
|
|
|
|
export type ItemType = 'tool' | 'weapon' | 'block' | 'ore'
|
|
|
|
|
|
|
|
|
|
export type DropItem =
|
|
|
|
|
| 'Shovel' | 'Pick Axe' | 'Sword'
|
|
|
|
|
| 'leaves' | 'dirt' | 'wood' | 'stone' | 'gravel'
|
|
|
|
|
| 'coal' | 'iron' | 'silver' | 'gold' | 'ruby' | 'diamond' | 'emerald'
|
|
|
|
|
|
|
|
|
|
export interface Item {
|
|
|
|
|
name: string
|
|
|
|
|
name: DropItem
|
|
|
|
|
type: ItemType
|
|
|
|
|
icon: string
|
|
|
|
|
hasQuality: boolean
|
|
|
|
|
hasQuality?: boolean
|
|
|
|
|
builds?: BlockType
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const items: Item[] = [
|
|
|
|
@ -16,19 +22,19 @@ export const items: Item[] = [
|
|
|
|
|
{ name: 'Pick Axe', type: 'tool', icon: 'pick', hasQuality: true },
|
|
|
|
|
{ name: 'Sword', type: 'weapon', icon: 'sword', hasQuality: true },
|
|
|
|
|
|
|
|
|
|
{ name: 'leaves', type: 'block', icon: 'leaves', hasQuality: false },
|
|
|
|
|
{ name: 'dirt', type: 'block', icon: 'dirt', hasQuality: false },
|
|
|
|
|
{ name: 'wood', type: 'block', icon: 'wood', hasQuality: false },
|
|
|
|
|
{ name: 'stone', type: 'block', icon: 'stone', hasQuality: false },
|
|
|
|
|
{ name: 'gravel', type: 'block', icon: 'stone', hasQuality: false }, // TODO
|
|
|
|
|
|
|
|
|
|
{ name: 'coal', type: 'ore', icon: 'ore_coal', hasQuality: false },
|
|
|
|
|
{ name: 'iron', type: 'ore', icon: 'ore_iron', hasQuality: false },
|
|
|
|
|
{ name: 'silver', type: 'ore', icon: 'ore_silver', hasQuality: false },
|
|
|
|
|
{ name: 'gold', type: 'ore', icon: 'ore_gold', hasQuality: false },
|
|
|
|
|
{ name: 'ruby', type: 'ore', icon: 'ore_ruby', hasQuality: false },
|
|
|
|
|
{ name: 'diamond', type: 'ore', icon: 'ore_diamond', hasQuality: false },
|
|
|
|
|
{ name: 'emerald', type: 'ore', icon: 'ore_emerald', hasQuality: false },
|
|
|
|
|
{ name: 'leaves', type: 'block', icon: 'leaves', builds: 'treeLeaves' },
|
|
|
|
|
{ name: 'dirt', type: 'block', icon: 'dirt', builds: 'soil' },
|
|
|
|
|
{ name: 'wood', type: 'block', icon: 'wood', builds: 'treeTrunk' },
|
|
|
|
|
{ name: 'stone', type: 'block', icon: 'stone', builds: 'brickWall' },
|
|
|
|
|
{ name: 'gravel', type: 'block', icon: 'stone' }, // TODO
|
|
|
|
|
|
|
|
|
|
{ name: 'coal', type: 'ore', icon: 'ore_coal' },
|
|
|
|
|
{ name: 'iron', type: 'ore', icon: 'ore_iron' },
|
|
|
|
|
{ name: 'silver', type: 'ore', icon: 'ore_silver' },
|
|
|
|
|
{ name: 'gold', type: 'ore', icon: 'ore_gold' },
|
|
|
|
|
{ name: 'ruby', type: 'ore', icon: 'ore_ruby' },
|
|
|
|
|
{ name: 'diamond', type: 'ore', icon: 'ore_diamond' },
|
|
|
|
|
{ name: 'emerald', type: 'ore', icon: 'ore_emerald' },
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
export const damage: Record<ItemQuality, number> = {
|
|
|
|
|