|
13 | 13 | "show_bounding_box",
|
14 | 14 | "auto_bounding_box",
|
15 | 15 | "bounding_box",
|
16 |
| - "enable_plugin_mode", |
17 | 16 | "resource_pack_export_mode",
|
18 |
| - "data_pack_export_mode", |
19 | 17 | "display_item",
|
20 | 18 | "custom_model_data_offset",
|
21 | 19 | "enable_advanced_resource_pack_settings",
|
22 | 20 | "resource_pack",
|
23 | 21 | "display_item_path",
|
24 | 22 | "model_folder",
|
25 | 23 | "texture_folder",
|
26 |
| - "enable_advanced_data_pack_settings", |
27 |
| - "data_pack", |
28 |
| - "summon_commands", |
29 |
| - "interpolation_duration", |
30 |
| - "teleportation_duration", |
31 |
| - "use_storage_for_animation", |
32 | 24 | "baked_animations",
|
33 |
| - "json_file", |
34 |
| - "custom_summon_commands" |
| 25 | + "json_file" |
35 | 26 | ],
|
36 | 27 | "properties": {
|
37 |
| - "export_namespace": { "type": "string", "default": "armor_stand" }, |
38 |
| - "show_bounding_box": { "type": "boolean", "default": false }, |
39 |
| - "auto_bounding_box": { "type": "boolean", "default": true }, |
| 28 | + "export_namespace": { |
| 29 | + "type": "string", |
| 30 | + "default": "armor_stand", |
| 31 | + "description": "The namespace to export the project to. This is the namespace that will be used in the exported Resource Pack and Data Pack." |
| 32 | + }, |
| 33 | + "show_bounding_box": { |
| 34 | + "type": "boolean", |
| 35 | + "default": false, |
| 36 | + "description": "Whether or not to show the bounding box in the editor." |
| 37 | + }, |
| 38 | + "auto_bounding_box": { |
| 39 | + "type": "boolean", |
| 40 | + "default": true, |
| 41 | + "description": "Whether or not to automatically calculate the bounding box based on the model's geometry. \n\nNOTE: The auto bounding box will NOT take bone offsets from animations into account, so the bounding box may be smaller than needed in some cases." |
| 42 | + }, |
40 | 43 | "bounding_box": {
|
41 | 44 | "type": "array",
|
42 | 45 | "default": [48, 48],
|
| 46 | + "description": "Determines the culling box of the model. The model will stop rendering when this box is off-screen.", |
43 | 47 | "items": {
|
44 | 48 | "type": "integer",
|
45 | 49 | "minimum": 0
|
46 | 50 | },
|
47 | 51 | "minItems": 2,
|
48 | 52 | "maxItems": 2
|
49 | 53 | },
|
50 |
| - "enable_plugin_mode": { "type": "boolean", "default": false }, |
51 | 54 | "resource_pack_export_mode": {
|
52 | 55 | "type": "string",
|
53 | 56 | "default": "raw",
|
| 57 | + "description": "Determines how the Resource Pack should be exported.\n\nRaw - Exports the Resource Pack as a folder.\n\nZip - Exports the Resource Pack as a .zip file.\n\nNone - Disables Resource Pack exporting.", |
54 | 58 | "enum": ["raw", "zip", "none"]
|
55 | 59 | },
|
56 |
| - "data_pack_export_mode": { |
| 60 | + "display_item": { |
57 | 61 | "type": "string",
|
58 |
| - "default": "raw", |
59 |
| - "enum": ["raw", "zip", "none"] |
| 62 | + "default": "minecraft:white_dye", |
| 63 | + "description": "The item to display the Blueprints models in-game. Multiple Blueprints can be placed on the same item and they will be merged automatically." |
| 64 | + }, |
| 65 | + "custom_model_data_offset": { |
| 66 | + "type": "integer", |
| 67 | + "default": 0, |
| 68 | + "description": "The offset to use for the Custom Model Data of the Display Item. Allows multiple Blueprints on the same item, but in separate, unaffiliated Resource Packs." |
60 | 69 | },
|
61 |
| - "display_item": { "type": "string", "default": "minecraft:white_dye" }, |
62 |
| - "custom_model_data_offset": { "type": "integer", "default": 0 }, |
63 | 70 | "enable_advanced_resource_pack_settings": {
|
64 | 71 | "type": "boolean",
|
65 |
| - "default": false |
| 72 | + "default": false, |
| 73 | + "description": "Whether or not to enable the advanced Resource Pack settings. (Individual RP Folder Selection)" |
| 74 | + }, |
| 75 | + "resource_pack": { |
| 76 | + "type": "string", |
| 77 | + "default": "", |
| 78 | + "description": "The root folder of the Resource Pack to export the project into." |
| 79 | + }, |
| 80 | + "display_item_path": { |
| 81 | + "type": "string", |
| 82 | + "default": "", |
| 83 | + "description": "Where to place the Display Item. This should be a path to a .json file in a Resource Pack." |
| 84 | + }, |
| 85 | + "model_folder": { |
| 86 | + "type": "string", |
| 87 | + "default": "", |
| 88 | + "description": "Where to place all of the exported models. This should be a path to a folder in a Resource Pack." |
| 89 | + }, |
| 90 | + "texture_folder": { |
| 91 | + "type": "string", |
| 92 | + "default": "", |
| 93 | + "description": "Where to place all of the exported textures. This should be a path to a folder in a Resource Pack." |
66 | 94 | },
|
67 |
| - "resource_pack": { "type": "string", "default": "" }, |
68 |
| - "display_item_path": { "type": "string", "default": "" }, |
69 |
| - "model_folder": { "type": "string", "default": "" }, |
70 |
| - "texture_folder": { "type": "string", "default": "" }, |
71 |
| - "enable_advanced_data_pack_settings": { |
| 95 | + "baked_animations": { |
72 | 96 | "type": "boolean",
|
73 |
| - "default": false |
| 97 | + "default": true, |
| 98 | + "description": "Whether or not to bake the exported animations.\n\nBaked animations have their frames pre-calculated and stored in the exported JSON file, reducing the complexity of rendering the model in-game.\n\nSome Plugins may require this to be enabled to function correctly." |
74 | 99 | },
|
75 |
| - "data_pack": { "type": "string", "default": "" }, |
76 |
| - "summon_commands": { "type": "string", "default": "" }, |
77 |
| - "interpolation_duration": { "type": "number", "default": 1 }, |
78 |
| - "teleportation_duration": { "type": "number", "default": 1 }, |
79 |
| - "use_storage_for_animation": { "type": "boolean", "default": false }, |
80 |
| - "baked_animations": { "type": "boolean", "default": true }, |
81 |
| - "json_file": { "type": "string", "default": "" }, |
82 |
| - "custom_summon_commands": { "type": "string", "default": "" } |
| 100 | + "json_file": { "type": "string", "default": "", "description": "" } |
83 | 101 | }
|
84 | 102 | },
|
85 | 103 | "resources": {
|
|
98 | 116 | "displayItemPath": { "type": "string", "default": "" },
|
99 | 117 | "models": {
|
100 | 118 | "type": "object",
|
| 119 | + "description": "A map of bone UUIDs to custom bone models. This will be empty if no custom models are used.", |
101 | 120 | "additionalProperties": false,
|
102 | 121 | "patternProperties": {
|
103 | 122 | "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": {
|
|
107 | 126 | },
|
108 | 127 | "variant_models": {
|
109 | 128 | "type": "object",
|
110 |
| - "description": "A map of variant names to maps of models to use for each bone when that variant is applied. Note that this map only contains included, and modified bones.", |
| 129 | + "description": "A map of variant UUIDS to maps of models to use for each bone when that variant is applied. Note that this map only contains bones modified and not excluded by the variant.", |
111 | 130 | "additionalProperties": false,
|
112 | 131 | "patternProperties": {
|
113 | 132 | "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": {
|
|
125 | 144 | "type": "object",
|
126 | 145 | "additionalProperties": false,
|
127 | 146 | "patternProperties": {
|
128 |
| - ".+": { |
| 147 | + "animated_java:transparent_texture": { |
129 | 148 | "type": "object",
|
130 |
| - "required": ["name", "expectedPath", "src"], |
| 149 | + "description": "The internal transparent texture used to hide parts of the Rig.", |
131 | 150 | "properties": {
|
132 |
| - "name": { "type": "string" }, |
| 151 | + "name": { "const": "Transparent" }, |
133 | 152 | "expectedPath": {
|
134 |
| - "type": "string", |
135 |
| - "description": "The path in the resource pack that the models that reference this texture expect the texture to be at." |
| 153 | + "const": "assets\\animated_java\\textures\\item\\armor_stand\\Transparent.png" |
136 | 154 | },
|
137 | 155 | "src": {
|
138 |
| - "type": "string", |
139 |
| - "description": "A data URL containing the texture image." |
| 156 | + "const": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kTtIA0EURY+JokjEwhQiFltEK21UxFKiKIKBkETwV7i7MVHIrmE3YmMp2AYs/DRGLWystbWwFQTBD4i1hZWijcj6ZhNIEOPAMIc7cy9v3oNAKWdabuMoWHbBSUxGtdm5ea35hSaCQIAR3XTzseREirrr844Gdd72q6z67/5cbell14QGTXjUzDsF4SXh4Y1CXvGecNhc0dPCZ8J9jhQo/KB0o8yvirM+B1Rm2EklxoTDwlq2ho0aNlccS3hIOJK2bMkPzJY5rXhTsZVbNyt1qh+Glu2ZpNJldzPJFDHiaBiss0qOAv1y2qK4JOQ+Wsff5fvj4jLEtYopjnHWsNB9P2oGv3vrZgYHykmhKDQ9e957DzTvwHfR876OPO/7GIJPcGlX/WslGPkQvVjVIofQvgXnV1XN2IWLbeh8zOuO7kv+/DMZeDuVMc1Bxw20LpT7Vrnn5B5S0qvpa9g/gN6sZC/W+XdLbd/+fVPp3w9iNHKgdXImZAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+gFAwAFKkpaLkIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAEklEQVQ4y2NgGAWjYBSMAggAAAQQAAGFP6pyAAAAAElFTkSuQmCC" |
140 | 157 | }
|
141 | 158 | }
|
142 | 159 | },
|
143 |
| - "animated_java:transparent_texture": { |
| 160 | + ".+": { |
144 | 161 | "type": "object",
|
145 |
| - "description": "The internal transparent texture used to hide parts of the Rig.", |
| 162 | + "required": ["name", "expectedPath", "src"], |
146 | 163 | "properties": {
|
147 |
| - "name": { "const": "Transparent" }, |
| 164 | + "name": { "type": "string" }, |
148 | 165 | "expectedPath": {
|
149 |
| - "const": "assets\\animated_java\\textures\\item\\armor_stand\\Transparent.png" |
| 166 | + "type": "string", |
| 167 | + "description": "The path in the resource pack that the models that reference this texture expect the texture to be at." |
150 | 168 | },
|
151 | 169 | "src": {
|
152 |
| - "const": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kTtIA0EURY+JokjEwhQiFltEK21UxFKiKIKBkETwV7i7MVHIrmE3YmMp2AYs/DRGLWystbWwFQTBD4i1hZWijcj6ZhNIEOPAMIc7cy9v3oNAKWdabuMoWHbBSUxGtdm5ea35hSaCQIAR3XTzseREirrr844Gdd72q6z67/5cbell14QGTXjUzDsF4SXh4Y1CXvGecNhc0dPCZ8J9jhQo/KB0o8yvirM+B1Rm2EklxoTDwlq2ho0aNlccS3hIOJK2bMkPzJY5rXhTsZVbNyt1qh+Glu2ZpNJldzPJFDHiaBiss0qOAv1y2qK4JOQ+Wsff5fvj4jLEtYopjnHWsNB9P2oGv3vrZgYHykmhKDQ9e957DzTvwHfR876OPO/7GIJPcGlX/WslGPkQvVjVIofQvgXnV1XN2IWLbeh8zOuO7kv+/DMZeDuVMc1Bxw20LpT7Vrnn5B5S0qvpa9g/gN6sZC/W+XdLbd/+fVPp3w9iNHKgdXImZAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+gFAwAFKkpaLkIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAEklEQVQ4y2NgGAWjYBSMAggAAAQQAAGFP6pyAAAAAElFTkSuQmCC" |
| 170 | + "type": "string", |
| 171 | + "description": "A data URL containing the texture image." |
153 | 172 | }
|
154 | 173 | }
|
155 | 174 | }
|
|
159 | 178 | },
|
160 | 179 | "rig": {
|
161 | 180 | "type": "object",
|
162 |
| - "required": ["default_pose", "node_map"], |
| 181 | + "required": ["default_transforms", "node_map"], |
163 | 182 | "properties": {
|
164 |
| - "default_pose": { |
| 183 | + "default_transforms": { |
165 | 184 | "type": "array",
|
166 |
| - "items": { "$ref": "#/definitions/animationNode" } |
| 185 | + "items": { "$ref": "#/definitions/nodeTransform" } |
167 | 186 | },
|
168 | 187 | "node_map": {
|
169 | 188 | "type": "object",
|
|
214 | 233 | }
|
215 | 234 | }
|
216 | 235 | },
|
| 236 | + "vec2": { "type": "array", "items": { "type": "number" }, "minItems": 2, "maxItems": 2 }, |
217 | 237 | "vec3": { "type": "array", "items": { "type": "number" }, "minItems": 3, "maxItems": 3 },
|
218 | 238 | "vec4": { "type": "array", "items": { "type": "number" }, "minItems": 4, "maxItems": 4 },
|
219 | 239 | "vanillaModel": {
|
|
301 | 321 | "resourceLocation": { "type": "string" }
|
302 | 322 | }
|
303 | 323 | },
|
304 |
| - "animationNode": { |
| 324 | + "nodeTransform": { |
305 | 325 | "type": "object",
|
306 |
| - "description": "The transformation of a node.", |
| 326 | + "description": "The transformation of a node. Includes several different storage methods for the transformation. All of these methods contain the same data, it's up to the plugin developer to choose which method to use.", |
307 | 327 | "required": ["type", "name", "uuid", "matrix", "pos", "rot", "scale"],
|
308 | 328 | "properties": {
|
309 | 329 | "type": {
|
|
321 | 341 | "uuid": { "type": "string" },
|
322 | 342 | "matrix": {
|
323 | 343 | "type": "array",
|
| 344 | + "description": "The transformation matrix of the node. The matrix is a 4x4 matrix in row-major order.", |
324 | 345 | "items": { "type": "number" },
|
325 | 346 | "minItems": 16,
|
326 | 347 | "maxItems": 16
|
327 | 348 | },
|
328 | 349 | "transformation": {
|
329 |
| - "translation": { "$ref": "#/definitions/vec3" }, |
330 |
| - "left_rotation": { "$ref": "#/definitions/vec4" }, |
331 |
| - "scale": { "$ref": "#/definitions/vec3" } |
| 350 | + "type": "object", |
| 351 | + "description": "The decomposed matrix transformation of the node.", |
| 352 | + "translation": { |
| 353 | + "$ref": "#/definitions/vec3", |
| 354 | + "description": "A vector3 representing the translation of the node." |
| 355 | + }, |
| 356 | + "left_rotation": { |
| 357 | + "$ref": "#/definitions/vec4", |
| 358 | + "description": "A quaternion representing the left rotation of the node." |
| 359 | + }, |
| 360 | + "scale": { |
| 361 | + "$ref": "#/definitions/vec3", |
| 362 | + "description": "A vector3 representing the scale of the node." |
| 363 | + } |
| 364 | + }, |
| 365 | + "pos": { |
| 366 | + "$ref": "#/definitions/vec3", |
| 367 | + "description": "A vector3 representing the position of the node." |
| 368 | + }, |
| 369 | + "rot": { |
| 370 | + "$ref": "#/definitions/vec3", |
| 371 | + "description": "A vector3 representing the rotation of the node." |
| 372 | + }, |
| 373 | + "head_rot": { |
| 374 | + "$ref": "#/definitions/vec2", |
| 375 | + "description": "A vector2 representing the head rotation of the node.\n\nUsed for correctly rotating located entities, and cameras, as they don't have access to a Z axis." |
| 376 | + }, |
| 377 | + "scale": { |
| 378 | + "$ref": "#/definitions/vec3", |
| 379 | + "description": "A vector3 representing the scale of the node." |
332 | 380 | },
|
333 |
| - "pos": { "$ref": "#/definitions/vec3" }, |
334 |
| - "rot": { "$ref": "#/definitions/vec3" }, |
335 |
| - "scale": { "$ref": "#/definitions/vec3" }, |
336 | 381 | "interpolation": {
|
337 | 382 | "type": "string",
|
| 383 | + "description": "The instant-interpolation mode of the node.\n\n- `pre-post`", |
338 | 384 | "enum": ["pre-post", "step"]
|
339 | 385 | },
|
340 | 386 | "commands": { "type": "string" },
|
|
564 | 610 | "type": "array",
|
565 | 611 | "items": {
|
566 | 612 | "type": "object",
|
| 613 | + "required": ["time", "node_transforms"], |
567 | 614 | "properties": {
|
568 | 615 | "time": { "type": "number" },
|
569 |
| - "nodes": { |
| 616 | + "node_transforms": { |
570 | 617 | "type": "array",
|
571 |
| - "items": { "$ref": "#/definitions/animationNode" } |
| 618 | + "items": { "$ref": "#/definitions/nodeTransform" } |
| 619 | + }, |
| 620 | + "variant": { |
| 621 | + "type": "object", |
| 622 | + "description": "If included, this frame should change the variant of the model to the specified variant.", |
| 623 | + "properties": { |
| 624 | + "uuid": { |
| 625 | + "type": "string", |
| 626 | + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$" |
| 627 | + }, |
| 628 | + "execute_condition": { "type": "string" } |
| 629 | + } |
572 | 630 | }
|
573 | 631 | }
|
574 | 632 | }
|
|
0 commit comments