Inventory

Basic inventory class with adding/removing/assigning/filling functions.

Constructors

this
this(size_t size)

Creates an inventory with the given number of slots. The number of slots must be higher than 0 and shorter than 2^16.

this
this(Slot[] slots)
this(Inventory inventory)

Constructs an inventory giving an array of slots. The length of the inventory will be the same as the given array.

Members

Functions

group
void group(size_t index)

Groups an item type into the given slot, if possible.

opBinary
Inventory opBinary(Slot[] slots)
Inventory opBinary(Inventory inventory)
Inventory opBinary(Slot slot)

Concatenates two inventories (or an inventory and an array of slots) and returns a new one.

opBinary
Slot* opBinary(T item)

Matches the first occurence and returns the pointer to the slot. Paramenter types: string = checks for an item with the same name string[] = checks for an item with one of the names in the array Item = checks for an item with the same name and properties (custom name, enchantments, ...) Slot = checks for the item (see above) and the count of the item

opBinaryRight
Inventory opBinaryRight(Slot[] slots)
Inventory opBinaryRight(Slot slot)

Concatenates two inventories (or an inventory and an array of slots) and returns a new one.

opCast
T opCast()

Gets every slots of the inventory (0..$). This property should only be used when the full inventory is needed, otherwise opIndex should be used for getting a slot in a specific index or in a specific range.

opDollar
size_t opDollar()

Gets the size of the inventory.

opEquals
bool opEquals(Slot[] slots)
bool opEquals(Object object)

Compares the inventory with an array of slots.

opIndex
Slot[] opIndex()

Gets every slots of the inventory (0..$). This property should only be used when the full inventory is needed, otherwise opIndex should be used for getting a slot in a specific index or in a specific range.

opIndex
Slot opIndex(size_t index)

Gets the slot at the given index.

opIndex
InventoryRange opIndex(Slice slice)

Gets the slots in a specific range.

opIndexAssign
void opIndexAssign(Slot slot, size_t index)

Sets the slot at the given index.

opIndexAssign
void opIndexAssign(Slot slot, Slice slice)
void opIndexAssign(Slot[] slots, Slice slice)

Sets the slots in the given range.

opOpAssign
Slot opOpAssign(Slot slot)
Slot[] opOpAssign(Slot[] slots)

Adds slot(s) to the inventory (if there's enough space). Note that this function will only mutate the the inventory's slots' content without mutating its length.

opOpAssign
uint opOpAssign(T item)
uint opOpAssign(T[] items)

Removes slot(s) from the inventory. Parameter types: string = tries to remove items with the same name string[] = tries to remove items with one of the names in the array Item = tries to remove items with the same name and properties Slot = tries to remove items with the same name, properties and count

opOpAssign
void opOpAssign(T number)

Performs a basic math operation on every slot's count in the inventory, if not empty.

opSlice
Slice opSlice(size_t min, size_t max)
Undocumented in source. Be warned that the author may not have intended to support it.
toString
string toString()

Returns a string with representing the inventory and its array of slots.

Properties

empty
bool empty [@property getter]

Checks whether or not the inventory is empty.

empty
bool empty [@property setter]

Removes every item from inventory if empty is true.

length
size_t length [@property getter]

Gets the size of the inventory.

Examples

auto inventory = new Inventory(10);

// assign
inventory[4] = Slot(new Items.Apple(), 12);
inventory[5] = new Items.Apple();

// automatically add in the first empty slot
inventory.add(new Items.Beetroot());

// fill
inventory = new Items.Beetroot();

// an inventory can also be iterated
foreach(ref Slot slot ; inventory) {
   d(slot);
}

Meta