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
Last revision Both sides next revision
component:inventory_controller [2015/02/07 01:28]
shawniac
component:inventory_controller [2021/05/31 17:38]
hunter3216
Line 12: Line 12:
  
 - `getInventorySize(side:​ number): number or nil[, string]`  ​ - `getInventorySize(side:​ number): number or nil[, string]`  ​
-Returns the size of the inventory at the specified side.  +Returns the size of the inventory at the specified side.
 **side** - must be a valid side.  ​ **side** - must be a valid side.  ​
 **Returns:​** the size of the inventory, or `nil` followed by a description why this function failed (usually `no inventory`). **Returns:​** the size of the inventory, or `nil` followed by a description why this function failed (usually `no inventory`).
 - `getStackInSlot(side:​number,​ slot:​number):​table`  ​ - `getStackInSlot(side:​number,​ slot:​number):​table`  ​
-Returns a table describing the item in the specified slot or nil.  ​+ 
 +Returns a table describing the item in the specified slot or nil. Deprecated for getting info about robot'​s own inventory, see `getStackInInternalSlot`.  ​
 **side** - must be a valid side.  ​ **side** - must be a valid side.  ​
 **slot** - the slot to analyze. This does not check the inventory size and will consider slots outside the inventory bounds to be empty.  ​ **slot** - the slot to analyze. This does not check the inventory size and will consider slots outside the inventory bounds to be empty.  ​
Line 24: Line 25:
   - **size**:​number - the current stack size of the item.   - **size**:​number - the current stack size of the item.
   - **maxSize**:​number - the maximum stack size of this item.   - **maxSize**:​number - the maximum stack size of this item.
-  - **id**:​number - the Minecraft id of the item. Note that this depends on the server'​s config setting ​and can vary between servers!+  - **id**:​number - the Minecraft id of the item. Note that this field is only included if `insertIdsInConverters=true` in the configs, ​and can vary between servers!
   - **name**:​string - the **untranslated** item name, which is an internal Minecraft value like `oc:​item.FloppyDisk`   - **name**:​string - the **untranslated** item name, which is an internal Minecraft value like `oc:​item.FloppyDisk`
 +  - **label**:​string - the **translated** item name
   - **hasTag**:​boolean - whether or not the item has an NBT tag associated with it.   - **hasTag**:​boolean - whether or not the item has an NBT tag associated with it.
 +- `getStackInInternalSlot(slot:​number):​table`  ​
 +  Gets Itemstack description of item in specified or selected slot (if no input provided) of robot inventory.
 - `dropIntoSlot(side:​number,​ slot:​number[,​ count:​number]):​boolean[,​ string]`  ​ - `dropIntoSlot(side:​number,​ slot:​number[,​ count:​number]):​boolean[,​ string]`  ​
 Puts up to count items from the currently selected slot into the specified slot of the inventory at the specified side.  ​ Puts up to count items from the currently selected slot into the specified slot of the inventory at the specified side.  ​
Line 35: Line 39:
 Note that the robot cannot drop items into it's own inventory, attempting to do so will cause this to throw an error. You need to use `robot.transferTo` from the [[api:​robot|Robot API]] to do so. Note that the robot cannot drop items into it's own inventory, attempting to do so will cause this to throw an error. You need to use `robot.transferTo` from the [[api:​robot|Robot API]] to do so.
 - `suckFromSlot(side:​number,​ slot:​number[,​ count:​number]):​boolean`  ​ - `suckFromSlot(side:​number,​ slot:​number[,​ count:​number]):​boolean`  ​
-Takes up to count items from the specified slot of the inventory at the specified side and puts them into the currently selected slot.  ​+Takes up to count items from the specified slot of the inventory at the specified side and puts them into the currently selected ​slot. If the currently selected slot to deposit to cannot store all of the items sent to it then any remaining items are placed in the next available ​slot.  ​
 **side** - a valid side.  ​ **side** - a valid side.  ​
 **slot** - the slot to take the item from.  ​ **slot** - the slot to take the item from.  ​
Line 46: Line 50:
 **Returns:​** `true` if the items were swapped, `false` otherwise. This operation usually succeeds.  ​ **Returns:​** `true` if the items were swapped, `false` otherwise. This operation usually succeeds.  ​
 Note that you can put any kind of item into the robot'​s tool slot, not only tools, even items that the robot cannot use at all. Note that you can put any kind of item into the robot'​s tool slot, not only tools, even items that the robot cannot use at all.
 +- `store(side:​number,​ slot:​number,​ dbAddress:​string,​ dbSlot:​number):​boolean`  ​
 +  Stores the Itemstack description of the item from the specified slot in an inventory on the specified side, into a specified database slot with the specified address.
 +- `storeInternal(slot:​number,​ dbAddress:​string,​ dBslot:​number):​boolean`  ​
 +  Stores Itemstack description of item in specified robot inventory slot into specified database slot with the specified database address.
 +- `compareToDatabase(slot:​number,​ dBaddress:​string,​ dBslot:​number):​boolean`  ​
 +  Compare Itemstack description in specified slot with one in specified slot of a database with specified address. Returns **true** if items match.
 +- `compareStacks(side:​number,​ slotA:​number,​ slotB:​number):​boolean`  ​
 +  Checks to see if Itemstack descriptions in specified slotA and slotB of inventory on specified side match. Returns **true** if identical.
 +- `getSlotMaxStackSize(side:​number,​ slot:​number):​number`  ​
 +  Gets maximum number of items in specified slot in inventory on the specified side.
 +- `getSlotStackSize(side:​number,​ slot:​number):​number`  ​
 +  Gets number of items in specified slot in inventory on the specified side.
 +
  
 Example: Example:
Line 56: Line 73:
    
 local slot = 1 local slot = 1
-local item = component.inventory_controller.getStackInSlot(sides.back, ​slot)+local item = component.inventory_controller.getStackInInternalSlot(slot)
    
 if item then if item then