@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
237 lines (236 loc) • 7.11 kB
TypeScript
import IGitHubInfo from "./IGitHubInfo";
import IProjectItemVariant from "./IProjectItemVariant";
export declare const MaxItemTypes = 166;
export declare enum ProjectItemCategory {
assets = 0,
logic = 1,
types = 2,
build = 3,
documentation = 4,
meta = 5,
package = 6,
unknown = 7,
mctools = 8
}
export declare enum ProjectItemType {
unknown = 0,
testJs = 1,
js = 2,
catalogIndexJs = 3,
structure = 4,
behaviorPackManifestJson = 5,
unknownJson = 6,
MCWorld = 7,
MCTemplate = 8,
MCFunction = 9,
entityTypeBehavior = 10,
entityTypeBaseJs = 11,// <--- not in use, in favor of just general .js + generated
actionSet = 12,
ts = 13,
resourcePackManifestJson = 14,
worldTest = 15,
worldFolder = 16,
behaviorPackListJson = 17,
resourcePackListJson = 18,
animationBehaviorJson = 19,
animationControllerBehaviorJson = 20,
blockTypeBehavior = 21,
blockMaterialsBehaviorJson = 22,
itemTypeBehavior = 23,
lootTableBehavior = 24,
biomesClientCatalogResource = 25,// legacy mega catalog of biome resources (biomes_client)
blocksCatalogResourceJson = 26,
soundCatalog = 27,
animationResourceJson = 28,
animationControllerResourceJson = 29,
entityTypeResource = 30,
fogResourceJson = 31,
modelGeometryJson = 32,
particleJson = 33,
renderControllerJson = 34,
ninesliceJson = 35,
uiJson = 36,
languagesCatalogJson = 37,
biomeBehavior = 38,
dialogueBehaviorJson = 39,
featureRuleBehavior = 40,
featureBehavior = 41,
functionEventJson = 42,
recipeBehavior = 43,
spawnRuleBehavior = 44,
tradingBehaviorJson = 45,
volumeBehaviorJson = 46,
attachableResourceJson = 47,
itemTypeLegacyResource = 48,// note this is the 1.10 definition of item resources, more modern items use attachables?
materialsResourceJson = 49,
musicDefinitionJson = 50,
soundDefinitionCatalog = 51,
blockTypeResourceJsonDoNotUse = 52,// deprecated - Duplicate of blocksCatalogResourceJson
MCAddon = 53,
zip = 54,
MCPack = 55,
documentedTypeFolder = 56,
documentedCommandFolder = 57,
tsconfigJson = 58,
packageJson = 59,
packageLockJson = 60,
docInfoJson = 61,
scriptTypesJson = 62,
commandSetDefinitionJson = 63,
jsconfigJson = 64,
docfxJson = 65,
jsdocJson = 66,
skinPackManifestJson = 67,
worldTemplateManifestJson = 68,
buildProcessedJs = 69,
entityTypeBaseTs = 70,// <--- not in use, in favor of just general .ts + generated
blockTypeBaseJs = 71,// <--- not in use, in favor of just general .js + generated
blockTypeBaseTs = 72,// <--- not in use, in favor of just general .ts + generated
MCProject = 73,
image = 74,
vsCodeLaunchJson = 75,
vsCodeTasksJson = 76,
vsCodeSettingsJson = 77,
vsCodeExtensionsJson = 78,
lang = 79,
projectSummaryMetadata = 80,
tickJson = 81,
cameraBehaviorJson = 82,
material = 83,
materialSetJson = 84,
materialVertex = 85,
materialFragment = 86,
materialGeometry = 87,// NOTE: this is a /materials specific .geometry file, and not a .geo.json type file (which is modelGeometryJson)
lightingJson = 88,
textureSetJson = 89,
flipbookTexturesJson = 91,
itemTextureJson = 92,
terrainTextureCatalogResourceJson = 93,
globalVariablesJson = 94,
dataForm = 95,
dimensionJson = 96,
behaviorPackHistoryListJson = 97,
resourcePackHistoryListJson = 98,
texture = 99,
marketingAssetImage = 100,
storeAssetImage = 101,
uiTexture = 102,
packIconImage = 103,
textureListJson = 104,
fileListArrayJson = 105,
vanillaDataJson = 106,
engineOrderingJson = 107,
audio = 108,
behaviorPackFolder = 109,
resourcePackFolder = 110,
skinPackFolder = 111,
contentIndexJson = 112,
contentReportJson = 113,
levelDbLdb = 114,
levelDbLog = 115,
levelDbCurrent = 116,
levelDbManifest = 117,
levelDat = 118,
justConfigTs = 119,
esLintConfigMjs = 120,
env = 121,
prettierRcJson = 122,
skinCatalogJson = 123,
tagsMetadata = 124,
personaManifestJson = 125,
personaPackFolder = 126,
blockCulling = 127,
craftingItemCatalog = 128,
mcToolsProjectPreferences = 129,
educationJson = 130,
aimAssistPresetJson = 131,
colorGradingJson = 132,
atmosphericsJson = 133,
pbrJson = 134,
pointLightsJson = 135,
waterJson = 136,
shadowsJson = 137,
contentsJson = 138,
jigsawStructureSet = 139,
jigsawStructure = 140,
jigsawTemplatePool = 141,
jigsawProcessorList = 142,
aimAssistCategoryJson = 143,
behaviorTreeJson = 144,
spawnGroupJson = 145,
designPackManifestJson = 146,
designPackFolder = 147,
designTexture = 148,
personaJson = 149,
sdlLayout = 150,
lodJson = 151,
rendererJson = 152,
loadingMessagesJson = 153,
splashesJson = 154,
cameraResourceJson = 155,
fontMetadataJson = 156,
emoticonsJson = 157,
skinPackGeometryJson = 158,
skinPackTextureBackCompatJson = 159,
uniformsJson = 160,
biomeResource = 161,// new style per-biome JSON files
levelDatOld = 162,
jsMap = 163,
markdownDocumentation = 164,
voxelShapeBehavior = 165
}
export declare enum ProjectItemStorageType {
singleFile = 0,
folder = 1
}
export declare enum ProjectItemEditPreference {
projectDefault = 0,
forceEditor = 1,
forceRaw = 2
}
export declare enum ProjectItemErrorStatus {
none = 0,
unprocessable = 1
}
export declare enum ProjectItemCreationType {
normal = 0,
generated = 1,
build = 2,
dist = 3
}
export default interface IProjectItemData {
itemType: ProjectItemType;
projectPath: string | null | undefined;
storagePath?: string | null | undefined;
variants: {
[label: string]: IProjectItemVariant;
};
tags: string[];
name: string;
source?: string;
isInWorld?: boolean;
storageType: ProjectItemStorageType | undefined;
gitHubReference?: IGitHubInfo;
creationType?: ProjectItemCreationType;
editPreference?: ProjectItemEditPreference;
errorMessage?: string;
errorStatus?: ProjectItemErrorStatus;
items?: IProjectItemData[];
/**
* Cached thumbnail as data URL (e.g., "data:image/svg+xml;base64,..." or "data:image/png;base64,...").
* Used for geometry models and other items that can have visual previews.
* Generated in background worker and displayed in ProjectItemList.
*/
cachedThumbnail?: string;
/**
* Timestamp when the thumbnail was last generated.
* Used to invalidate cache when file content changes.
*/
thumbnailGeneratedAt?: number;
/**
* Path to another project item whose thumbnail should be used for this item.
* For example, entity behavior/resource files link to their geometry model's thumbnail.
* This is set during relations processing based on item relationships.
*/
thumbnailLink?: string;
}