import { ItemUseAfterEvent } from "@minecraft/server"; /** * A simple prop *(an item that can be used)* , can only be used once. * @category Need Registry */ export class Prop { constructor( /** * Identifier of the type of items for the stack. If a namespace is not specified, 'minecraft:' is assumed. */ readonly typeId: string, /** * The event when an item is successfully used by a player. */ public useEvent?: (arg: ItemUseAfterEvent) => void ) {} /** * Registry the prop. * @deprecated Use `Register.propRegistry()` to registry the prop */ protected register() { console.warn("[Lazuli] The register method was deprecated!"); } } /** * A prop *(an item that can be used)* , Its durability is consumed after use. * @category Need Registry */ export class DurabilityLimitedProp extends Prop { constructor( /** * Identifier of the type of items for the stack. If a namespace is not specified, 'minecraft:' is assumed. */ readonly typeId: string, /** * The durability to be consumed. */ public durabilityValue: number, /** * The event when an item is successfully used by a player. */ public useEvent?: (arg: ItemUseAfterEvent) => void ) { super(typeId, useEvent); } } /** * A prop *(an item that can be used)* , it has a limited number of uses. * @category Need Registry */ export class NumberLimitedProp extends Prop { constructor( /** * Identifier of the type of items for the stack. If a namespace is not specified, 'minecraft:' is assumed. */ readonly typeId: string, /** * Options of the prop. */ public options: NumberLimitedPropOptions, /** * The event when an item is successfully used by a player. */ public useEvent?: (arg: ItemUseAfterEvent) => void ) { super(typeId, useEvent); } /** * Registry the prop. * @deprecated Use `Register.propRegistry()` to registry the prop. */ protected register() { console.warn("[Lazuli] The register method was deprecated!"); } } /** * Options of the prop. */ export interface NumberLimitedPropOptions { /** * The maximum use value of the item. */ maxUse: number; /** * Consumed use value when use the item, default is `1`. */ onceConsumed?: number; }