package model import ( "github.com/gdamore/tcell/v2" ) type Item struct { name string description string itemType *ItemType quantity int } func EmptyItem() Item { return Item{ itemType: &ItemType{ name: "", description: "", tileIcon: ' ', itemIcon: " ", style: tcell.StyleDefault, maxStack: 0, }, } } func CreateItem(itemType *ItemType, quantity int) Item { return Item{ itemType: itemType, quantity: quantity, } } func (i Item) WithName(name string) Item { i.name = name return i } func (i Item) Name() string { if i.name == "" { return i.itemType.name } return i.name } func (i Item) Description() string { if i.description == "" { return i.itemType.description } return i.description } func (i Item) WithDescription(description string) Item { i.description = description return i } func (i Item) Type() *ItemType { return i.itemType } func (i Item) Quantity() int { return i.quantity }