This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
component:inventory_controller [2014/11/21 03:51] seebs |
component:inventory_controller [2021/05/31 17:40] 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 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: | ||
+ | |||
+ | Print meta-info about the item in the position indicated by [[http://ocdoc.cil.li/api:robot|slot]] | ||
+ | |||
+ | ```lua | ||
+ | local component = require("component") | ||
+ | local sides = require("sides") | ||
+ | |||
+ | local slot = 1 | ||
+ | local item = component.inventory_controller.getStackInInternalSlot(slot) | ||
+ | |||
+ | if item then | ||
+ | print("Item name: ", item.name) | ||
+ | print("Item count: ", item.size) | ||
+ | print("Item damage: ", item.damage) | ||
+ | else | ||
+ | print("Slot " .. slot .. " is empty") | ||
+ | end | ||
+ | ``` | ||
{{page>component:contents&noheader&noeditbutton&nouser&nofooter}} | {{page>component:contents&noheader&noeditbutton&nouser&nofooter}} |