From 5decd39cdcd2728c3af0670ea56f07f2c6589e37 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Tue, 28 Apr 2020 17:05:00 -0400 Subject: [PATCH] Add Missing File --- src/main/ts/src/minecraft/inventory.ts | 73 ++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/main/ts/src/minecraft/inventory.ts diff --git a/src/main/ts/src/minecraft/inventory.ts b/src/main/ts/src/minecraft/inventory.ts new file mode 100644 index 0000000..4f4ba4e --- /dev/null +++ b/src/main/ts/src/minecraft/inventory.ts @@ -0,0 +1,73 @@ +import { useBridge } from 'scriptcraft-core'; +import { ItemStack } from './item'; + +/** + * Inventory + */ +export class Inventory { + /** + * @internal + */ + readonly javaObject: JavaObject; + + /** + * @internal + */ + constructor(object: JavaObject) { + this.javaObject = object; + } + + /** + * Get Size + * @returns Inventory Size + */ + size(): number { + return useBridge('Inventory.size', this.javaObject) as number; + } + + /** + * Get Maximum Stack Size + * @returns Inventory Maximum Stack Size + */ + getMaxStackSize(): number { + return useBridge('Inventory.getMaxStackSize', this.javaObject) as number; + } + + /** + * Get Stack In Slot + * @param slot Inventory Slot + * @returns Item Stack + */ + get(slot: number): ItemStack { + const obj = useBridge('Inventory.get', this.javaObject, slot) as JavaObject; + if (obj !== null) { + return new ItemStack(obj); + } else { + return null; + } + } + + /** + * Take Item From Slot + * @param slot Inventory Slot + * @param count Amount To Take + * @returns Item Stack + */ + take(slot: number, count: number): ItemStack { + const obj = useBridge('Inventory.take', this.javaObject, slot, count) as JavaObject; + if (obj !== null) { + return new ItemStack(obj); + } else { + return null; + } + } + + /** + * Set Item In Slot + * @param slot Inventory Slot + * @param item Item Stack + */ + set(slot: number, item: ItemStack): void { + useBridge('Inventory.set', this.javaObject, slot, item.javaObject); + } +}