Storage.Item
Description
A class that includes properties and functionality associated with the storage and assignment of a flow item to Storage.Slots.
The Storage.Item class is primarily used for managing and retrieving the slots that a flow item is assigned to and/or stored in.
The Storage.Item is NOT the same as the item object. In other words, you can't just set a Storage.Item to the item itself.
Object item = param(2);
Storage.Item storageItem = item; // RUN-TIME ERROR
Instead, the Storage.Item is associated with, not the same as the item. To access the Storage.Item of a given flow item, use the Storage.Item() constructor.
A Storage.Item holds data associated directly with the flow item itself. A Storage.Item should not be confused with a Storage.Slot.Item. The Storage.Item may have both a current slot (the slot that the flow item is currently stored in), and/or an assigned slot (the slot that the item has been assigned to be placed in). If the flow item has been placed in its assigned slot, and has not been assigned to any new slot, then its assigned slot is the same as its current slot.
A Storage.Item may simultaneously have two associated Storage.Slot.Items, namely one for its assigned slot, and one for its current slot. These can be accessed respectively with the assignedSlotItem and currentSlotItem properties.
Properties
assignedSlot | The item's assigned slot. |
assignedSlotItem | The Storage.Slot.Item associated with the item's assigned slot. |
currentSlot | The item's current slot. |
currentSlotItem | The Storage.Slot.Item associated with the item's current slot. |
state | The current transit state of the item. |
Constructor
Storage.Item | Gets/Asserts the Storage.Item object associated with the given flow item. |
Details
Storage.Item.assignedSlot
Storage.Slot assignedSlot
Description
The item's assigned slot.
You can set this property to a specific slot through several methods:
- Find a slot in the storage system using Storage.System.findSlot(), and set assignedSlot to the result.
- Get a slot directly by its address, using Storage.System.getSlot(), and set assignedSlot to the result.
- Get a slot directly by its bay, level, and slot ID, using Storage.Object.getSlot(), and set assignedSlot to the result.
- Search through a Storage.Object's bays, levels, and slots to find an appropriate slot, and set assignedSlot to the found slot.
- Directly set assignedSlot to NULL. This will put the item in an outbound state. Item searches using Storage.system.findItem() will skip over outbound items by default.
Once you have assigned the item to a slot, move the item into the slot's storage object, either immediately or through some transit process. Once the item is moved into the storage object, its assigned slot will become its current slot.
Storage.Item.assignedSlotItem
readonly Storage.Slot.Item assignedSlotItem
Description
The Storage.Slot.Item associated with the item's assigned slot.
Storage.Item.currentSlot
readonly Storage.Slot currentSlot
Description
The item's current slot.
The item's current slot is the slot that the item is currently stored in. You cannot directly set the item's current slot. Instead, you can do one of the following:
- Directly set the item's assignedSlot and then move the flow item (either immediately or through some transit process) into that slot's storage object. Here when the item is moved into the storage object, the assigned slot will be recognized and its assigned slot will become its current slot.
- Leave the assignedSlot property unassigned, and just move the flow item into a storage object. When the storage object receives the item, it will recognized that the item has no assigned slot, and will fire its slot assignment strategy, which should assign the slot. Then the item's assigned slot will become its current slot.
Storage.Item.currentSlotItem
readonly Storage.Slot.Item currentSlotItem
Description
The Storage.Slot.Item associated with the item's current slot.
Storage.Item.state
readonly int state
Description
The current transit state of the item.
The state value is a function of the item's currentSlot and assignedSlot property values.
Valid values are:
Storage.Item Constructor
Storage.Item( treenode item ) |
Parameters
item | A flow item. |
Returns
Storage.Item | A Storage.Item object. If an associated Storage.Item does not already exist for the flow item, it will be automatically created. |
Description
Gets/Asserts the Storage.Item object associated with the given flow item.
A Storage.Item can only be accessed by calling this method. Casting from a treenode is not correct.Storage.Item storageItem = Storage.Item(item); // correct
Storage.Item storageItem = item; // incorrect