@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
69 lines (68 loc) • 5.08 kB
TypeScript
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>;
}