memepack-builder
Version:
Build memified Minecraft resource pack
367 lines (318 loc) • 7.72 kB
TypeScript
/**
* @public
*/
export declare interface ArchiveContentEntry {
content: Record<string, any>;
}
/**
* @public
*/
export declare type ArchiveEntry = ArchiveFileEntry | ArchiveContentEntry;
/**
* @public
*/
export declare interface ArchiveFileEntry {
filePath: string;
}
/**
* @public
*/
export declare interface ArchiveJsonContentEntry extends ArchiveContentEntry {
patch?: JsonContentPatch;
}
/**
* @public
*/
export declare type ArchiveJsonEntry = ArchiveJsonContentEntry | ArchiveJsonFileEntry;
/**
* @public
*/
export declare interface ArchiveJsonFileEntry extends ArchiveFileEntry {
patch?: JsonContentPatch;
}
/**
* @public
*/
export declare interface ArchiveLangFileEntry extends ArchiveFileEntry {
patch?: JsonContentPatch;
}
/**
* @public
*/
export declare type ArchiveMap = Map<string, ArchiveEntry>;
/**
* @public
*/
export declare type ArchivePatchableEntry = ArchiveJsonContentEntry | ArchiveLangFileEntry | ArchiveJsonFileEntry;
/**
* @public
*/
export declare interface BaseBuildOptions {
modules: {
resource: string[];
collection: string[];
};
compatible: boolean;
}
/**
* @public
*/
export declare interface BaseModuleManifest {
name: string;
description: string;
author: string[];
incompatibleWith?: string[];
}
/**
* @public
*/
export declare interface BedrockBuildOptions extends BaseBuildOptions {
platform: 'bedrock';
type: 'normal';
}
/**
* @public
*/
export declare class BedrockOptionValidator {
#private;
constructor(options: BedrockBuildOptions);
validateOptions(): boolean;
}
/**
* @public
*/
export declare class BedrockPackBuilder extends PackBuilder {
#private;
build(options: BedrockBuildOptions): Promise<Buffer>;
}
/**
* @public
*/
export declare interface BedrockTextureFile {
texture_data: Record<string, unknown>;
}
/**
* @public
*/
export declare interface CollectionModule {
path: string;
manifest: CollectionModuleManifest;
}
/**
* @public
*/
export declare interface CollectionModuleManifest extends BaseModuleManifest {
type: 'collection';
contains?: string[];
}
/**
* @public
*/
export declare const COMPATIBLE_FILENAME_CONFIG: {
'assets/minecraft/lang/zh_meme\\.(.+)': string;
};
/**
*
* @param selectedModules - modules to be processed.
* @returns
* @public
*/
export declare function generateArchiveEntries(selectedModules: ResourceModule[]): Promise<ArchiveMap>;
/**
*
* @param textureFileName - output file name
* @param selectedModules - generate file from these modules
* @returns
* @public
*/
export declare function generateBedrockTextureFile(textureFileName: string, selectedModules: ResourceModule[]): Promise<BedrockTextureFile>;
/**
* @public
*/
export declare function generateJsonModification(selectedModules: ResourceModule[]): Promise<JsonModification>;
/**
* @public
*/
export declare const JAVA_LEGACY_FORMAT_VERSION = 3;
/**
* @public
*/
export declare interface JavaBuildOptions extends BaseBuildOptions {
platform: 'java';
type: 'normal' | 'legacy';
format: number;
mod: string[];
}
/**
* @public
*/
export declare class JavaOptionValidator {
#private;
constructor(options: JavaBuildOptions);
validateOptions(): boolean;
}
/**
* @public
*/
export declare class JavaPackBuilder extends PackBuilder {
#private;
constructor(parsedModules: ResourceModule[], priorityFilePath: string, legacyMappingFilePath: string);
build(options: JavaBuildOptions): Promise<Buffer>;
}
/**
* @public
*/
export declare type JsonAdditionPatch = Map<string, string>;
/**
* @public
*/
export declare interface JsonContentPatch {
flatKey?: JsonFlatKeyPatch;
nestedKey?: JsonNestedKeyPatch;
}
/**
* @public
*/
export declare type JsonDeletionPatch = Set<string>;
/**
* @public
*/
export declare type JsonFlatAdditionMap = Map<string, JsonAdditionPatch>;
/**
* @public
*/
export declare type JsonFlatDeletionMap = Map<string, JsonDeletionPatch>;
/**
* @public
*/
export declare interface JsonFlatKeyPatch {
addition?: JsonAdditionPatch;
deletion?: JsonDeletionPatch;
}
/**
* @public
*/
export declare interface JsonModification {
addition: JsonFlatAdditionMap;
deletion: JsonFlatDeletionMap;
}
/**
* @public
*/
export declare interface JsonNestedKeyPatch {
addition?: Map<string, any>;
deletion?: JsonDeletionPatch;
}
/**
* @public
*/
export declare class JsonPatch {
static applyJsonContentPatch(content: Record<string, any>, patch: JsonContentPatch): Record<string, any>;
static applyJsonFilePatch(filePath: string, patch: JsonContentPatch): Promise<Record<string, any>>;
static applyJsonFlatKeyPatch(content: Record<string, any>, patch: JsonFlatKeyPatch): Record<string, any>;
static applyJsonNestedKeyPatch(content: Record<string, any>, patch: JsonNestedKeyPatch): Record<string, any>;
}
/**
* @public
*/
export declare interface JsonPatchDefinition {
file: string;
add?: string;
remove?: string;
}
/**
* @public
*/
export declare class LangFileConverter {
static parseJavaLang(rawContent: string): any;
static dumpJavaLang(obj: PureJson): string;
static parseBedrockLang(rawContent: string): any;
static dumpBedrockLang(obj: PureJson): string;
}
/**
* @public
*/
export declare interface LanguageModificationDefinition {
file: string;
add?: string;
remove?: string;
}
/**
* @public
*/
export declare const LEGACY_FILE_CONTENT_CONFIG: {
'assets/minecraft/lang/zh_cn.lang': {
requireLegacyMapping: boolean;
};
};
/**
* @public
*/
export declare const LEGACY_FILENAME_CONFIG: {
'assets/minecraft/lang/zh_meme\\.(.+)': string;
'assets/minecraft/lang/zh_cn\\.(.+)': string;
'assets/minecraft/textures/block/(.+)': string;
'assets/minecraft/textures/item/(.+)': string;
};
/**
* @public
*/
export declare type MemeModule = ResourceModule | CollectionModule;
/**
* @public
*/
export declare type MemeModuleManifest = ResourceModuleManifest | CollectionModuleManifest;
/**
* @public
*/
export declare const MODULE_MANIFEST_FILENAME = "module_manifest.json";
/**
* @public
*/
export declare class ModuleParser {
#private;
addSearchPaths(...paths: string[]): void;
searchModules(): Promise<MemeModule[]>;
}
/**
* @public
*/
export declare class PackBuilder {
#private;
parsedModules: MemeModule[];
priorityFilePath: string;
entries: ArchiveMap;
constructor(parsedModules: MemeModule[], priorityFilePath: string);
get selectedModules(): ResourceModule[];
protected sortModules(): Promise<void>;
getPackEntries(): Promise<ArchiveMap>;
static getPackHash(content: Buffer): string;
decideSelectedModules(options: BaseBuildOptions): ResourceModule[];
}
/**
* @public
*/
export declare type PureJson = Record<string, string>;
/**
* @public
*/
export declare interface ResourceModule {
path: string;
manifest: ResourceModuleManifest;
files: string[];
}
/**
* @public
*/
export declare interface ResourceModuleManifest extends BaseModuleManifest {
type: 'resource';
languageModification?: JsonPatchDefinition[];
}
/**
* @public
*/
export declare interface TransformOptions {
compatible: boolean;
format: number;
}
export { }