|
4 | 4 | "definitions": {
|
5 | 5 | "jsonExport": {
|
6 | 6 | "type": "object",
|
7 |
| - "required": ["blueprint_settings", "resources", "rig", "animations"], |
| 7 | + "required": ["settings", "nodes", "variants", "textures", "animations"], |
8 | 8 | "properties": {
|
9 |
| - "blueprint_settings": { |
| 9 | + "settings": { |
10 | 10 | "type": "object",
|
11 | 11 | "required": [
|
12 | 12 | "export_namespace",
|
|
100 | 100 | "json_file": { "type": "string", "default": "", "description": "" }
|
101 | 101 | }
|
102 | 102 | },
|
103 |
| - "resources": { |
| 103 | + "nodes": { |
104 | 104 | "type": "object",
|
105 |
| - "required": [ |
106 |
| - "textureExportFolder", |
107 |
| - "modelExportFolder", |
108 |
| - "displayItemPath", |
109 |
| - "models", |
110 |
| - "variant_models", |
111 |
| - "textures" |
112 |
| - ], |
113 |
| - "properties": { |
114 |
| - "textureExportFolder": { "type": "string", "default": "" }, |
115 |
| - "modelExportFolder": { "type": "string", "default": "" }, |
116 |
| - "displayItemPath": { "type": "string", "default": "" }, |
117 |
| - "models": { |
118 |
| - "type": "object", |
119 |
| - "description": "A map of bone UUIDs to custom bone models. This will be empty if no custom models are used.", |
120 |
| - "additionalProperties": false, |
121 |
| - "patternProperties": { |
122 |
| - "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
123 |
| - "$ref": "#/definitions/vanillaModel" |
124 |
| - } |
125 |
| - } |
126 |
| - }, |
127 |
| - "variant_models": { |
128 |
| - "type": "object", |
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.", |
130 |
| - "additionalProperties": false, |
131 |
| - "patternProperties": { |
132 |
| - "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
133 |
| - "type": "object", |
134 |
| - "additionalProperties": false, |
135 |
| - "patternProperties": { |
136 |
| - "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
137 |
| - "$ref": "#/definitions/variantModelContainer" |
138 |
| - } |
139 |
| - } |
140 |
| - } |
141 |
| - } |
142 |
| - }, |
143 |
| - "textures": { |
144 |
| - "type": "object", |
145 |
| - "additionalProperties": false, |
146 |
| - "patternProperties": { |
147 |
| - "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
148 |
| - "type": "object", |
149 |
| - "required": ["name", "expectedPath", "src"], |
150 |
| - "properties": { |
151 |
| - "name": { "type": "string" }, |
152 |
| - "id": { |
153 |
| - "type": "string", |
154 |
| - "description": "The ID of the texture used when making vanilla models." |
155 |
| - }, |
156 |
| - "expectedPath": { |
157 |
| - "type": "string", |
158 |
| - "description": "The path in the resource pack that the models that reference this texture expect the texture to be at." |
159 |
| - }, |
160 |
| - "src": { |
161 |
| - "type": "string", |
162 |
| - "description": "A data URL containing the texture image." |
163 |
| - } |
164 |
| - } |
165 |
| - } |
166 |
| - } |
| 105 | + "additionalProperties": false, |
| 106 | + "patternProperties": { |
| 107 | + "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
| 108 | + "$ref": "#/definitions/node" |
167 | 109 | }
|
168 | 110 | }
|
169 | 111 | },
|
170 |
| - "rig": { |
| 112 | + "variants": { |
171 | 113 | "type": "object",
|
172 |
| - "required": ["node_map", "node_structure", "variants"], |
173 |
| - "properties": { |
174 |
| - "node_map": { |
175 |
| - "type": "object", |
176 |
| - "additionalProperties": false, |
177 |
| - "patternProperties": { |
178 |
| - "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
179 |
| - "$ref": "#/definitions/node" |
180 |
| - } |
181 |
| - } |
182 |
| - }, |
183 |
| - "node_structure": { |
184 |
| - "type": "object", |
185 |
| - "required": ["uuid", "children"], |
186 |
| - "properties": { |
187 |
| - "uuid": { "const": "root" }, |
188 |
| - "children": { |
189 |
| - "type": "array", |
190 |
| - "items": { "$ref": "#/definitions/nodeStructure" } |
191 |
| - } |
192 |
| - } |
193 |
| - }, |
194 |
| - "variants": { |
195 |
| - "type": "object", |
196 |
| - "additionalProperties": false, |
197 |
| - "description": "A map of variant UUIDs to variant objects.", |
198 |
| - "patternProperties": { |
199 |
| - "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
200 |
| - "$ref": "#/definitions/variant" |
201 |
| - } |
202 |
| - } |
| 114 | + "description": "The Rig's Variants", |
| 115 | + "additionalProperties": false, |
| 116 | + "patternProperties": { |
| 117 | + "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
| 118 | + "$ref": "#/definitions/variant" |
| 119 | + } |
| 120 | + } |
| 121 | + }, |
| 122 | + "textures": { |
| 123 | + "type": "object", |
| 124 | + "additionalProperties": false, |
| 125 | + "patternProperties": { |
| 126 | + "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
| 127 | + "$ref": "#/definitions/texture" |
203 | 128 | }
|
204 | 129 | }
|
205 | 130 | },
|
206 | 131 | "animations": { "$ref": "#/definitions/dynamicAnimations" }
|
207 | 132 | },
|
208 | 133 | "if": {
|
209 | 134 | "properties": {
|
210 |
| - "blueprint_settings": { |
| 135 | + "settings": { |
211 | 136 | "properties": {
|
212 | 137 | "baked_animations": { "const": true }
|
213 | 138 | }
|
|
294 | 219 | "texture": { "type": "string" }
|
295 | 220 | }
|
296 | 221 | },
|
| 222 | + "variantModel": { |
| 223 | + "type": "object", |
| 224 | + "required": ["parent", "textures"], |
| 225 | + "properties": { |
| 226 | + "parent": { "type": "string" }, |
| 227 | + "textures": { |
| 228 | + "type": "object", |
| 229 | + "patternProperties": { ".+": { "type": "string" } } |
| 230 | + } |
| 231 | + } |
| 232 | + }, |
297 | 233 | "variantModelContainer": {
|
298 | 234 | "type": "object",
|
299 |
| - "required": ["model", "customModelData", "modelPath", "resourceLocation"], |
| 235 | + "required": ["model", "custom_model_data"], |
300 | 236 | "properties": {
|
301 | 237 | "model": {
|
302 |
| - "type": "object", |
303 |
| - "required": ["parent", "textures"], |
304 |
| - "properties": { |
305 |
| - "parent": { "type": "string" }, |
306 |
| - "textures": { |
307 |
| - "type": "object", |
308 |
| - "patternProperties": { ".+": { "type": "string" } } |
309 |
| - } |
310 |
| - } |
| 238 | + "oneOf": [ |
| 239 | + { "$ref": "#/definitions/vanillaModel" }, |
| 240 | + { "$ref": "#/definitions/variantModel" } |
| 241 | + ] |
311 | 242 | },
|
312 |
| - "customModelData": { "type": "integer" }, |
313 |
| - "modelPath": { "type": "string" }, |
314 |
| - "resourceLocation": { "type": "string" } |
| 243 | + "custom_model_data": { "type": "integer" } |
315 | 244 | }
|
316 | 245 | },
|
317 | 246 | "nodeTransform": {
|
|
369 | 298 | },
|
370 | 299 | "node": {
|
371 | 300 | "type": "object",
|
372 |
| - "required": ["type", "name", "uuid"], |
| 301 | + "required": ["type", "name", "default_transform"], |
373 | 302 | "properties": {
|
374 | 303 | "type": {
|
375 | 304 | "type": "string",
|
|
384 | 313 | ]
|
385 | 314 | },
|
386 | 315 | "name": { "type": "string" },
|
387 |
| - "uuid": { "type": "string" }, |
388 | 316 | "parent": { "type": "string" },
|
389 |
| - "defaultTransform": { |
| 317 | + "default_transform": { |
390 | 318 | "$ref": "#/definitions/nodeTransform",
|
391 | 319 | "description": "The default transformation of the node."
|
392 | 320 | }
|
|
399 | 327 | }
|
400 | 328 | },
|
401 | 329 | "then": {
|
402 |
| - "required": [ |
403 |
| - "modelPath", |
404 |
| - "customModelData", |
405 |
| - "resourceLocation", |
406 |
| - "boundingBox", |
407 |
| - "configs", |
408 |
| - "baseScale" |
409 |
| - ], |
| 330 | + "required": ["bounding_box", "configs"], |
410 | 331 | "properties": {
|
411 | 332 | "modelPath": { "type": "string" },
|
412 |
| - "customModelData": { "type": "integer" }, |
413 |
| - "resourceLocation": { "type": "string" }, |
414 |
| - "boundingBox": { |
| 333 | + "bounding_box": { |
415 | 334 | "type": "object",
|
416 | 335 | "required": ["min", "max"],
|
417 | 336 | "properties": {
|
418 | 337 | "min": { "$ref": "#/definitions/vec3" },
|
419 | 338 | "max": { "$ref": "#/definitions/vec3" }
|
420 | 339 | }
|
421 | 340 | },
|
422 |
| - "baseScale": { |
423 |
| - "type": "number", |
424 |
| - "description": "The base scale of the bone, used to offset any rescaling done to the bone's model due to exceeding the 3x3x3 model size limit." |
425 |
| - }, |
426 | 341 | "configs": {
|
427 | 342 | "type": "object",
|
428 | 343 | "patternProperties": {
|
|
472 | 387 | }
|
473 | 388 | },
|
474 | 389 | "then": {
|
475 |
| - "required": [ |
476 |
| - "text", |
477 |
| - "lineWidth", |
478 |
| - "backgroundColor", |
479 |
| - "backgroundAlpha", |
480 |
| - "align", |
481 |
| - "baseScale", |
482 |
| - "config" |
483 |
| - ], |
| 390 | + "required": ["text", "align", "config"], |
484 | 391 | "properties": {
|
485 | 392 | "text": {},
|
486 |
| - "lineWidth": { "type": "number" }, |
487 |
| - "backgroundColor": { "type": "string" }, |
488 |
| - "backgroundAlpha": { "type": "number" }, |
| 393 | + "line_width": { "type": "number" }, |
| 394 | + "background_color": { "type": "string" }, |
| 395 | + "background_alpha": { "type": "number" }, |
489 | 396 | "align": {
|
490 | 397 | "type": "string",
|
491 | 398 | "enum": ["left", "center", "right"]
|
492 | 399 | },
|
493 |
| - "baseScale": { |
494 |
| - "type": "number", |
495 |
| - "description": "The base scale of the bone, used to offset any rescaling done to the bone's model due to exceeding the 3x3x3 model size limit." |
496 |
| - }, |
497 | 400 | "config": {
|
498 | 401 | "$ref": "#/definitions/boneConfig"
|
499 | 402 | }
|
|
507 | 410 | }
|
508 | 411 | },
|
509 | 412 | "then": {
|
510 |
| - "required": ["config", "block", "baseScale"], |
| 413 | + "required": ["config", "block"], |
511 | 414 | "properties": {
|
512 | 415 | "block": { "type": "string" },
|
513 |
| - "baseScale": { |
514 |
| - "type": "number", |
515 |
| - "description": "The base scale of the bone, used to offset any rescaling done to the bone's model due to exceeding the 3x3x3 model size limit." |
516 |
| - }, |
517 | 416 | "config": {
|
518 | 417 | "$ref": "#/definitions/boneConfig"
|
519 | 418 | }
|
|
527 | 426 | }
|
528 | 427 | },
|
529 | 428 | "then": {
|
530 |
| - "required": ["config", "item", "baseScale"], |
| 429 | + "required": ["config", "item"], |
531 | 430 | "properties": {
|
532 | 431 | "item": { "type": "string" },
|
533 |
| - "baseScale": { |
534 |
| - "type": "number", |
535 |
| - "description": "The base scale of the bone, used to offset any rescaling done to the bone's model due to exceeding the 3x3x3 model size limit." |
536 |
| - }, |
537 | 432 | "config": {
|
538 | 433 | "$ref": "#/definitions/boneConfig"
|
539 | 434 | }
|
|
590 | 485 | "type": "object",
|
591 | 486 | "required": [
|
592 | 487 | "name",
|
593 |
| - "safeName", |
| 488 | + "safe_name", |
594 | 489 | "duration",
|
595 |
| - "loopDelay", |
596 |
| - "loopMode", |
| 490 | + "loop_delay", |
| 491 | + "loop_mode", |
597 | 492 | "frames",
|
598 |
| - "includedNodes" |
| 493 | + "modified_nodes" |
599 | 494 | ],
|
600 | 495 | "additionalProperties": false,
|
601 | 496 | "properties": {
|
602 | 497 | "name": { "type": "string" },
|
603 |
| - "safeName": { "type": "string" }, |
| 498 | + "safe_name": { "type": "string" }, |
604 | 499 | "duration": { "type": "number" },
|
605 |
| - "loopDelay": { "type": "number" }, |
606 |
| - "loopMode": { "type": "string", "enum": ["none", "loop", "ping-pong"] }, |
607 |
| - "includedNodes": { "type": "array", "items": { "type": "string" } }, |
| 500 | + "loop_delay": { "type": "number" }, |
| 501 | + "loop_mode": { "type": "string", "enum": ["none", "loop", "ping-pong"] }, |
| 502 | + "modified_nodes": { "type": "array", "items": { "type": "string" } }, |
608 | 503 | "frames": {
|
609 | 504 | "type": "array",
|
610 | 505 | "items": {
|
|
740 | 635 | "variant": {
|
741 | 636 | "type": "object",
|
742 | 637 | "description": "A variant of the rig. Variants are used to change the appearance of the rig by swapping out different textures at runtime.",
|
743 |
| - "required": ["name", "display_name", "uuid", "texture_map", "excluded_nodes"], |
| 638 | + "required": ["name", "display_name", "models", "texture_map", "excluded_nodes"], |
744 | 639 | "properties": {
|
745 | 640 | "name": {
|
746 | 641 | "type": "string",
|
|
750 | 645 | "type": "string",
|
751 | 646 | "description": "The display name of the variant. Only used for fancy display purposes such as UI elements."
|
752 | 647 | },
|
753 |
| - "uuid": { "type": "string" }, |
754 | 648 | "texture_map": {
|
755 | 649 | "type": "object",
|
756 | 650 | "description": "A map of default texture UUID -> variant texture UUID. If a texture is not in this map, it will be assumed to be the same as the default texture.",
|
|
761 | 655 | }
|
762 | 656 | }
|
763 | 657 | },
|
| 658 | + "models": { |
| 659 | + "type": "object", |
| 660 | + "additionalProperties": false, |
| 661 | + "patternProperties": { |
| 662 | + "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$": { |
| 663 | + "$ref": "#/definitions/variantModelContainer" |
| 664 | + } |
| 665 | + } |
| 666 | + }, |
764 | 667 | "excluded_nodes": {
|
765 | 668 | "type": "array",
|
766 | 669 | "description": "A list of node UUIDs that should be excluded / ignored when this variant is applied.",
|
|
808 | 711 | "easeOutBounce",
|
809 | 712 | "easeInOutBounce"
|
810 | 713 | ]
|
| 714 | + }, |
| 715 | + "texture": { |
| 716 | + "type": "object", |
| 717 | + "required": ["name", "id", "src"], |
| 718 | + "properties": { |
| 719 | + "name": { "type": "string" }, |
| 720 | + "id": { |
| 721 | + "type": "string", |
| 722 | + "description": "The ID of the texture used when making vanilla models." |
| 723 | + }, |
| 724 | + "src": { |
| 725 | + "type": "string", |
| 726 | + "description": "A data URL containing the texture image." |
| 727 | + } |
| 728 | + } |
811 | 729 | }
|
812 | 730 | }
|
813 | 731 | }
|
0 commit comments