|
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