new
(
integer
width
,
integer
height
)
__gc
(
)
__eq
(
am.inventory
rhs
)
->
(
boolean
)
size
(
)
->
(
integer
,
integer
)
has_space_for
(
am.item
item
,
integer
x
,
integer
y
)
->
(
boolean
)
add_item
(
am.item
item
)
->
(
boolean
)
add_item
(
am.item
item
,
integer
x
,
integer
y
)
->
(
boolean
)
remove_item
(
am.item
item
)
->
(
boolean
)
remove_all
(
)
->
(
boolean
)
has_item
(
am.item
item
)
->
(
boolean
)
item_at
(
integer
locationX
,
integer
locationY
)
->
(
am.item
)
spots
(
)
->
(
Array
)
new
(
integer
width
,
integer
height
)
__gc
(
)
__eq
(
am.inventory
rhs
)
->
(
boolean
)
size
(
)
->
(
integer
,
integer
)
has_space_for
(
am.item
item
,
integer
x
,
integer
y
)
->
(
boolean
)
add_item
(
am.item
item
)
->
(
boolean
)
add_item
(
am.item
item
,
integer
x
,
integer
y
)
->
(
boolean
)
remove_item
(
am.item
item
)
->
(
boolean
)
remove_all
(
)
->
(
boolean
)
has_item
(
am.item
item
)
->
(
boolean
)
item_at
(
integer
locationX
,
integer
locationY
)
->
(
am.item
)
spots
(
)
->
(
Array
)
inv = am.inventory.new(3, 3) scroll1 = am.item.new() scroll1:inventory_size(2, 1) scroll2 = scroll1:clone() scroll1:name("Scroll 1") scroll2:name("Scroll 2") inv.add_item(scroll1) inv.add_item(scroll2) spots = inv:spots() for key, value in pairs(spots) do am_log(key .. ": " .. value.item:name() .. " at " .. value.x .. ", " .. value.y) end Outputs: 2: Scroll 2 at 0, 1 1: Scroll 1 at 0, 0