This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
ScriptCraft/scriptcraft/src/main/ts/src/minecraft/inventory.ts

72 lines
1.8 KiB
TypeScript

import { useBridge } from 'scriptcraft-core';
import { ItemStack } from './item';
import { JavaObjectWrapper } from './core';
/**
* Inventory
*/
export class Inventory extends JavaObjectWrapper {
/**
* Create Inventory Wrapper From Java Object
* @param object Java Object
*/
constructor(javaObject: JavaObject | JavaObjectWrapper) {
super(javaObject);
this.assertValidJavaObject('Inventory');
}
/**
* Get Size
* @returns Inventory Size
*/
size(): number {
return useBridge('Inventory.size', this.getJavaObject()) as number;
}
/**
* Get Maximum Stack Size
* @returns Inventory Maximum Stack Size
*/
getMaxStackSize(): number {
return useBridge('Inventory.getMaxStackSize', this.getJavaObject()) as number;
}
/**
* Get Stack In Slot
* @param slot Inventory Slot
* @returns Item Stack
*/
get(slot: number): ItemStack {
const obj = useBridge('Inventory.get', this.getJavaObject(), 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.getJavaObject(), 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.getJavaObject(), slot, item.getJavaObject());
}
}