UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

69 lines (68 loc) 5.08 kB
import Project from "./Project"; import { ProjectItemType } from "./IProjectItemData"; import IProjectItemSeed from "./IProjectItemSeed"; import IFolder from "../storage/IFolder"; import ProjectItem from "./ProjectItem"; import SoundDefinitionCatalogDefinition from "../minecraft/SoundDefinitionCatalogDefinition"; import SoundCatalogDefinition from "../minecraft/SoundCatalogDefinition"; import IFile from "../storage/IFile"; import IGalleryItem from "./IGalleryItem"; export default class ProjectItemCreateManager { private static _getDefaultBehaviorPackPath; private static _getDefaultBehaviorPackFolderPath; private static _getDefaultDesignPackFolderPath; private static _getDefaultResourcePackPath; private static _getDefaultResourcePackFolderPath; private static _getDefaultScriptsFolderPath; static createNewItem(project: Project, itemSeed: IProjectItemSeed): Promise<ProjectItem | undefined>; static createNewScript(project: Project, itemType: ProjectItemType, name: string, folder: IFolder | undefined): Promise<ProjectItem>; static _generateFolderNameForNewItem(project: Project, basePath: string, baseName: string): Promise<string>; static _generateFileNameForNewItem(project: Project, basePath: string, baseName: string, extension: string): Promise<string>; static createNewGameTestScript(project: Project): Promise<void>; static createNewFunction(project: Project): Promise<void>; static createNewStructure(project: Project): Promise<void>; /** * "Empty file" / "Open as Raw" companion: drops a minimally-valid stub at the * conventional sub-folder for `contentType` under the project's default * behavior or resource pack. Used by the Add dialog's "Empty File (advanced)" * path so power users can author files that don't fit an existing wizard. * * If `desiredName` is omitted or already taken, a numeric suffix is appended * (handled by `_generateFileNameForNewItem`). Returns the created * `ProjectItem` so callers can select/open it. */ static createNewEmptyStubFile(project: Project, contentType: ProjectItemType, desiredName?: string): Promise<ProjectItem | undefined>; /** * Map a content type to the sub-folder, default file name, extension, and * minimally-valid stub content used by `createNewEmptyStubFile`. Stubs are * intentionally tiny — the goal is to land an editable file at the right * path, not to template a fully-valid definition (the wizards do that). * * TODO: the `format_version` in JSON stubs is hardcoded to `STUB_FORMAT_VERSION` * below. The rest of the codebase resolves the latest format version * dynamically (see `FormatVersionManager` and `Database.getLatestVersionInfo`). * When this method becomes async-friendly, pull the version from there so * stubs don't go stale. */ private static readonly STUB_FORMAT_VERSION; private static _emptyStubConfigsCache; private static get EMPTY_STUB_CONFIGS(); private static _getEmptyStubConfig; static createNewActionSet(project: Project): Promise<void>; static createNewDocumentedType(project: Project): Promise<void>; static getExistingPath(project: Project, itemType: ProjectItemType): string; static createNewForm(project: Project, name?: string, folder?: IFolder): Promise<ProjectItem>; static ensureSoundDefinitionCatalogDefinition(project: Project): Promise<SoundDefinitionCatalogDefinition | undefined>; static setFileToDefaultContent(file: IFile): void; static addFromGallery(project: Project, newName: string, galleryItem: IGalleryItem): Promise<void>; static ensureSoundCatalogDefinition(project: Project): Promise<SoundCatalogDefinition | undefined>; static createDesignPackJsonItem(project: Project, itemSeed: IProjectItemSeed): Promise<ProjectItem | undefined>; static createBehaviorPackJsonItem(project: Project, itemSeed: IProjectItemSeed): Promise<ProjectItem | undefined>; static createResourcePackJsonItem(project: Project, itemSeed: IProjectItemSeed): Promise<ProjectItem | undefined>; static createNewResourcePackBinaryItem(project: Project, sourceFileName: string, extension: string, defaultFolderPath: string, exampleName: string, itemType: ProjectItemType, name?: string, folder?: IFolder): Promise<ProjectItem | undefined>; static createNewDesignPackBinaryItem(project: Project, sourceFileName: string, extension: string, defaultFolderPath: string, exampleName: string, itemType: ProjectItemType, name?: string, folder?: IFolder): Promise<ProjectItem | undefined>; static createNewDesignTexture(project: Project, name?: string, folder?: IFolder, creationData?: object): Promise<ProjectItem | undefined>; static createNewTexture(project: Project, name?: string, folder?: IFolder): Promise<ProjectItem | undefined>; static createNewAudio(project: Project, name?: string, folder?: IFolder): Promise<ProjectItem | undefined>; static createNewWorldTest(project: Project, name?: string, folder?: IFolder): Promise<void>; }