40 lines
786 B
Go
40 lines
786 B
Go
package simulator
|
|
|
|
import "strconv"
|
|
|
|
//ItemEntry is a human/ui friendly item description
|
|
type ItemEntry interface {
|
|
Name() string
|
|
Render() string
|
|
ID() string
|
|
}
|
|
|
|
type itemType int
|
|
|
|
func (i itemType) String() string {
|
|
return strconv.Itoa(int(i))
|
|
}
|
|
|
|
const (
|
|
itemPlantTea itemType = iota + 1
|
|
itemPlantWood
|
|
|
|
convertPulper
|
|
)
|
|
|
|
//GlobalItemList of all items
|
|
var GlobalItemList = []itemType{itemPlantTea, itemPlantWood, convertPulper}
|
|
|
|
//Lookup returns a human friendly item entry
|
|
func Lookup(id itemType) ItemEntry {
|
|
switch id {
|
|
case itemPlantTea:
|
|
return plantEntry{itemPlantTea, 3, "tea"}
|
|
case itemPlantWood:
|
|
return plantEntry{itemPlantWood, 10, "wood"}
|
|
case convertPulper:
|
|
return converterEntry{convertPulper, 5, "teaConverter", itemPlantTea, itemPlantWood}
|
|
}
|
|
return nil
|
|
}
|