|
15 | 15 | </script>
|
16 | 16 |
|
17 | 17 | <script lang="ts">
|
| 18 | + import Select from './dialogItems/select.svelte' |
| 19 | +
|
18 | 20 | export let blueprintName: Valuable<string>
|
19 | 21 | export let textureSizeX: Valuable<number>
|
20 | 22 | export let textureSizeY: Valuable<number>
|
21 | 23 | // Export Settings
|
22 | 24 | export let exportNamespace: Valuable<string>
|
23 | 25 | export let enablePluginMode: Valuable<boolean>
|
24 |
| - export let enableResourcePack: Valuable<boolean> |
25 |
| - export let enableDataPack: Valuable<boolean> |
| 26 | + export let resourcePackExportMode: Valuable<string> |
| 27 | + export let dataPackExportMode: Valuable<string> |
26 | 28 | // Bounding Box
|
27 | 29 | export let showBoundingBox: Valuable<boolean>
|
28 | 30 | export let autoBoundingBox: Valuable<boolean>
|
|
305 | 307 | return { type: 'success', message: '' }
|
306 | 308 | }
|
307 | 309 | }
|
| 310 | +
|
| 311 | + function zipChecker(value: string): { type: string; message: string } { |
| 312 | + switch (true) { |
| 313 | + case value === '': |
| 314 | + return { |
| 315 | + type: 'error', |
| 316 | + message: translate( |
| 317 | + 'dialog.blueprint_settings.resource_pack_zip.error.no_file_selected', |
| 318 | + ), |
| 319 | + } |
| 320 | + case fs.existsSync(value) && !fs.statSync(value).isFile(): |
| 321 | + return { |
| 322 | + type: 'error', |
| 323 | + message: translate( |
| 324 | + 'dialog.blueprint_settings.resource_pack_zip.error.not_a_file', |
| 325 | + ), |
| 326 | + } |
| 327 | + default: |
| 328 | + return { type: 'success', message: '' } |
| 329 | + } |
| 330 | + } |
308 | 331 | </script>
|
309 | 332 |
|
310 | 333 | <div>
|
|
387 | 410 | valueChecker={jsonFileChecker}
|
388 | 411 | />
|
389 | 412 | {:else}
|
390 |
| - <Checkbox |
391 |
| - label={translate('dialog.blueprint_settings.enable_resource_pack.title')} |
392 |
| - tooltip={translate('dialog.blueprint_settings.enable_resource_pack.description')} |
393 |
| - bind:checked={enableResourcePack} |
| 413 | + <Select |
| 414 | + label={translate('dialog.blueprint_settings.resource_pack_export_mode.title')} |
| 415 | + tooltip={translate('dialog.blueprint_settings.resource_pack_export_mode.description')} |
| 416 | + options={{ |
| 417 | + raw: translate('dialog.blueprint_settings.resource_pack_export_mode.options.raw'), |
| 418 | + zip: translate('dialog.blueprint_settings.resource_pack_export_mode.options.zip'), |
| 419 | + none: translate('dialog.blueprint_settings.resource_pack_export_mode.options.none'), |
| 420 | + }} |
| 421 | + defaultOption={'raw'} |
| 422 | + bind:value={resourcePackExportMode} |
394 | 423 | />
|
395 |
| - <Checkbox |
396 |
| - label={translate('dialog.blueprint_settings.enable_data_pack.title')} |
397 |
| - tooltip={translate('dialog.blueprint_settings.enable_data_pack.description')} |
398 |
| - bind:checked={enableDataPack} |
| 424 | + |
| 425 | + <Select |
| 426 | + label={translate('dialog.blueprint_settings.data_pack_export_mode.title')} |
| 427 | + tooltip={translate('dialog.blueprint_settings.data_pack_export_mode.description')} |
| 428 | + options={{ |
| 429 | + raw: translate('dialog.blueprint_settings.data_pack_export_mode.options.raw'), |
| 430 | + zip: translate('dialog.blueprint_settings.data_pack_export_mode.options.zip'), |
| 431 | + none: translate('dialog.blueprint_settings.data_pack_export_mode.options.none'), |
| 432 | + }} |
| 433 | + defaultOption={'raw'} |
| 434 | + bind:value={dataPackExportMode} |
399 | 435 | />
|
400 | 436 |
|
401 |
| - {#if $enableResourcePack} |
| 437 | + {#if $resourcePackExportMode !== 'none'} |
402 | 438 | <SectionHeader
|
403 | 439 | label={translate('dialog.blueprint_settings.resource_pack_settings.title')}
|
404 | 440 | />
|
405 |
| - <Checkbox |
406 |
| - label={translate( |
407 |
| - 'dialog.blueprint_settings.enable_advanced_resource_pack_settings.title', |
408 |
| - )} |
409 |
| - bind:checked={enableAdvancedResourcePackSettings} |
410 |
| - /> |
411 |
| - {#if $enableAdvancedResourcePackSettings} |
412 |
| - <!-- --> |
413 |
| - <p class="warning"> |
414 |
| - {translate('dialog.blueprint_settings.advanced_settings_warning')} |
415 |
| - </p> |
416 |
| - <LineInput |
417 |
| - label={translate('dialog.blueprint_settings.display_item.title')} |
418 |
| - tooltip={translate('dialog.blueprint_settings.display_item.description')} |
419 |
| - bind:value={displayItem} |
420 |
| - valueChecker={displayItemChecker} |
421 |
| - /> |
422 |
| - |
423 |
| - <NumberSlider |
424 |
| - label={translate('dialog.blueprint_settings.custom_model_data_offset.title')} |
425 |
| - tooltip={translate( |
426 |
| - 'dialog.blueprint_settings.custom_model_data_offset.description', |
| 441 | + {#if $resourcePackExportMode === 'raw'} |
| 442 | + <Checkbox |
| 443 | + label={translate( |
| 444 | + 'dialog.blueprint_settings.enable_advanced_resource_pack_settings.title', |
427 | 445 | )}
|
428 |
| - bind:value={customModelDataOffset} |
| 446 | + bind:checked={enableAdvancedResourcePackSettings} |
429 | 447 | />
|
430 |
| - |
| 448 | + {#if $enableAdvancedResourcePackSettings} |
| 449 | + <p class="warning"> |
| 450 | + {translate('dialog.blueprint_settings.advanced_settings_warning')} |
| 451 | + </p> |
| 452 | + <LineInput |
| 453 | + label={translate('dialog.blueprint_settings.display_item.title')} |
| 454 | + tooltip={translate('dialog.blueprint_settings.display_item.description')} |
| 455 | + bind:value={displayItem} |
| 456 | + valueChecker={displayItemChecker} |
| 457 | + /> |
| 458 | + |
| 459 | + <NumberSlider |
| 460 | + label={translate( |
| 461 | + 'dialog.blueprint_settings.custom_model_data_offset.title', |
| 462 | + )} |
| 463 | + tooltip={translate( |
| 464 | + 'dialog.blueprint_settings.custom_model_data_offset.description', |
| 465 | + )} |
| 466 | + bind:value={customModelDataOffset} |
| 467 | + /> |
| 468 | + |
| 469 | + <FileSelect |
| 470 | + label={translate('dialog.blueprint_settings.display_item_path.title')} |
| 471 | + tooltip={translate( |
| 472 | + 'dialog.blueprint_settings.display_item_path.description', |
| 473 | + )} |
| 474 | + bind:value={displayItemPath} |
| 475 | + valueChecker={advancedResourcePackFileChecker} |
| 476 | + /> |
| 477 | + |
| 478 | + <FolderSelect |
| 479 | + label={translate('dialog.blueprint_settings.model_folder.title')} |
| 480 | + tooltip={translate('dialog.blueprint_settings.model_folder.description')} |
| 481 | + bind:value={modelFolder} |
| 482 | + valueChecker={advancedResourcePackFolderChecker} |
| 483 | + /> |
| 484 | + |
| 485 | + <FolderSelect |
| 486 | + label={translate('dialog.blueprint_settings.texture_folder.title')} |
| 487 | + tooltip={translate('dialog.blueprint_settings.texture_folder.description')} |
| 488 | + bind:value={textureFolder} |
| 489 | + valueChecker={advancedResourcePackFolderChecker} |
| 490 | + /> |
| 491 | + {:else} |
| 492 | + <LineInput |
| 493 | + label={translate('dialog.blueprint_settings.display_item.title')} |
| 494 | + tooltip={translate('dialog.blueprint_settings.display_item.description')} |
| 495 | + bind:value={displayItem} |
| 496 | + valueChecker={displayItemChecker} |
| 497 | + /> |
| 498 | + |
| 499 | + <NumberSlider |
| 500 | + label={translate( |
| 501 | + 'dialog.blueprint_settings.custom_model_data_offset.title', |
| 502 | + )} |
| 503 | + tooltip={translate( |
| 504 | + 'dialog.blueprint_settings.custom_model_data_offset.description', |
| 505 | + )} |
| 506 | + bind:value={customModelDataOffset} |
| 507 | + min={0} |
| 508 | + max={2147483647} |
| 509 | + /> |
| 510 | + |
| 511 | + <FolderSelect |
| 512 | + label={translate('dialog.blueprint_settings.resource_pack.title')} |
| 513 | + tooltip={translate('dialog.blueprint_settings.resource_pack.description')} |
| 514 | + bind:value={resourcePack} |
| 515 | + valueChecker={resourcePackFolderChecker} |
| 516 | + /> |
| 517 | + {/if} |
| 518 | + {:else if $resourcePackExportMode === 'zip'} |
431 | 519 | <FileSelect
|
432 |
| - label={translate('dialog.blueprint_settings.display_item_path.title')} |
433 |
| - tooltip={translate('dialog.blueprint_settings.display_item_path.description')} |
434 |
| - bind:value={displayItemPath} |
435 |
| - valueChecker={advancedResourcePackFileChecker} |
436 |
| - /> |
437 |
| - |
438 |
| - <FolderSelect |
439 |
| - label={translate('dialog.blueprint_settings.model_folder.title')} |
440 |
| - tooltip={translate('dialog.blueprint_settings.model_folder.description')} |
441 |
| - bind:value={modelFolder} |
442 |
| - valueChecker={advancedResourcePackFolderChecker} |
443 |
| - /> |
444 |
| - |
445 |
| - <FolderSelect |
446 |
| - label={translate('dialog.blueprint_settings.texture_folder.title')} |
447 |
| - tooltip={translate('dialog.blueprint_settings.texture_folder.description')} |
448 |
| - bind:value={textureFolder} |
449 |
| - valueChecker={advancedResourcePackFolderChecker} |
450 |
| - /> |
451 |
| - {:else} |
452 |
| - <LineInput |
453 |
| - label={translate('dialog.blueprint_settings.display_item.title')} |
454 |
| - tooltip={translate('dialog.blueprint_settings.display_item.description')} |
455 |
| - bind:value={displayItem} |
456 |
| - valueChecker={displayItemChecker} |
457 |
| - /> |
458 |
| - |
459 |
| - <NumberSlider |
460 |
| - label={translate('dialog.blueprint_settings.custom_model_data_offset.title')} |
461 |
| - tooltip={translate( |
462 |
| - 'dialog.blueprint_settings.custom_model_data_offset.description', |
463 |
| - )} |
464 |
| - bind:value={customModelDataOffset} |
465 |
| - min={0} |
466 |
| - max={2147483647} |
467 |
| - /> |
468 |
| - |
469 |
| - <FolderSelect |
470 |
| - label={translate('dialog.blueprint_settings.resource_pack.title')} |
471 |
| - tooltip={translate('dialog.blueprint_settings.resource_pack.description')} |
| 520 | + label={translate('dialog.blueprint_settings.resource_pack_zip.title')} |
| 521 | + tooltip={translate('dialog.blueprint_settings.resource_pack_zip.description')} |
472 | 522 | bind:value={resourcePack}
|
473 |
| - valueChecker={resourcePackFolderChecker} |
| 523 | + valueChecker={zipChecker} |
474 | 524 | />
|
475 | 525 | {/if}
|
476 | 526 | {/if}
|
477 | 527 |
|
478 |
| - {#if $enableDataPack} |
| 528 | + {#if $dataPackExportMode !== 'none'} |
479 | 529 | <SectionHeader
|
480 | 530 | label={translate('dialog.blueprint_settings.data_pack_settings.title')}
|
481 | 531 | />
|
482 |
| - <!-- <Checkbox |
483 |
| - label={translate( |
484 |
| - 'dialog.blueprint_settings.enable_advanced_data_pack_settings.title', |
485 |
| - )} |
486 |
| - bind:checked={enableAdvancedDataPackSettings} |
487 |
| - /> --> |
488 |
| - {#if $enableAdvancedDataPackSettings} |
489 |
| - <p class="warning"> |
490 |
| - {translate('dialog.blueprint_settings.advanced_settings_warning')} |
491 |
| - </p> |
492 |
| - |
493 |
| - <FolderSelect |
494 |
| - label={translate('dialog.blueprint_settings.data_pack.title')} |
495 |
| - tooltip={translate('dialog.blueprint_settings.data_pack.description')} |
496 |
| - bind:value={dataPack} |
497 |
| - valueChecker={dataPackFolderChecker} |
498 |
| - /> |
499 |
| - {:else} |
500 |
| - <FolderSelect |
501 |
| - label={translate('dialog.blueprint_settings.data_pack.title')} |
502 |
| - tooltip={translate('dialog.blueprint_settings.data_pack.description')} |
| 532 | + {#if $dataPackExportMode === 'raw'} |
| 533 | + {#if $enableAdvancedDataPackSettings} |
| 534 | + <p class="warning"> |
| 535 | + {translate('dialog.blueprint_settings.advanced_settings_warning')} |
| 536 | + </p> |
| 537 | + |
| 538 | + <FolderSelect |
| 539 | + label={translate('dialog.blueprint_settings.data_pack.title')} |
| 540 | + tooltip={translate('dialog.blueprint_settings.data_pack.description')} |
| 541 | + bind:value={dataPack} |
| 542 | + valueChecker={dataPackFolderChecker} |
| 543 | + /> |
| 544 | + {:else} |
| 545 | + <FolderSelect |
| 546 | + label={translate('dialog.blueprint_settings.data_pack.title')} |
| 547 | + tooltip={translate('dialog.blueprint_settings.data_pack.description')} |
| 548 | + bind:value={dataPack} |
| 549 | + valueChecker={dataPackFolderChecker} |
| 550 | + /> |
| 551 | + {/if} |
| 552 | + {:else if $dataPackExportMode === 'zip'} |
| 553 | + <FileSelect |
| 554 | + label={translate('dialog.blueprint_settings.data_pack_zip.title')} |
| 555 | + tooltip={translate('dialog.blueprint_settings.data_pack_zip.description')} |
503 | 556 | bind:value={dataPack}
|
504 |
| - valueChecker={dataPackFolderChecker} |
| 557 | + valueChecker={zipChecker} |
505 | 558 | />
|
506 | 559 | {/if}
|
507 | 560 | <CodeInput
|
|
551 | 604 | font-size: 0.8em;
|
552 | 605 | margin-bottom: 8px;
|
553 | 606 | }
|
554 |
| - /* .error { |
555 |
| - color: var(--color-error); |
556 |
| - font-family: var(--font-code); |
557 |
| - font-size: 0.8em; |
558 |
| - margin-bottom: 8px; |
559 |
| - } */ |
560 | 607 | </style>
|
0 commit comments