30 lines
837 B
Go
30 lines
837 B
Go
package screen
|
|
|
|
import "errors"
|
|
|
|
type Inventory struct {
|
|
Slots [46]Slot
|
|
}
|
|
|
|
func (inv *Inventory) onClose() error {
|
|
return nil
|
|
}
|
|
|
|
func (inv *Inventory) onSetSlot(i int, s Slot) error {
|
|
if i < 0 || i >= len(inv.Slots) {
|
|
return errors.New("slot index out of bounds")
|
|
}
|
|
inv.Slots[i] = s
|
|
return nil
|
|
}
|
|
|
|
func (inv *Inventory) CraftingOutput() *Slot { return &inv.Slots[0] }
|
|
func (inv *Inventory) CraftingInput() []Slot { return inv.Slots[1 : 1+4] }
|
|
|
|
// Armor returns to the armor section of the Inventory.
|
|
// The length is 4, which are head, chest, legs and feet.
|
|
func (inv *Inventory) Armor() []Slot { return inv.Slots[5 : 5+4] }
|
|
func (inv *Inventory) Main() []Slot { return inv.Slots[9 : 9+3*9] }
|
|
func (inv *Inventory) Hotbar() []Slot { return inv.Slots[36 : 36+9] }
|
|
func (inv *Inventory) Offhand() *Slot { return &inv.Slots[45] }
|