InventoryGroup

Group of inventories that acts as one.

This class can be used to change the operation order in a normal inventory.

Constructors

this
this(Inventory[] inventories)
Undocumented in source.

Members

Functions

opIndex
Slot[] opIndex()
Undocumented in source. Be warned that the author may not have intended to support it.
opIndex
Slot opIndex(size_t index)
Undocumented in source. Be warned that the author may not have intended to support it.
opIndexAssign
void opIndexAssign(Slot slot, size_t index)
Undocumented in source. Be warned that the author may not have intended to support it.

Properties

length
size_t length [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.

Inherited Members

From Inventory

opIndex
Slot[] opIndex()
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.

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.

opSlice
Slice opSlice(size_t min, size_t max)
Undocumented in source. Be warned that the author may not have intended to support it.
length
size_t length [@property getter]
opDollar
size_t opDollar()

Gets the size of the inventory.

opBinary
Inventory opBinary(Slot[] slots)
Inventory opBinary(Inventory inventory)
Inventory opBinary(Slot slot)
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.

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

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

group
void group(size_t index)

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

opOpAssign
void opOpAssign(T number)

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

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.

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

Compares the inventory with an array of slots.

toString
string toString()

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

Examples

auto inv = new Inventory(4);
auto ig = new InventoryGroup(inv[2..$], inv[0..2]);
ig += new Items.Apple();
assert(inv == [Slot(null), Slot(null), Slot(new Items.Apple()), Slot(null)]);

Meta