@tendrock/database
Version:
A database lib under the Tendrock ecosystem for Minecraft Bedrock Edition Script API
39 lines (38 loc) • 2.23 kB
TypeScript
import { NamespacedDynamicProperty, TendrockDynamicPropertyValue } from "./NamespacedDynamicProperty";
import { Block, Entity, ItemStack, World } from "@minecraft/server";
import { Constructor, NamespacedDatabaseManager } from "./manager";
export declare abstract class GameObjectDatabase<GO extends (Block | ItemStack | Entity | World)> {
readonly namespace: string;
readonly parentManager: NamespacedDatabaseManager;
protected _dynamicProperty: NamespacedDynamicProperty;
protected _dataMap: Map<string, TendrockDynamicPropertyValue>;
protected _dirtyDataIdList: string[];
protected _dirtyDataIdBuffer: string[];
protected _isFlushing: boolean;
protected _uid: string;
protected constructor(namespace: string, parentManager: NamespacedDatabaseManager);
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>(identifier: string, objectConstructor: Constructor<T>, createIfAbsent: boolean, options?: unknown): T | undefined;
getInstanceOrCreate<T>(identifier: string, objectConstructor: Constructor<T>, options?: unknown): T;
getInstance<T>(identifier: string, objectConstructor: Constructor<T>, options?: unknown): T | undefined;
getInstanceIfPresent<T>(identifier: string): T | undefined;
delete(identifier: string): void;
forEach(callback: (identifier: string, value: TendrockDynamicPropertyValue) => void): void;
size(): number;
entries(): MapIterator<[string, TendrockDynamicPropertyValue]>;
keys(): MapIterator<string>;
values(): MapIterator<TendrockDynamicPropertyValue>;
isFlushing(): boolean;
clear(): void;
clearDynamicProperties(dataIdList?: string[]): void;
protected _onFlushFinished(): void;
_beginFlush(runtimeId: string): void;
_endFlush(runtimeId: string): void;
_getDirtyDataIdList(runtimeId: string): string[];
}