UNPKG

@tendrock/database

Version:

A database lib under the Tendrock ecosystem for Minecraft Bedrock Edition Script API

40 lines (39 loc) 2.44 kB
import { DynamicPropertySerializer, TendrockDynamicPropertyValue } from "./DynamicPropertySerializer"; import { Block, Entity, ItemStack, World } from "@minecraft/server"; import { Constructor, DatabaseManager } from "./manager"; import { InstanceData } from "./instance"; export declare abstract class GameObjectDatabase<GO extends (Block | ItemStack | Entity | World)> { readonly parentManager: DatabaseManager; protected _dynamicProperty: DynamicPropertySerializer; protected _dataMap: Map<string, TendrockDynamicPropertyValue>; protected _dirtyDataIdList: string[]; protected _dirtyDataIdBuffer: string[]; protected _isFlushing: boolean; protected _uid: string; protected constructor(parentManager: DatabaseManager); abstract getGameObject(): GO; abstract _saveData(runtimeId: string, identifier: string, value: TendrockDynamicPropertyValue): void; protected _markDirty(identifier: string): void; getUid(): string; set(identifier: string, value: TendrockDynamicPropertyValue): void; get(identifier: string): TendrockDynamicPropertyValue; protected _canSetAsInstance(obj: any): obj is TendrockDynamicPropertyValue; protected getInstanceImpl<T extends InstanceData<any>>(identifier: string, objectConstructor: Constructor<T>, createIfAbsent: boolean, options?: (Parameters<T['onConstruct']>[0])): T | undefined; createInstanceIfAbsent<T extends InstanceData<any>>(identifier: string, objectConstructor: Constructor<T>, options?: (Parameters<T['onConstruct']>[0])): T; buildInstanceIfPresent<T extends InstanceData<any>>(identifier: string, objectConstructor: Constructor<T>, options?: (Parameters<T['onConstruct']>[0])): T | undefined; getBuiltInstance<T>(identifier: string): T | undefined; delete(identifier: string): boolean; forEach(callback: (identifier: string, value: TendrockDynamicPropertyValue) => void): void; size(): number; entries(): IterableIterator<[string, TendrockDynamicPropertyValue]>; keys(): IterableIterator<string>; values(): IterableIterator<TendrockDynamicPropertyValue>; isFlushing(): boolean; clear(): void; clearDynamicProperties(dataIdList?: string[]): void; protected _onFlushFinished(): void; _beginFlush(runtimeId: string): void; _endFlush(runtimeId: string): void; _getDirtyDataIdList(runtimeId: string): string[]; _getAllDirtyDataIdList(runtimeId: string): string[]; }