remove demo game
This commit is contained in:
46
item.inventory.go
Normal file
46
item.inventory.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package pncdsl
|
||||
|
||||
type Inventory struct {
|
||||
items []string
|
||||
selected string
|
||||
}
|
||||
|
||||
func NewInventory() *Inventory { return &Inventory{} }
|
||||
|
||||
func (i *Inventory) Add(name string) {
|
||||
if i.Has(name) {
|
||||
return
|
||||
}
|
||||
i.items = append(i.items, name)
|
||||
}
|
||||
|
||||
func (i *Inventory) Remove(name string) {
|
||||
for k, n := range i.items {
|
||||
if n == name {
|
||||
i.items = append(i.items[:k], i.items[k+1:]...)
|
||||
if i.selected == name {
|
||||
i.selected = ""
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (i *Inventory) Has(name string) bool {
|
||||
for _, n := range i.items {
|
||||
if n == name {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (i *Inventory) Select(name string) {
|
||||
if name != "" && !i.Has(name) {
|
||||
return
|
||||
}
|
||||
i.selected = name
|
||||
}
|
||||
|
||||
func (i *Inventory) Selected() string { return i.selected }
|
||||
func (i *Inventory) Items() []string { return append([]string(nil), i.items...) }
|
||||
Reference in New Issue
Block a user