Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
component:inventory_slots [2018/09/27 02:19]
payonel
component:inventory_slots [2018/09/27 03:02] (current)
payonel
Line 1: Line 1:
-==== Slot Alignment ====+====Slot Alignment==== 
 + 
 +===Internal versus External Slot Alignment=== 
 + 
 +**Slot indexes do not match between the robot'​s internal and external view of its inventory** 
 + 
 +When a robot interacts with its own inventory it is using its internal view. You access the inventory of another robot via its external view. 
 + 
 +The reason for this distinction is to separate the two inventory spaces: the main inventory and the tool belt inventory. Internally, the robot selects slots only in its inventory space, and not its toolbelt. It can `equip` or unequip items from its toolbelt. However, externally, an observer interacts with a single inventory that includes both the toolbelt as well as the main inventory. 
 + 
 +===Internal Robot Slot Alignment=== 
 The Robot'​s GUI displays the slots of a robot aligned from top-left to bottom-right. So for example the slot at index 1 is displayed in the top-left corner, the slot at index 2 is the next to the right and the first slot on the 2nd row is index 5.  The Robot'​s GUI displays the slots of a robot aligned from top-left to bottom-right. So for example the slot at index 1 is displayed in the top-left corner, the slot at index 2 is the next to the right and the first slot on the 2nd row is index 5. 
  
 {{api:​robot_slotalign.png}} {{api:​robot_slotalign.png}}
 +
 +These are the slot indexes a robot uses on it self (for its own main inventory, an interview view).
  
 How many slots a robot has available depends on it's setup. If a slot is specified in a function that exceeds the amount of slots a robot has available an error is thrown. How many slots a robot has available depends on it's setup. If a slot is specified in a function that exceeds the amount of slots a robot has available an error is thrown.
 +
 +The robot can `select`, `place`, `drop`, `compare` (etc) items from its main inventory using these slot indexes as they represent the internal perspective of its inventory.
 +
 +===External View of a Robot Inventory===
 +
 +Slot indexes of a robot'​s inventory to an outside observer will be offset by 4. To an outside observer, slots 1 through 4 refer to slots in the robot toolbelt. The first slot of the main inventory is slot 1 from inside the robot (internal view), but is thus slot 5 to an outside observer. Yes, this can be confusing at first. This design choice was made so that, to an outside observer, [slot 1] always indicated the first toolbelt slot regardless of the robot inventory size, and [slot 5] was always the first main inventory slot.
 +
 +The robot inventory, again to an external observer, is sided inventory. The robot will not share all its inventory to all sides. Slot indexes __do not__ change to these different sides. Slot 1, therefore, always refers to the first toolbelt slot, even when inaccessible to a side.
 +
 +* From its left side it share nothing.
 +* From its right side it shares only its toolbelt slots (1-5)
 +* From all other sides it shares only its main inventory slots (5-n)
 +