@minecraft/creator-tools 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/Carto.js +33 -6
- package/app/CartoApp.js +1 -0
- package/app/IGalleryItem.js +7 -0
- package/app/IProjectItemData.js +11 -3
- package/app/IProjectItemVariant.js +1 -0
- package/app/IProjectItemVariantSeed.js +4 -0
- package/app/Project.js +213 -809
- package/app/ProjectAutogeneration.js +28 -27
- package/app/ProjectExporter.js +15 -12
- package/app/ProjectItem.js +163 -32
- package/app/{ProjectItemManager.js → ProjectItemCreateManager.js} +153 -46
- package/app/ProjectItemInference.js +709 -0
- package/app/ProjectItemRelations.js +32 -32
- package/app/ProjectItemUtilities.js +111 -10
- package/app/ProjectItemVariant.js +1 -1
- package/app/ProjectItemVariantCreateManager.js +72 -0
- package/app/ProjectStandard.js +6 -6
- package/app/ProjectUtilities.js +59 -57
- package/cli/ClUtils.js +2 -1
- package/cli/TaskWorker.js +9 -1
- package/cli/index.js +233 -141
- package/core/Constants.js +2 -1
- package/core/Utilities.js +24 -2
- package/data/content/index.json +4 -0
- package/data/content/newitemjson/aggregate_feature.json +9 -0
- package/data/content/newitemjson/atmospherics.json +79 -0
- package/data/content/newitemjson/attachable.json +18 -0
- package/data/content/newitemjson/biome.json +13 -0
- package/data/content/newitemjson/block_behavior.json +13 -0
- package/data/content/newitemjson/block_catalog.json +6 -0
- package/data/content/newitemjson/block_culling.json +9 -0
- package/data/content/newitemjson/cave_carver_feature.json +9 -0
- package/data/content/newitemjson/color_grading.json +34 -0
- package/data/content/newitemjson/entity_behavior.json +19 -0
- package/data/content/newitemjson/entity_resources.json +27 -0
- package/data/content/newitemjson/feature_rule.json +16 -0
- package/data/content/newitemjson/geode_feature.json +28 -0
- package/data/content/newitemjson/index.json +33 -0
- package/data/content/newitemjson/item_behavior.json +17 -0
- package/data/content/newitemjson/jigsaw_processor_list.json +8 -0
- package/data/content/newitemjson/jigsaw_structure.json +14 -0
- package/data/content/newitemjson/jigsaw_structure_set.json +21 -0
- package/data/content/newitemjson/jigsaw_template_pool.json +8 -0
- package/data/content/newitemjson/lighting.json +44 -0
- package/data/content/newitemjson/loot_table.json +1 -0
- package/data/content/newitemjson/pbr.json +9 -0
- package/data/content/newitemjson/point_lights.json +47 -0
- package/data/content/newitemjson/recipe_shaped.json +9 -0
- package/data/content/newitemjson/recipe_shapeless.json +9 -0
- package/data/content/newitemjson/render_controller.json +10 -0
- package/data/content/newitemjson/shadows.json +4 -0
- package/data/content/newitemjson/spawn_rule.json +9 -0
- package/data/content/newitemjson/water.json +22 -0
- package/data/forms/biome/biome_definition.form.json +663 -503
- package/data/forms/biome/biome_description.form.json +8 -2
- package/data/forms/biome/biome_json_file.form.json +685 -525
- package/data/forms/biome/biome_replacement.form.json +17 -11
- package/data/forms/biome/minecraft_capped_surface.form.json +60 -25
- package/data/forms/biome/minecraft_climate.form.json +15 -15
- package/data/forms/biome/minecraft_frozen_ocean_surface.form.json +96 -51
- package/data/forms/biome/minecraft_mesa_surface.form.json +142 -79
- package/data/forms/biome/minecraft_mountain_parameters.form.json +12 -8
- package/data/forms/biome/minecraft_multinoise_generation_rules.form.json +12 -12
- package/data/forms/biome/minecraft_overworld_generation_rules.form.json +20 -4
- package/data/forms/biome/minecraft_overworld_height.form.json +6 -6
- package/data/forms/biome/minecraft_replace_biomes.form.json +17 -11
- package/data/forms/biome/minecraft_surface_material_adjustments.form.json +84 -64
- package/data/forms/biome/minecraft_surface_parameters.form.json +96 -51
- package/data/forms/biome/minecraft_swamp_surface.form.json +96 -51
- package/data/forms/biome/minecraft_tags.form.json +1 -1
- package/data/forms/block/materialinstanceface.form.json +34 -0
- package/data/forms/block/minecraft_destructible_by_mining.form.json +3 -28
- package/data/forms/block/minecraft_destruction_particles.form.json +7 -0
- package/data/forms/block/minecraft_geometry.form.json +74 -0
- package/data/forms/block/minecraft_item_visual.form.json +1 -0
- package/data/forms/block/minecraft_liquid_detection.form.json +1 -0
- package/data/forms/block/minecraft_map_color.form.json +7 -6
- package/data/forms/block/minecraft_material_instances.form.json +45 -0
- package/data/forms/block/minecraft_replaceable.form.json +1 -0
- package/data/forms/client_biome/client_biome_definition.form.json +145 -139
- package/data/forms/client_biome/client_biome_description.form.json +7 -1
- package/data/forms/client_biome/client_biome_json_file.form.json +151 -145
- package/data/forms/client_biome/minecraft_ambient_sounds.form.json +1 -0
- package/data/forms/client_biome/minecraft_atmosphere_identifier.form.json +1 -1
- package/data/forms/client_biome/minecraft_biome_music.form.json +7 -6
- package/data/forms/client_biome/minecraft_color_grading_identifier.form.json +1 -1
- package/data/forms/client_biome/minecraft_lighting_identifier.form.json +1 -1
- package/data/forms/client_biome/minecraft_water_identifier.form.json +1 -1
- package/data/forms/client_block/block_culling.form.json +15 -10
- package/data/forms/clientbiome/index.json +1 -0
- package/data/forms/entity/entity_component_definitions.form.json +1860 -0
- package/data/forms/entity/entity_document.form.json +3748 -0
- package/data/forms/entity/filter_test.form.json +10 -10
- package/data/forms/entity/index.json +1 -1
- package/data/forms/entity/minecraft_addrider.form.json +1 -1
- package/data/forms/entity/minecraft_ageable.form.json +23 -0
- package/data/forms/entity/minecraft_ambient_sound_interval.form.json +24 -0
- package/data/forms/entity/minecraft_angry.form.json +1 -2
- package/data/forms/entity/minecraft_behavior_fire_at_target.form.json +1 -0
- package/data/forms/entity/minecraft_behavior_float.form.json +8 -0
- package/data/forms/entity/minecraft_behavior_float_tempt.form.json +157 -6
- package/data/forms/entity/minecraft_behavior_float_wander.form.json +108 -6
- package/data/forms/entity/minecraft_behavior_follow_caravan.form.json +10 -10
- package/data/forms/entity/minecraft_behavior_follow_mob.form.json +369 -3
- package/data/forms/entity/minecraft_behavior_hold_ground.form.json +24 -24
- package/data/forms/entity/minecraft_behavior_jump_around_target.form.json +1 -0
- package/data/forms/entity/minecraft_behavior_melee_box_attack.form.json +2 -2
- package/data/forms/entity/minecraft_behavior_move_around_target.form.json +1 -0
- package/data/forms/entity/minecraft_behavior_nearest_attackable_target.form.json +33 -8
- package/data/forms/entity/minecraft_behavior_offer_flower.form.json +2 -12
- package/data/forms/entity/minecraft_behavior_panic.form.json +15 -6
- package/data/forms/entity/minecraft_behavior_player_ride_tamed.form.json +17 -1
- package/data/forms/entity/minecraft_behavior_random_hover.form.json +22 -0
- package/data/forms/entity/minecraft_behavior_ranged_attack.form.json +2 -2
- package/data/forms/entity/minecraft_behavior_summon_entity.form.json +1 -0
- package/data/forms/entity/minecraft_behavior_tempt.form.json +40 -0
- package/data/forms/entity/minecraft_body_rotation_always_follows_head.form.json +14 -0
- package/data/forms/entity/minecraft_body_rotation_axis_aligned.form.json +8 -0
- package/data/forms/entity/minecraft_body_rotation_blocked.form.json +6 -0
- package/data/forms/entity/minecraft_boostable.form.json +9 -4
- package/data/forms/entity/minecraft_breathable.form.json +30 -0
- package/data/forms/entity/minecraft_breedable.form.json +45 -18
- package/data/forms/entity/minecraft_can_fly.form.json +6 -0
- package/data/forms/entity/minecraft_cannot_be_attacked.form.json +1 -0
- package/data/forms/entity/minecraft_collision_box.form.json +40 -28
- package/data/forms/entity/minecraft_conditional_bandwidth_optimization.form.json +6 -0
- package/data/forms/entity/minecraft_damage_sensor.form.json +37 -23
- package/data/forms/entity/minecraft_despawn.form.json +8 -0
- package/data/forms/entity/minecraft_entity_sensor.form.json +140 -20
- package/data/forms/entity/minecraft_equipment.form.json +24 -0
- package/data/forms/entity/minecraft_explode.form.json +110 -104
- package/data/forms/entity/minecraft_flying_speed.form.json +30 -0
- package/data/forms/entity/minecraft_follow_range.form.json +9 -0
- package/data/forms/entity/minecraft_home.form.json +57 -23
- package/data/forms/entity/minecraft_hurt_on_condition.form.json +28 -36
- package/data/forms/entity/minecraft_ignore_cannot_be_attacked.form.json +1 -0
- package/data/forms/entity/minecraft_input_air_controlled.form.json +31 -3
- package/data/forms/entity/minecraft_interact.form.json +862 -248
- package/data/forms/entity/minecraft_is_baby.form.json +32 -6
- package/data/forms/entity/minecraft_is_collidable.form.json +6 -0
- package/data/forms/entity/minecraft_is_hidden_when_invisible.form.json +6 -0
- package/data/forms/entity/minecraft_is_tamed.form.json +6 -0
- package/data/forms/entity/minecraft_jump_static.form.json +6 -0
- package/data/forms/entity/minecraft_knockback_resistance.form.json +14 -0
- package/data/forms/entity/minecraft_leashable.form.json +229 -214
- package/data/forms/entity/minecraft_leashable_to.form.json +244 -0
- package/data/forms/entity/minecraft_movement.form.json +26 -0
- package/data/forms/entity/minecraft_movement_hover.form.json +6 -0
- package/data/forms/entity/minecraft_nameable.form.json +6 -0
- package/data/forms/entity/minecraft_navigation_float.form.json +28 -2
- package/data/forms/entity/minecraft_navigation_hover.form.json +11 -0
- package/data/forms/entity/minecraft_physics.form.json +8 -0
- package/data/forms/entity/minecraft_pushable.form.json +37 -0
- package/data/forms/entity/minecraft_remove_in_peaceful.form.json +212 -0
- package/data/forms/entity/minecraft_rideable.form.json +302 -300
- package/data/forms/entity/minecraft_scale.form.json +38 -0
- package/data/forms/entity/minecraft_transient.form.json +1 -0
- package/data/forms/entity/minecraft_type_family.form.json +20 -0
- package/data/forms/entityevents/emit_particle.form.json +1 -0
- package/data/forms/entityevents/play_sound.form.json +1 -0
- package/data/forms/entityfilters/bool_property.form.json +37 -1
- package/data/forms/entityfilters/has_equipment.form.json +28 -4
- package/data/forms/entityfilters/in_caravan.form.json +14 -3
- package/data/forms/entityfilters/in_contact_with_water.form.json +1 -3
- package/data/forms/entityfilters/in_lava.form.json +22 -34
- package/data/forms/entityfilters/index.json +1 -1
- package/data/forms/entityfilters/is_daytime.form.json +8 -0
- package/data/forms/entityfilters/is_family.form.json +40 -26
- package/data/forms/entityfilters/is_riding_self.form.json +129 -0
- package/data/forms/entityfilters/rider_count.form.json +56 -13
- package/data/forms/index.json +1 -1
- package/data/forms/item/90.form.json +1486 -0
- package/data/forms/item/index.json +1 -1
- package/data/forms/item/minecraft_block_placer.form.json +13 -12
- package/data/forms/item/minecraft_bundle_interaction.form.json +1 -0
- package/data/forms/item/minecraft_compostable.form.json +1 -0
- package/data/forms/item/minecraft_digger.form.json +11 -11
- package/data/forms/item/minecraft_durability.form.json +4 -4
- package/data/forms/item/minecraft_dyeable.form.json +1 -0
- package/data/forms/item/minecraft_enchantable.form.json +20 -20
- package/data/forms/item/minecraft_entity_placer.form.json +10 -10
- package/data/forms/item/minecraft_food.form.json +25 -20
- package/data/forms/item/minecraft_icon.form.json +23 -6
- package/data/forms/item/minecraft_item.form.json +102 -17
- package/data/forms/item/minecraft_rarity.form.json +1 -0
- package/data/forms/item/minecraft_record.form.json +10 -10
- package/data/forms/item/minecraft_shooter.form.json +12 -12
- package/data/forms/item/minecraft_storage_item.form.json +35 -34
- package/data/forms/item/minecraft_throwable.form.json +18 -18
- package/data/forms/item/minecraft_use_modifiers.form.json +22 -14
- package/data/forms/item/minecraft_wearable.form.json +6 -6
- package/data/forms/misc/biome_replacement.form.json +17 -11
- package/data/forms/misc/bounds.form.json +4 -4
- package/data/forms/misc/class_v1_21_80_jigsawblockmetadata.form.json +24 -24
- package/data/forms/misc/crafting_catalog_category.form.json +12 -12
- package/data/forms/misc/crafting_catalog_document.form.json +12 -12
- package/data/forms/misc/crafting_catalog_group.form.json +12 -12
- package/data/forms/misc/crafting_catalog_group_icon.form.json +12 -12
- package/data/forms/misc/dimension.form.json +20 -20
- package/data/forms/misc/dimensiondocument.form.json +20 -20
- package/data/forms/misc/emitter_lifetime_events_proxy.form.json +32 -32
- package/data/forms/misc/emitter_local_space_proxy.form.json +4 -4
- package/data/forms/misc/emitter_rate_steady.form.json +12 -12
- package/data/forms/misc/emitter_shape_box.form.json +34 -34
- package/data/forms/misc/emitter_shape_custom.form.json +12 -12
- package/data/forms/misc/emitter_shape_disc.form.json +45 -45
- package/data/forms/misc/emitter_shape_entity_aabb.form.json +5 -5
- package/data/forms/misc/emitter_shape_point.form.json +12 -12
- package/data/forms/misc/emitter_shape_sphere.form.json +34 -34
- package/data/forms/misc/minecraft_aim_assist_categories.form.json +16 -16
- package/data/forms/misc/minecraft_aim_assist_preset.form.json +21 -21
- package/data/forms/misc/minecraft_dimension_bounds.form.json +5 -4
- package/data/forms/misc/particle_appearance_billboard.form.json +10 -10
- package/data/forms/misc/particle_appearance_billboard_flipbook_data.form.json +16 -16
- package/data/forms/misc/particle_curve_bezier_chain.form.json +16 -16
- package/data/forms/misc/particle_curve_bezier_chain_node_proxy.form.json +9 -9
- package/data/forms/misc/particle_curve_linear.form.json +17 -17
- package/data/forms/misc/particle_effect.form.json +850 -850
- package/data/forms/misc/particle_effect_basic_render_parameters.form.json +1 -1
- package/data/forms/misc/particle_effect_component.form.json +589 -589
- package/data/forms/misc/particle_effect_description.form.json +6 -6
- package/data/forms/misc/particle_event_node.form.json +148 -148
- package/data/forms/misc/particle_event_random_node.form.json +183 -183
- package/data/forms/misc/particle_initialization.form.json +12 -12
- package/data/forms/misc/particle_lifetime_expression.form.json +12 -12
- package/data/forms/misc/particle_motion_collision.form.json +36 -36
- package/data/forms/misc/particle_motion_collision_event.form.json +5 -5
- package/data/forms/misc/particle_motion_parametric.form.json +12 -12
- package/data/forms/spawn/filter_test.form.json +10 -10
- package/data/forms/visual/index.json +1 -1
- package/data/forms/visual/texture_set.v1.21.30.form.json +57 -0
- package/data/forms/world/feature_rule_conditions.form.json +31 -31
- package/data/forms/world/feature_rule_definition.form.json +126 -126
- package/data/forms/world/filter_test.form.json +10 -10
- package/data/forms/world/jigsawstructure.form.json +82 -76
- package/data/forms/world/scatter_params.form.json +71 -71
- package/data/gallery.json +206 -0
- package/data/mci/minecraft-samples-main.mci.json +1 -1
- package/data/mci/preview.mci.json +1 -1
- package/data/mci/release.mci.json +1 -1
- package/data/typedefs.beta.json +6832 -4416
- package/dataform/DataFormUtilities.js +26 -0
- package/dataform/IField.js +1 -0
- package/devproject/EnvSettings.js +1 -1
- package/devproject/NpmModule.js +1 -1
- package/docgen/FormDefinitionTypeScriptGenerator.js +2 -0
- package/docgen/FormJsonDocumentationGenerator.js +193 -91
- package/docgen/FormMarkdownDocumentationGenerator.js +31 -2
- package/docgen/JsonSchemaGenerator.js +2 -1
- package/github/GitHubFile.js +2 -2
- package/info/AnimationResourceInfoGenerator.js +2 -2
- package/info/CooperativeAddOnItemRequirementsGenerator.js +51 -51
- package/info/CooperativeAddOnRequirementsGenerator.js +46 -39
- package/info/GeneratorRegistrations.js +11 -1
- package/info/GeometryInfoGenerator.js +3 -3
- package/info/PackInfoGenerator.js +9 -8
- package/info/SchemaItemInfoGenerator.js +5 -5
- package/info/SharingInfoGenerator.js +17 -5
- package/info/StrictPlatformInfoGenerator.js +4 -4
- package/info/TextureImageInfoGenerator.js +10 -9
- package/info/TextureInfoGenerator.js +19 -19
- package/info/TextureReferenceInfoGenerator.js +6 -6
- package/info/TypesInfoGenerator.js +8 -8
- package/info/UnknownItemGenerator.js +2 -2
- package/info/WorldDataInfoGenerator.js +6 -6
- package/info/fileGenerators/CheckNoBOMGenerator.js +46 -0
- package/info/projectGenerators/CheckPackIconsGenerator.js +83 -0
- package/info/projectGenerators/CheckWorldIconsGenerator.js +93 -0
- package/integrations/BlockbenchModel.js +271 -72
- package/local/LocalEnvironment.js +4 -4
- package/manager/BaseGameVersionManager.js +4 -4
- package/manager/BlocksCatalogManager.js +4 -4
- package/manager/EntityTypeManager.js +4 -4
- package/manager/FormatVersionManager.js +24 -24
- package/manager/ItemTypeManager.js +4 -4
- package/manager/MinEngineVersionManager.js +14 -14
- package/manager/ScriptModuleManager.js +6 -6
- package/manager/VsCodeFileManager.js +10 -10
- package/maps/app/Carto.js.map +1 -1
- package/maps/app/CartoApp.js.map +1 -1
- package/maps/app/ICartoData.js.map +1 -1
- package/maps/app/IGalleryItem.js.map +1 -1
- package/maps/app/IProjectItemData.js.map +1 -1
- package/maps/app/IProjectItemSeed.js.map +1 -1
- package/maps/app/IProjectItemVariant.js.map +1 -1
- package/maps/app/IProjectItemVariantSeed.js.map +1 -0
- package/maps/app/Project.js.map +1 -1
- package/maps/app/ProjectAutogeneration.js.map +1 -1
- package/maps/app/ProjectExporter.js.map +1 -1
- package/maps/app/ProjectItem.js.map +1 -1
- package/maps/app/ProjectItemCreateManager.js.map +1 -0
- package/maps/app/ProjectItemInference.js.map +1 -0
- package/maps/app/ProjectItemRelations.js.map +1 -1
- package/maps/app/ProjectItemUtilities.js.map +1 -1
- package/maps/app/ProjectItemVariant.js.map +1 -1
- package/maps/app/ProjectItemVariantCreateManager.js.map +1 -0
- package/maps/app/ProjectStandard.js.map +1 -1
- package/maps/app/ProjectUtilities.js.map +1 -1
- package/maps/cli/ClUtils.js.map +1 -1
- package/maps/cli/TaskWorker.js.map +1 -1
- package/maps/cli/index.js.map +1 -1
- package/maps/core/Constants.js.map +1 -1
- package/maps/core/ISimpleReference.js.map +1 -1
- package/maps/core/Utilities.js.map +1 -1
- package/maps/dataform/DataFormUtilities.js.map +1 -1
- package/maps/dataform/IField.js.map +1 -1
- package/maps/dataform/IFormDefinition.js.map +1 -1
- package/maps/devproject/EnvSettings.js.map +1 -1
- package/maps/devproject/NpmModule.js.map +1 -1
- package/maps/docgen/FormDefinitionTypeScriptGenerator.js.map +1 -1
- package/maps/docgen/FormJsonDocumentationGenerator.js.map +1 -1
- package/maps/docgen/FormMarkdownDocumentationGenerator.js.map +1 -1
- package/maps/docgen/JsonSchemaGenerator.js.map +1 -1
- package/maps/github/GitHubFile.js.map +1 -1
- package/maps/info/AnimationResourceInfoGenerator.js.map +1 -1
- package/maps/info/CooperativeAddOnItemRequirementsGenerator.js.map +1 -1
- package/maps/info/CooperativeAddOnRequirementsGenerator.js.map +1 -1
- package/maps/info/GeneratorRegistrations.js.map +1 -1
- package/maps/info/GeometryInfoGenerator.js.map +1 -1
- package/maps/info/PackInfoGenerator.js.map +1 -1
- package/maps/info/SchemaItemInfoGenerator.js.map +1 -1
- package/maps/info/SharingInfoGenerator.js.map +1 -1
- package/maps/info/StrictPlatformInfoGenerator.js.map +1 -1
- package/maps/info/TextureImageInfoGenerator.js.map +1 -1
- package/maps/info/TextureInfoGenerator.js.map +1 -1
- package/maps/info/TextureReferenceInfoGenerator.js.map +1 -1
- package/maps/info/TypesInfoGenerator.js.map +1 -1
- package/maps/info/UnknownItemGenerator.js.map +1 -1
- package/maps/info/WorldDataInfoGenerator.js.map +1 -1
- package/maps/info/fileGenerators/CheckNoBOMGenerator.js.map +1 -0
- package/maps/info/projectGenerators/CheckPackIconsGenerator.js.map +1 -0
- package/maps/info/projectGenerators/CheckWorldIconsGenerator.js.map +1 -0
- package/maps/integrations/BlockbenchModel.js.map +1 -1
- package/maps/integrations/IBlockbenchModel.js.map +1 -1
- package/maps/local/ILocalEnvironmentData.js.map +1 -1
- package/maps/local/LocalEnvironment.js.map +1 -1
- package/maps/manager/BaseGameVersionManager.js.map +1 -1
- package/maps/manager/BlocksCatalogManager.js.map +1 -1
- package/maps/manager/EntityTypeManager.js.map +1 -1
- package/maps/manager/FormatVersionManager.js.map +1 -1
- package/maps/manager/ItemTypeManager.js.map +1 -1
- package/maps/manager/MinEngineVersionManager.js.map +1 -1
- package/maps/manager/ScriptModuleManager.js.map +1 -1
- package/maps/manager/VsCodeFileManager.js.map +1 -1
- package/maps/minecraft/AnimationResourceDefinition.js.map +1 -1
- package/maps/minecraft/AttachableResourceDefinition.js.map +1 -1
- package/maps/minecraft/AudioDefinition.js.map +1 -1
- package/maps/minecraft/BehaviorManifestDefinition.js.map +1 -1
- package/maps/minecraft/BlockTypeDefinition.js.map +1 -1
- package/maps/minecraft/BlocksCatalogDefinition.js.map +1 -1
- package/maps/minecraft/Database.js.map +1 -1
- package/maps/minecraft/EntityTypeDefinition.js.map +1 -1
- package/maps/minecraft/EntityTypeResourceDefinition.js.map +1 -1
- package/maps/minecraft/FlipbookTextureCatalogDefinition.js.map +1 -1
- package/maps/minecraft/IAnimationResource.js.map +1 -1
- package/maps/minecraft/IEntityTypeResource.js.map +1 -1
- package/maps/minecraft/ItemTextureCatalogDefinition.js.map +1 -1
- package/maps/minecraft/ItemTypeDefinition.js.map +1 -1
- package/maps/minecraft/JsonUIResourceDefinition.js.map +1 -1
- package/maps/minecraft/LocManager.js.map +1 -1
- package/maps/minecraft/MCWorld.js.map +1 -1
- package/maps/minecraft/ManagedComponentGroup.js.map +1 -1
- package/maps/minecraft/ManagedPermutation.js.map +1 -1
- package/maps/minecraft/MinecraftDefinitions.js.map +1 -1
- package/maps/minecraft/MinecraftUtilities.js.map +1 -1
- package/maps/minecraft/MusicDefinitionCatalogDefinition.js.map +1 -1
- package/maps/minecraft/Pack.js.map +1 -1
- package/maps/minecraft/ParticleEffectResourceDefinition.js.map +1 -1
- package/maps/minecraft/ResourceManifestDefinition.js.map +1 -1
- package/maps/minecraft/SoundCatalogDefinition.js.map +1 -1
- package/maps/minecraft/SoundDefinitionCatalogDefinition.js.map +1 -1
- package/maps/minecraft/TerrainTextureCatalogDefinition.js.map +1 -1
- package/maps/storage/FileBase.js.map +1 -1
- package/maps/storage/FileSystemFolder.js.map +1 -1
- package/maps/storage/FolderBase.js.map +1 -1
- package/maps/storage/IFile.js.map +1 -1
- package/maps/storage/IFolder.js.map +1 -1
- package/maps/storage/ImageUtilites.js.map +1 -0
- package/maps/storage/StorageUtilities.js.map +1 -1
- package/maps/test/CommandLineTest.js.map +1 -1
- package/minecraft/AnimationResourceDefinition.js +13 -2
- package/minecraft/AttachableResourceDefinition.js +10 -10
- package/minecraft/AudioDefinition.js +2 -2
- package/minecraft/BehaviorManifestDefinition.js +6 -6
- package/minecraft/BlockTypeDefinition.js +10 -10
- package/minecraft/BlocksCatalogDefinition.js +2 -2
- package/minecraft/Database.js +38 -12
- package/minecraft/EntityTypeDefinition.js +21 -11
- package/minecraft/EntityTypeResourceDefinition.js +65 -15
- package/minecraft/FlipbookTextureCatalogDefinition.js +4 -4
- package/minecraft/ItemTextureCatalogDefinition.js +2 -2
- package/minecraft/ItemTypeDefinition.js +4 -4
- package/minecraft/JsonUIResourceDefinition.js +2 -2
- package/minecraft/LocManager.js +2 -2
- package/minecraft/MCWorld.js +2 -2
- package/minecraft/ManagedComponentGroup.js +3 -0
- package/minecraft/ManagedPermutation.js +3 -0
- package/minecraft/MinecraftDefinitions.js +23 -23
- package/minecraft/MinecraftUtilities.js +27 -0
- package/minecraft/MusicDefinitionCatalogDefinition.js +2 -2
- package/minecraft/Pack.js +15 -0
- package/minecraft/ParticleEffectResourceDefinition.js +4 -4
- package/minecraft/ResourceManifestDefinition.js +3 -3
- package/minecraft/SoundCatalogDefinition.js +4 -4
- package/minecraft/SoundDefinitionCatalogDefinition.js +4 -4
- package/minecraft/TerrainTextureCatalogDefinition.js +2 -2
- package/package.json +1 -1
- package/storage/FileBase.js +3 -0
- package/storage/FileSystemFolder.js +2 -1
- package/storage/FolderBase.js +9 -0
- package/storage/ImageUtilites.js +35 -0
- package/storage/StorageUtilities.js +52 -2
- package/test/CommandLineTest.js +141 -1
- package/maps/app/ProjectItemManager.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/minecraft/ItemTypeDefinition.ts"],"names":[],"mappings":"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","file":"../../minecraft/ItemTypeDefinition.js","sourcesContent":["// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport IFile from \"../storage/IFile\";\r\nimport Log from \"../core/Log\";\r\nimport IManagedComponentSetItem from \"./IManagedComponentSetItem\";\r\nimport IComponent from \"./IComponent\";\r\nimport { EventDispatcher, IEventHandler } from \"ste-events\";\r\nimport IItemTypeBehaviorPack from \"./IItemTypeBehaviorPack\";\r\nimport IItemTypeWrapper from \"./IItemTypeWrapper\";\r\nimport { ManagedComponent } from \"./ManagedComponent\";\r\nimport IManagedComponent from \"./IManagedComponent\";\r\nimport StorageUtilities from \"../storage/StorageUtilities\";\r\nimport Database from \"./Database\";\r\nimport MinecraftUtilities from \"./MinecraftUtilities\";\r\nimport IDefinition from \"./IDefinition\";\r\nimport Project from \"../app/Project\";\r\nimport ProjectItem from \"../app/ProjectItem\";\r\nimport { ProjectItemType } from \"../app/IProjectItemData\";\r\nimport AttachableResourceDefinition from \"./AttachableResourceDefinition\";\r\nimport TypeScriptDefinition from \"./TypeScriptDefinition\";\r\n\r\nexport default class ItemTypeDefinition implements IManagedComponentSetItem, IDefinition {\r\n public wrapper: IItemTypeWrapper | null = null;\r\n private _behaviorPackFile?: IFile;\r\n private _id?: string;\r\n private _isLoaded: boolean = false;\r\n private _managed: { [id: string]: IManagedComponent | undefined } = {};\r\n\r\n private _data?: IItemTypeBehaviorPack;\r\n\r\n private _onLoaded = new EventDispatcher<ItemTypeDefinition, ItemTypeDefinition>();\r\n\r\n private _onComponentAdded = new EventDispatcher<ItemTypeDefinition, IManagedComponent>();\r\n private _onComponentRemoved = new EventDispatcher<ItemTypeDefinition, string>();\r\n private _onComponentChanged = new EventDispatcher<ItemTypeDefinition, IManagedComponent>();\r\n\r\n public get data() {\r\n return this._data;\r\n }\r\n\r\n public get onComponentAdded() {\r\n return this._onComponentAdded.asEvent();\r\n }\r\n\r\n public get onComponentRemoved() {\r\n return this._onComponentRemoved.asEvent();\r\n }\r\n\r\n public get onComponentChanged() {\r\n return this._onComponentChanged.asEvent();\r\n }\r\n\r\n public get isLoaded() {\r\n return this._isLoaded;\r\n }\r\n\r\n public get behaviorPackFile() {\r\n return this._behaviorPackFile;\r\n }\r\n\r\n public get onLoaded() {\r\n return this._onLoaded.asEvent();\r\n }\r\n\r\n public set behaviorPackFile(newFile: IFile | undefined) {\r\n this._behaviorPackFile = newFile;\r\n }\r\n\r\n public get id() {\r\n return this._id;\r\n }\r\n\r\n public set id(newId: string | undefined) {\r\n this._id = newId;\r\n }\r\n\r\n public get shortId() {\r\n if (this._id !== undefined) {\r\n if (this._id.startsWith(\"minecraft:\")) {\r\n return this._id.substring(10, this._id.length);\r\n }\r\n\r\n return this._id;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public async getFormatVersionIsCurrent() {\r\n const fv = this.getFormatVersion();\r\n\r\n if (fv === undefined || fv.length !== 3) {\r\n return false;\r\n }\r\n\r\n return await Database.isRecentVersionFromVersionArray(fv);\r\n }\r\n\r\n public getFormatVersion(): number[] | undefined {\r\n if (!this.wrapper) {\r\n return undefined;\r\n }\r\n\r\n return MinecraftUtilities.getVersionArrayFrom(this.wrapper.format_version);\r\n }\r\n\r\n ensureComponent(id: string, defaultData?: IComponent | string | string[] | boolean | number[] | number | undefined) {\r\n const comp = this.getComponent(id);\r\n\r\n if (comp) {\r\n return comp;\r\n }\r\n\r\n return this.addComponent(id, defaultData);\r\n }\r\n\r\n getComponent(id: string) {\r\n if (!this._data || !this._data.components) {\r\n return undefined;\r\n }\r\n\r\n if (!this._managed[id]) {\r\n const comp = this._data.components[id];\r\n if (comp) {\r\n this._managed[id] = new ManagedComponent(this._data.components, id, comp);\r\n }\r\n }\r\n\r\n return this._managed[id];\r\n }\r\n\r\n notifyComponentUpdated(id: string) {\r\n const component = this.getComponent(id);\r\n\r\n if (component === undefined) {\r\n Log.unexpectedUndefined(\"ITNCU\");\r\n } else {\r\n this._onComponentChanged.dispatch(this, component);\r\n }\r\n }\r\n\r\n getAllComponents(): IManagedComponent[] {\r\n return this.getComponents();\r\n }\r\n\r\n getCustomComponentIds() {\r\n let customComponentIds: string[] = [];\r\n const customComponent = this.getComponent(\"minecraft:custom_components\");\r\n\r\n if (customComponent) {\r\n let compData = customComponent.getData();\r\n\r\n if (compData && Array.isArray(compData)) {\r\n for (const str of compData) {\r\n if (typeof str === \"string\") {\r\n customComponentIds.push(str);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return customComponentIds;\r\n }\r\n\r\n getComponents(): IManagedComponent[] {\r\n const componentSet: IManagedComponent[] = [];\r\n\r\n if (this._data !== undefined) {\r\n for (const componentName in this._data.components) {\r\n const component = this.getComponent(componentName);\r\n\r\n if (component !== undefined) {\r\n componentSet.push(component);\r\n }\r\n }\r\n }\r\n\r\n return componentSet;\r\n }\r\n\r\n async addChildItems(project: Project, item: ProjectItem) {\r\n const itemsCopy = project.getItemsCopy();\r\n\r\n let customComponentIds: string[] = this.getCustomComponentIds();\r\n for (const candItem of itemsCopy) {\r\n if (candItem.itemType === ProjectItemType.ts) {\r\n await candItem.ensureStorage();\r\n\r\n if (candItem.defaultFile) {\r\n await candItem.load();\r\n\r\n const tsd = await TypeScriptDefinition.ensureOnFile(candItem.defaultFile);\r\n\r\n if (tsd && tsd.data && customComponentIds) {\r\n let doAddTs = false;\r\n\r\n for (const customCompId of customComponentIds) {\r\n if (tsd.data.indexOf(customCompId) >= 0) {\r\n doAddTs = true;\r\n break;\r\n }\r\n }\r\n\r\n if (doAddTs) {\r\n item.addChildItem(candItem);\r\n }\r\n }\r\n }\r\n } else if (candItem.itemType === ProjectItemType.attachableResourceJson) {\r\n await candItem.ensureStorage();\r\n\r\n if (candItem.defaultFile) {\r\n const ard = await AttachableResourceDefinition.ensureOnFile(candItem.defaultFile);\r\n\r\n if (ard) {\r\n const id = ard.id;\r\n\r\n if (id === this.id) {\r\n item.addChildItem(candItem);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setBehaviorPackFormatVersion(versionStr: string) {\r\n this._ensureBehaviorPackDataInitialized();\r\n\r\n if (this.wrapper) {\r\n this.wrapper.format_version = versionStr;\r\n }\r\n }\r\n\r\n addComponent(\r\n id: string,\r\n componentOrData: ManagedComponent | IComponent | string | string[] | boolean | number[] | number | undefined\r\n ) {\r\n this._ensureBehaviorPackDataInitialized();\r\n\r\n const bpData = this._data as IItemTypeBehaviorPack;\r\n\r\n const mc =\r\n componentOrData instanceof ManagedComponent\r\n ? componentOrData\r\n : new ManagedComponent(bpData.components, id, componentOrData);\r\n\r\n bpData.components[id] = mc.getData();\r\n this._managed[id] = mc;\r\n\r\n this._onComponentAdded.dispatch(this, mc);\r\n\r\n return mc;\r\n }\r\n\r\n removeComponent(id: string) {\r\n if (this._data === undefined) {\r\n return;\r\n }\r\n\r\n const newBehaviorPacks: {\r\n [name: string]: IComponent | string | string[] | boolean | number[] | number | undefined;\r\n } = {};\r\n const newManagedComponents: { [name: string]: IManagedComponent | undefined } = {};\r\n\r\n for (const name in this._data.components) {\r\n if (name !== id) {\r\n const component = this._data.components[name];\r\n\r\n newBehaviorPacks[name] = component;\r\n }\r\n }\r\n\r\n for (const name in this._managed) {\r\n if (name !== id) {\r\n newManagedComponents[name] = this._managed[name];\r\n }\r\n }\r\n\r\n this._data.components = newBehaviorPacks;\r\n this._managed = newManagedComponents;\r\n }\r\n\r\n _ensureBehaviorPackDataInitialized() {\r\n if (this._data === undefined) {\r\n this._data = {\r\n description: {\r\n identifier: \"unknown\",\r\n },\r\n components: {},\r\n events: {},\r\n };\r\n }\r\n }\r\n\r\n static async ensureOnFile(file: IFile, loadHandler?: IEventHandler<ItemTypeDefinition, ItemTypeDefinition>) {\r\n let itt: ItemTypeDefinition | undefined;\r\n\r\n if (file.manager === undefined) {\r\n itt = new ItemTypeDefinition();\r\n\r\n itt.behaviorPackFile = file;\r\n\r\n file.manager = itt;\r\n }\r\n\r\n if (file.manager !== undefined && file.manager instanceof ItemTypeDefinition) {\r\n itt = file.manager as ItemTypeDefinition;\r\n\r\n if (!itt.isLoaded && loadHandler) {\r\n itt.onLoaded.subscribe(loadHandler);\r\n }\r\n\r\n await itt.load();\r\n }\r\n\r\n return itt;\r\n }\r\n\r\n static isVisualComponent(value: string) {\r\n if (\r\n value === \"minecraft:icon\" ||\r\n value === \"minecraft:display_name\" ||\r\n value === \"minecraft:glint\" ||\r\n value === \"minecraft:hover_text_color\"\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n persist() {\r\n if (this._behaviorPackFile === undefined) {\r\n return;\r\n }\r\n\r\n const bpString = JSON.stringify(this.wrapper, null, 2);\r\n\r\n this._behaviorPackFile.setContent(bpString);\r\n }\r\n\r\n async load() {\r\n if (this._behaviorPackFile === undefined || this._isLoaded) {\r\n return;\r\n }\r\n\r\n await this._behaviorPackFile.loadContent();\r\n\r\n if (this._behaviorPackFile.content === null || this._behaviorPackFile.content instanceof Uint8Array) {\r\n return;\r\n }\r\n\r\n this.wrapper = StorageUtilities.getJsonObject(this._behaviorPackFile);\r\n\r\n if (this.wrapper) {\r\n const item = (this.wrapper as any)[\"minecraft:item\"];\r\n\r\n if (item && item.description) {\r\n this.id = item.description.identifier;\r\n }\r\n\r\n this._data = item;\r\n }\r\n\r\n this._isLoaded = true;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/minecraft/ItemTypeDefinition.ts"],"names":[],"mappings":"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","file":"../../minecraft/ItemTypeDefinition.js","sourcesContent":["// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport IFile from \"../storage/IFile\";\r\nimport Log from \"../core/Log\";\r\nimport IManagedComponentSetItem from \"./IManagedComponentSetItem\";\r\nimport IComponent from \"./IComponent\";\r\nimport { EventDispatcher, IEventHandler } from \"ste-events\";\r\nimport IItemTypeBehaviorPack from \"./IItemTypeBehaviorPack\";\r\nimport IItemTypeWrapper from \"./IItemTypeWrapper\";\r\nimport { ManagedComponent } from \"./ManagedComponent\";\r\nimport IManagedComponent from \"./IManagedComponent\";\r\nimport StorageUtilities from \"../storage/StorageUtilities\";\r\nimport Database from \"./Database\";\r\nimport MinecraftUtilities from \"./MinecraftUtilities\";\r\nimport IDefinition from \"./IDefinition\";\r\nimport Project from \"../app/Project\";\r\nimport ProjectItem from \"../app/ProjectItem\";\r\nimport { ProjectItemType } from \"../app/IProjectItemData\";\r\nimport AttachableResourceDefinition from \"./AttachableResourceDefinition\";\r\nimport TypeScriptDefinition from \"./TypeScriptDefinition\";\r\n\r\nexport default class ItemTypeDefinition implements IManagedComponentSetItem, IDefinition {\r\n public wrapper: IItemTypeWrapper | null = null;\r\n private _behaviorPackFile?: IFile;\r\n private _id?: string;\r\n private _isLoaded: boolean = false;\r\n private _managed: { [id: string]: IManagedComponent | undefined } = {};\r\n\r\n private _data?: IItemTypeBehaviorPack;\r\n\r\n private _onLoaded = new EventDispatcher<ItemTypeDefinition, ItemTypeDefinition>();\r\n\r\n private _onComponentAdded = new EventDispatcher<ItemTypeDefinition, IManagedComponent>();\r\n private _onComponentRemoved = new EventDispatcher<ItemTypeDefinition, string>();\r\n private _onComponentChanged = new EventDispatcher<ItemTypeDefinition, IManagedComponent>();\r\n\r\n public get data() {\r\n return this._data;\r\n }\r\n\r\n public get onComponentAdded() {\r\n return this._onComponentAdded.asEvent();\r\n }\r\n\r\n public get onComponentRemoved() {\r\n return this._onComponentRemoved.asEvent();\r\n }\r\n\r\n public get onComponentChanged() {\r\n return this._onComponentChanged.asEvent();\r\n }\r\n\r\n public get isLoaded() {\r\n return this._isLoaded;\r\n }\r\n\r\n public get behaviorPackFile() {\r\n return this._behaviorPackFile;\r\n }\r\n\r\n public get onLoaded() {\r\n return this._onLoaded.asEvent();\r\n }\r\n\r\n public set behaviorPackFile(newFile: IFile | undefined) {\r\n this._behaviorPackFile = newFile;\r\n }\r\n\r\n public get id() {\r\n return this._id;\r\n }\r\n\r\n public set id(newId: string | undefined) {\r\n this._id = newId;\r\n }\r\n\r\n public get shortId() {\r\n if (this._id !== undefined) {\r\n if (this._id.startsWith(\"minecraft:\")) {\r\n return this._id.substring(10, this._id.length);\r\n }\r\n\r\n return this._id;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n public async getFormatVersionIsCurrent() {\r\n const fv = this.getFormatVersion();\r\n\r\n if (fv === undefined || fv.length !== 3) {\r\n return false;\r\n }\r\n\r\n return await Database.isRecentVersionFromVersionArray(fv);\r\n }\r\n\r\n public getFormatVersion(): number[] | undefined {\r\n if (!this.wrapper) {\r\n return undefined;\r\n }\r\n\r\n return MinecraftUtilities.getVersionArrayFrom(this.wrapper.format_version);\r\n }\r\n\r\n ensureComponent(id: string, defaultData?: IComponent | string | string[] | boolean | number[] | number | undefined) {\r\n const comp = this.getComponent(id);\r\n\r\n if (comp) {\r\n return comp;\r\n }\r\n\r\n return this.addComponent(id, defaultData);\r\n }\r\n\r\n getComponent(id: string) {\r\n if (!this._data || !this._data.components) {\r\n return undefined;\r\n }\r\n\r\n if (!this._managed[id]) {\r\n const comp = this._data.components[id];\r\n if (comp) {\r\n this._managed[id] = new ManagedComponent(this._data.components, id, comp);\r\n }\r\n }\r\n\r\n return this._managed[id];\r\n }\r\n\r\n notifyComponentUpdated(id: string) {\r\n const component = this.getComponent(id);\r\n\r\n if (component === undefined) {\r\n Log.unexpectedUndefined(\"ITNCU\");\r\n } else {\r\n this._onComponentChanged.dispatch(this, component);\r\n }\r\n }\r\n\r\n getAllComponents(): IManagedComponent[] {\r\n return this.getComponents();\r\n }\r\n\r\n getCustomComponentIds() {\r\n let customComponentIds: string[] = [];\r\n const customComponent = this.getComponent(\"minecraft:custom_components\");\r\n\r\n if (customComponent) {\r\n let compData = customComponent.getData();\r\n\r\n if (compData && Array.isArray(compData)) {\r\n for (const str of compData) {\r\n if (typeof str === \"string\") {\r\n customComponentIds.push(str);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return customComponentIds;\r\n }\r\n\r\n getComponents(): IManagedComponent[] {\r\n const componentSet: IManagedComponent[] = [];\r\n\r\n if (this._data !== undefined) {\r\n for (const componentName in this._data.components) {\r\n const component = this.getComponent(componentName);\r\n\r\n if (component !== undefined) {\r\n componentSet.push(component);\r\n }\r\n }\r\n }\r\n\r\n return componentSet;\r\n }\r\n\r\n async addChildItems(project: Project, item: ProjectItem) {\r\n const itemsCopy = project.getItemsCopy();\r\n\r\n let customComponentIds: string[] = this.getCustomComponentIds();\r\n for (const candItem of itemsCopy) {\r\n if (candItem.itemType === ProjectItemType.ts) {\r\n await candItem.ensureStorage();\r\n\r\n if (candItem.primaryFile) {\r\n await candItem.load();\r\n\r\n const tsd = await TypeScriptDefinition.ensureOnFile(candItem.primaryFile);\r\n\r\n if (tsd && tsd.data && customComponentIds) {\r\n let doAddTs = false;\r\n\r\n for (const customCompId of customComponentIds) {\r\n if (tsd.data.indexOf(customCompId) >= 0) {\r\n doAddTs = true;\r\n break;\r\n }\r\n }\r\n\r\n if (doAddTs) {\r\n item.addChildItem(candItem);\r\n }\r\n }\r\n }\r\n } else if (candItem.itemType === ProjectItemType.attachableResourceJson) {\r\n await candItem.ensureStorage();\r\n\r\n if (candItem.primaryFile) {\r\n const ard = await AttachableResourceDefinition.ensureOnFile(candItem.primaryFile);\r\n\r\n if (ard) {\r\n const id = ard.id;\r\n\r\n if (id === this.id) {\r\n item.addChildItem(candItem);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setBehaviorPackFormatVersion(versionStr: string) {\r\n this._ensureBehaviorPackDataInitialized();\r\n\r\n if (this.wrapper) {\r\n this.wrapper.format_version = versionStr;\r\n }\r\n }\r\n\r\n addComponent(\r\n id: string,\r\n componentOrData: ManagedComponent | IComponent | string | string[] | boolean | number[] | number | undefined\r\n ) {\r\n this._ensureBehaviorPackDataInitialized();\r\n\r\n const bpData = this._data as IItemTypeBehaviorPack;\r\n\r\n const mc =\r\n componentOrData instanceof ManagedComponent\r\n ? componentOrData\r\n : new ManagedComponent(bpData.components, id, componentOrData);\r\n\r\n bpData.components[id] = mc.getData();\r\n this._managed[id] = mc;\r\n\r\n this._onComponentAdded.dispatch(this, mc);\r\n\r\n return mc;\r\n }\r\n\r\n removeComponent(id: string) {\r\n if (this._data === undefined) {\r\n return;\r\n }\r\n\r\n const newBehaviorPacks: {\r\n [name: string]: IComponent | string | string[] | boolean | number[] | number | undefined;\r\n } = {};\r\n const newManagedComponents: { [name: string]: IManagedComponent | undefined } = {};\r\n\r\n for (const name in this._data.components) {\r\n if (name !== id) {\r\n const component = this._data.components[name];\r\n\r\n newBehaviorPacks[name] = component;\r\n }\r\n }\r\n\r\n for (const name in this._managed) {\r\n if (name !== id) {\r\n newManagedComponents[name] = this._managed[name];\r\n }\r\n }\r\n\r\n this._data.components = newBehaviorPacks;\r\n this._managed = newManagedComponents;\r\n }\r\n\r\n _ensureBehaviorPackDataInitialized() {\r\n if (this._data === undefined) {\r\n this._data = {\r\n description: {\r\n identifier: \"unknown\",\r\n },\r\n components: {},\r\n events: {},\r\n };\r\n }\r\n }\r\n\r\n static async ensureOnFile(file: IFile, loadHandler?: IEventHandler<ItemTypeDefinition, ItemTypeDefinition>) {\r\n let itt: ItemTypeDefinition | undefined;\r\n\r\n if (file.manager === undefined) {\r\n itt = new ItemTypeDefinition();\r\n\r\n itt.behaviorPackFile = file;\r\n\r\n file.manager = itt;\r\n }\r\n\r\n if (file.manager !== undefined && file.manager instanceof ItemTypeDefinition) {\r\n itt = file.manager as ItemTypeDefinition;\r\n\r\n if (!itt.isLoaded && loadHandler) {\r\n itt.onLoaded.subscribe(loadHandler);\r\n }\r\n\r\n await itt.load();\r\n }\r\n\r\n return itt;\r\n }\r\n\r\n static isVisualComponent(value: string) {\r\n if (\r\n value === \"minecraft:icon\" ||\r\n value === \"minecraft:display_name\" ||\r\n value === \"minecraft:glint\" ||\r\n value === \"minecraft:hover_text_color\"\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n persist() {\r\n if (this._behaviorPackFile === undefined) {\r\n return;\r\n }\r\n\r\n const bpString = JSON.stringify(this.wrapper, null, 2);\r\n\r\n this._behaviorPackFile.setContent(bpString);\r\n }\r\n\r\n async load() {\r\n if (this._behaviorPackFile === undefined || this._isLoaded) {\r\n return;\r\n }\r\n\r\n await this._behaviorPackFile.loadContent();\r\n\r\n if (this._behaviorPackFile.content === null || this._behaviorPackFile.content instanceof Uint8Array) {\r\n return;\r\n }\r\n\r\n this.wrapper = StorageUtilities.getJsonObject(this._behaviorPackFile);\r\n\r\n if (this.wrapper) {\r\n const item = (this.wrapper as any)[\"minecraft:item\"];\r\n\r\n if (item && item.description) {\r\n this.id = item.description.identifier;\r\n }\r\n\r\n this._data = item;\r\n }\r\n\r\n this._isLoaded = true;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/minecraft/JsonUIResourceDefinition.ts"],"names":[],"mappings":"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","file":"../../minecraft/JsonUIResourceDefinition.js","sourcesContent":["// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport IFile from \"../storage/IFile\";\r\nimport Log from \"../core/Log\";\r\nimport { EventDispatcher, IEventHandler } from \"ste-events\";\r\nimport StorageUtilities from \"../storage/StorageUtilities\";\r\nimport { IJsonUIControl, IJsonUIScreen } from \"./IJsonUIScreen\";\r\nimport Project from \"../app/Project\";\r\nimport ProjectItem from \"../app/ProjectItem\";\r\nimport IFolder from \"../storage/IFolder\";\r\nimport { ProjectItemType } from \"../app/IProjectItemData\";\r\nimport Utilities from \"../core/Utilities\";\r\nimport Database from \"./Database\";\r\nimport TextureDefinition from \"./TextureDefinition\";\r\n\r\nexport default class JsonUIResourceDefinition {\r\n public jsonUIScreen?: IJsonUIScreen;\r\n private _file?: IFile;\r\n private _isLoaded: boolean = false;\r\n\r\n private _onLoaded = new EventDispatcher<JsonUIResourceDefinition, JsonUIResourceDefinition>();\r\n\r\n public get isLoaded() {\r\n return this._isLoaded;\r\n }\r\n\r\n public get file() {\r\n return this._file;\r\n }\r\n public get onLoaded() {\r\n return this._onLoaded.asEvent();\r\n }\r\n\r\n public set file(newFile: IFile | undefined) {\r\n this._file = newFile;\r\n }\r\n\r\n public get namespaceId() {\r\n if (!this.jsonUIScreen || !this.jsonUIScreen[\"namespace\"]) {\r\n return undefined;\r\n }\r\n\r\n return this.jsonUIScreen[\"namespace\"];\r\n }\r\n\r\n static async ensureOnFile(\r\n file: IFile,\r\n loadHandler?: IEventHandler<JsonUIResourceDefinition, JsonUIResourceDefinition>\r\n ) {\r\n let et: JsonUIResourceDefinition | undefined;\r\n\r\n if (file.manager === undefined) {\r\n et = new JsonUIResourceDefinition();\r\n\r\n et.file = file;\r\n\r\n file.manager = et;\r\n }\r\n\r\n if (file.manager !== undefined && file.manager instanceof JsonUIResourceDefinition) {\r\n et = file.manager as JsonUIResourceDefinition;\r\n\r\n if (!et.isLoaded && loadHandler) {\r\n et.onLoaded.subscribe(loadHandler);\r\n }\r\n\r\n await et.load();\r\n }\r\n\r\n return et;\r\n }\r\n\r\n persist() {\r\n if (this._file === undefined) {\r\n return;\r\n }\r\n\r\n const defString = JSON.stringify(this.jsonUIScreen, null, 2);\r\n\r\n this._file.setContent(defString);\r\n }\r\n\r\n getControlRefs() {\r\n const namespaceId = this.namespaceId;\r\n const jsonUITextureRefs: string[] = [];\r\n\r\n if (namespaceId && this.jsonUIScreen) {\r\n for (const jsonControlId in this.jsonUIScreen) {\r\n const jsonControl = this.jsonUIScreen[jsonControlId] as IJsonUIControl;\r\n\r\n if (jsonControlId !== \"namespace\" && jsonControl && jsonControl.texture) {\r\n if (!jsonUITextureRefs.includes(jsonControlId)) {\r\n jsonUITextureRefs.push(jsonControlId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return jsonUITextureRefs;\r\n }\r\n\r\n getTexturePaths() {\r\n const texturePaths: string[] = [];\r\n\r\n if (this.jsonUIScreen) {\r\n this.addTexturesFromArrayOfKeyPaths([this.jsonUIScreen], texturePaths);\r\n }\r\n\r\n return texturePaths;\r\n }\r\n\r\n addTexturesFromArrayOfKeyPaths(controlSets: { [name: string]: IJsonUIControl | string }[], texturePaths: string[]) {\r\n for (const controlSet of controlSets) {\r\n for (const key in controlSet) {\r\n const control = controlSet[key];\r\n\r\n if (key !== \"namespace\" && key !== \"controls\") {\r\n if (typeof control === \"string\") {\r\n texturePaths.push(control);\r\n } else {\r\n if (control.texture) {\r\n const tex = TextureDefinition.canonicalizeTexturePath(control.texture);\r\n\r\n if (tex) {\r\n texturePaths.push(tex);\r\n }\r\n }\r\n if (control.controls) {\r\n this.addTexturesFromArrayOfKeyPaths(control.controls, texturePaths);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async load() {\r\n if (this._isLoaded) {\r\n return;\r\n }\r\n\r\n if (this._file === undefined) {\r\n Log.unexpectedUndefined(\"PERPF\");\r\n return;\r\n }\r\n\r\n await this._file.loadContent();\r\n\r\n if (!this._file.content || this._file.content instanceof Uint8Array) {\r\n return;\r\n }\r\n\r\n let data: any = {};\r\n\r\n let result = StorageUtilities.getJsonObject(this._file);\r\n\r\n if (result) {\r\n data = result;\r\n }\r\n\r\n this.jsonUIScreen = data;\r\n\r\n this._isLoaded = true;\r\n\r\n this._onLoaded.dispatch(this, this);\r\n }\r\n\r\n getPackRootFolder() {\r\n let packRootFolder = undefined;\r\n if (this.file && this.file.parentFolder) {\r\n let parentFolder = this.file.parentFolder;\r\n\r\n packRootFolder = StorageUtilities.getParentOfParentFolderNamed(\"ui\", parentFolder);\r\n }\r\n\r\n return packRootFolder;\r\n }\r\n\r\n getRelativePath(file: IFile, packRootFolder: IFolder) {\r\n let relativePath = file.getFolderRelativePath(packRootFolder);\r\n\r\n if (relativePath) {\r\n const lastPeriod = relativePath?.lastIndexOf(\".\");\r\n if (lastPeriod >= 0) {\r\n relativePath = relativePath?.substring(0, lastPeriod).toLowerCase();\r\n }\r\n\r\n relativePath = StorageUtilities.ensureNotStartsWithDelimiter(relativePath);\r\n }\r\n\r\n return relativePath;\r\n }\r\n\r\n async addChildItems(project: Project, item: ProjectItem) {\r\n const itemsCopy = project.getItemsCopy();\r\n\r\n let packRootFolder = this.getPackRootFolder();\r\n\r\n let textureList = this.getTexturePaths();\r\n\r\n if (textureList.length > 0) {\r\n for (const candItem of itemsCopy) {\r\n if (\r\n (candItem.itemType === ProjectItemType.texture || candItem.itemType === ProjectItemType.uiTexture) &&\r\n packRootFolder &&\r\n textureList\r\n ) {\r\n await candItem.ensureStorage();\r\n\r\n if (candItem.defaultFile) {\r\n let relativePath = TextureDefinition.canonicalizeTexturePath(\r\n this.getRelativePath(candItem.defaultFile, packRootFolder)\r\n );\r\n\r\n if (relativePath) {\r\n if (textureList && textureList.includes(relativePath)) {\r\n item.addChildItem(candItem);\r\n\r\n textureList = Utilities.removeItemInArray(relativePath, textureList);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (textureList) {\r\n for (const texturePath of textureList) {\r\n if (!texturePath.startsWith(\"$\")) {\r\n const isVanilla = await Database.isVanillaToken(texturePath);\r\n item.addUnfulfilledRelationship(texturePath, ProjectItemType.texture, isVanilla);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/minecraft/JsonUIResourceDefinition.ts"],"names":[],"mappings":"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","file":"../../minecraft/JsonUIResourceDefinition.js","sourcesContent":["// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport IFile from \"../storage/IFile\";\r\nimport Log from \"../core/Log\";\r\nimport { EventDispatcher, IEventHandler } from \"ste-events\";\r\nimport StorageUtilities from \"../storage/StorageUtilities\";\r\nimport { IJsonUIControl, IJsonUIScreen } from \"./IJsonUIScreen\";\r\nimport Project from \"../app/Project\";\r\nimport ProjectItem from \"../app/ProjectItem\";\r\nimport IFolder from \"../storage/IFolder\";\r\nimport { ProjectItemType } from \"../app/IProjectItemData\";\r\nimport Utilities from \"../core/Utilities\";\r\nimport Database from \"./Database\";\r\nimport TextureDefinition from \"./TextureDefinition\";\r\n\r\nexport default class JsonUIResourceDefinition {\r\n public jsonUIScreen?: IJsonUIScreen;\r\n private _file?: IFile;\r\n private _isLoaded: boolean = false;\r\n\r\n private _onLoaded = new EventDispatcher<JsonUIResourceDefinition, JsonUIResourceDefinition>();\r\n\r\n public get isLoaded() {\r\n return this._isLoaded;\r\n }\r\n\r\n public get file() {\r\n return this._file;\r\n }\r\n public get onLoaded() {\r\n return this._onLoaded.asEvent();\r\n }\r\n\r\n public set file(newFile: IFile | undefined) {\r\n this._file = newFile;\r\n }\r\n\r\n public get namespaceId() {\r\n if (!this.jsonUIScreen || !this.jsonUIScreen[\"namespace\"]) {\r\n return undefined;\r\n }\r\n\r\n return this.jsonUIScreen[\"namespace\"];\r\n }\r\n\r\n static async ensureOnFile(\r\n file: IFile,\r\n loadHandler?: IEventHandler<JsonUIResourceDefinition, JsonUIResourceDefinition>\r\n ) {\r\n let et: JsonUIResourceDefinition | undefined;\r\n\r\n if (file.manager === undefined) {\r\n et = new JsonUIResourceDefinition();\r\n\r\n et.file = file;\r\n\r\n file.manager = et;\r\n }\r\n\r\n if (file.manager !== undefined && file.manager instanceof JsonUIResourceDefinition) {\r\n et = file.manager as JsonUIResourceDefinition;\r\n\r\n if (!et.isLoaded && loadHandler) {\r\n et.onLoaded.subscribe(loadHandler);\r\n }\r\n\r\n await et.load();\r\n }\r\n\r\n return et;\r\n }\r\n\r\n persist() {\r\n if (this._file === undefined) {\r\n return;\r\n }\r\n\r\n const defString = JSON.stringify(this.jsonUIScreen, null, 2);\r\n\r\n this._file.setContent(defString);\r\n }\r\n\r\n getControlRefs() {\r\n const namespaceId = this.namespaceId;\r\n const jsonUITextureRefs: string[] = [];\r\n\r\n if (namespaceId && this.jsonUIScreen) {\r\n for (const jsonControlId in this.jsonUIScreen) {\r\n const jsonControl = this.jsonUIScreen[jsonControlId] as IJsonUIControl;\r\n\r\n if (jsonControlId !== \"namespace\" && jsonControl && jsonControl.texture) {\r\n if (!jsonUITextureRefs.includes(jsonControlId)) {\r\n jsonUITextureRefs.push(jsonControlId);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return jsonUITextureRefs;\r\n }\r\n\r\n getTexturePaths() {\r\n const texturePaths: string[] = [];\r\n\r\n if (this.jsonUIScreen) {\r\n this.addTexturesFromArrayOfKeyPaths([this.jsonUIScreen], texturePaths);\r\n }\r\n\r\n return texturePaths;\r\n }\r\n\r\n addTexturesFromArrayOfKeyPaths(controlSets: { [name: string]: IJsonUIControl | string }[], texturePaths: string[]) {\r\n for (const controlSet of controlSets) {\r\n for (const key in controlSet) {\r\n const control = controlSet[key];\r\n\r\n if (key !== \"namespace\" && key !== \"controls\") {\r\n if (typeof control === \"string\") {\r\n texturePaths.push(control);\r\n } else {\r\n if (control.texture) {\r\n const tex = TextureDefinition.canonicalizeTexturePath(control.texture);\r\n\r\n if (tex) {\r\n texturePaths.push(tex);\r\n }\r\n }\r\n if (control.controls) {\r\n this.addTexturesFromArrayOfKeyPaths(control.controls, texturePaths);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async load() {\r\n if (this._isLoaded) {\r\n return;\r\n }\r\n\r\n if (this._file === undefined) {\r\n Log.unexpectedUndefined(\"PERPF\");\r\n return;\r\n }\r\n\r\n await this._file.loadContent();\r\n\r\n if (!this._file.content || this._file.content instanceof Uint8Array) {\r\n return;\r\n }\r\n\r\n let data: any = {};\r\n\r\n let result = StorageUtilities.getJsonObject(this._file);\r\n\r\n if (result) {\r\n data = result;\r\n }\r\n\r\n this.jsonUIScreen = data;\r\n\r\n this._isLoaded = true;\r\n\r\n this._onLoaded.dispatch(this, this);\r\n }\r\n\r\n getPackRootFolder() {\r\n let packRootFolder = undefined;\r\n if (this.file && this.file.parentFolder) {\r\n let parentFolder = this.file.parentFolder;\r\n\r\n packRootFolder = StorageUtilities.getParentOfParentFolderNamed(\"ui\", parentFolder);\r\n }\r\n\r\n return packRootFolder;\r\n }\r\n\r\n getRelativePath(file: IFile, packRootFolder: IFolder) {\r\n let relativePath = file.getFolderRelativePath(packRootFolder);\r\n\r\n if (relativePath) {\r\n const lastPeriod = relativePath?.lastIndexOf(\".\");\r\n if (lastPeriod >= 0) {\r\n relativePath = relativePath?.substring(0, lastPeriod).toLowerCase();\r\n }\r\n\r\n relativePath = StorageUtilities.ensureNotStartsWithDelimiter(relativePath);\r\n }\r\n\r\n return relativePath;\r\n }\r\n\r\n async addChildItems(project: Project, item: ProjectItem) {\r\n const itemsCopy = project.getItemsCopy();\r\n\r\n let packRootFolder = this.getPackRootFolder();\r\n\r\n let textureList = this.getTexturePaths();\r\n\r\n if (textureList.length > 0) {\r\n for (const candItem of itemsCopy) {\r\n if (\r\n (candItem.itemType === ProjectItemType.texture || candItem.itemType === ProjectItemType.uiTexture) &&\r\n packRootFolder &&\r\n textureList\r\n ) {\r\n await candItem.ensureStorage();\r\n\r\n if (candItem.primaryFile) {\r\n let relativePath = TextureDefinition.canonicalizeTexturePath(\r\n this.getRelativePath(candItem.primaryFile, packRootFolder)\r\n );\r\n\r\n if (relativePath) {\r\n if (textureList && textureList.includes(relativePath)) {\r\n item.addChildItem(candItem);\r\n\r\n textureList = Utilities.removeItemInArray(relativePath, textureList);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (textureList) {\r\n for (const texturePath of textureList) {\r\n if (!texturePath.startsWith(\"$\")) {\r\n const isVanilla = await Database.isVanillaToken(texturePath);\r\n item.addUnfulfilledRelationship(texturePath, ProjectItemType.texture, isVanilla);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/minecraft/LocManager.ts"],"names":[],"mappings":"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","file":"../../minecraft/LocManager.js","sourcesContent":["// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { ProjectItemType } from \"../app/IProjectItemData\";\r\nimport Project from \"../app/Project\";\r\nimport Lang from \"./Lang\";\r\nimport LocToken from \"./LocToken\";\r\n\r\nexport default class LocManager {\r\n private _project: Project;\r\n private _isLoaded: boolean;\r\n\r\n public tokens: { [name: string]: { [locale: string]: { [packContainer: string]: LocToken } } } = {};\r\n\r\n constructor(project: Project) {\r\n this._project = project;\r\n this._isLoaded = false;\r\n }\r\n\r\n async getTokenValue(tokenName: string) {\r\n if (!this._isLoaded) {\r\n await this.load();\r\n }\r\n\r\n return this.getTokenValueOrDefault(tokenName);\r\n }\r\n\r\n getExpandedValue(tokenName: string): string {\r\n if (!this._isLoaded) {\r\n return tokenName;\r\n }\r\n\r\n const tok = this.getToken(tokenName);\r\n\r\n if (!tok) {\r\n return tokenName;\r\n }\r\n\r\n return tok.value + \" - (\" + tokenName + \")\";\r\n }\r\n\r\n getTokenValueOrDefault(tokenName: string): string {\r\n if (!this._isLoaded) {\r\n return tokenName;\r\n }\r\n\r\n const tok = this.getToken(tokenName);\r\n\r\n if (!tok) {\r\n return tokenName;\r\n }\r\n\r\n return tok.value;\r\n }\r\n\r\n getToken(tokenName: string, locale?: string, packContainer?: string): LocToken | undefined {\r\n const loc = this.tokens[tokenName];\r\n\r\n if (loc) {\r\n if (!locale) {\r\n locale = \"en_US\";\r\n }\r\n\r\n const tokenSetByLocale = loc[locale];\r\n\r\n if (tokenSetByLocale) {\r\n if (packContainer) {\r\n return tokenSetByLocale[packContainer];\r\n }\r\n\r\n // return the first available token\r\n for (const containerName in tokenSetByLocale) {\r\n return tokenSetByLocale[containerName];\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n async load(force?: boolean) {\r\n if (this._isLoaded && !force) {\r\n return;\r\n }\r\n\r\n await this._project.ensureLoadedProjectFolder();\r\n\r\n this.tokens = {};\r\n\r\n const itemsCopy = this._project.getItemsCopy();\r\n\r\n for (const pi of itemsCopy) {\r\n if (pi.itemType === ProjectItemType.lang) {\r\n await pi.ensureFileStorage();\r\n\r\n if (pi.
|
|
1
|
+
{"version":3,"sources":["../../../src/minecraft/LocManager.ts"],"names":[],"mappings":"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","file":"../../minecraft/LocManager.js","sourcesContent":["// Copyright (c) Microsoft Corporation.\r\n// Licensed under the MIT License.\r\n\r\nimport { ProjectItemType } from \"../app/IProjectItemData\";\r\nimport Project from \"../app/Project\";\r\nimport Lang from \"./Lang\";\r\nimport LocToken from \"./LocToken\";\r\n\r\nexport default class LocManager {\r\n private _project: Project;\r\n private _isLoaded: boolean;\r\n\r\n public tokens: { [name: string]: { [locale: string]: { [packContainer: string]: LocToken } } } = {};\r\n\r\n constructor(project: Project) {\r\n this._project = project;\r\n this._isLoaded = false;\r\n }\r\n\r\n async getTokenValue(tokenName: string) {\r\n if (!this._isLoaded) {\r\n await this.load();\r\n }\r\n\r\n return this.getTokenValueOrDefault(tokenName);\r\n }\r\n\r\n getExpandedValue(tokenName: string): string {\r\n if (!this._isLoaded) {\r\n return tokenName;\r\n }\r\n\r\n const tok = this.getToken(tokenName);\r\n\r\n if (!tok) {\r\n return tokenName;\r\n }\r\n\r\n return tok.value + \" - (\" + tokenName + \")\";\r\n }\r\n\r\n getTokenValueOrDefault(tokenName: string): string {\r\n if (!this._isLoaded) {\r\n return tokenName;\r\n }\r\n\r\n const tok = this.getToken(tokenName);\r\n\r\n if (!tok) {\r\n return tokenName;\r\n }\r\n\r\n return tok.value;\r\n }\r\n\r\n getToken(tokenName: string, locale?: string, packContainer?: string): LocToken | undefined {\r\n const loc = this.tokens[tokenName];\r\n\r\n if (loc) {\r\n if (!locale) {\r\n locale = \"en_US\";\r\n }\r\n\r\n const tokenSetByLocale = loc[locale];\r\n\r\n if (tokenSetByLocale) {\r\n if (packContainer) {\r\n return tokenSetByLocale[packContainer];\r\n }\r\n\r\n // return the first available token\r\n for (const containerName in tokenSetByLocale) {\r\n return tokenSetByLocale[containerName];\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n async load(force?: boolean) {\r\n if (this._isLoaded && !force) {\r\n return;\r\n }\r\n\r\n await this._project.ensureLoadedProjectFolder();\r\n\r\n this.tokens = {};\r\n\r\n const itemsCopy = this._project.getItemsCopy();\r\n\r\n for (const pi of itemsCopy) {\r\n if (pi.itemType === ProjectItemType.lang) {\r\n await pi.ensureFileStorage();\r\n\r\n if (pi.primaryFile) {\r\n const lang = await Lang.ensureOnFile(pi.primaryFile);\r\n\r\n if (lang) {\r\n await lang.load();\r\n\r\n if (lang.language && lang.containerName !== undefined) {\r\n for (const tokenName in lang.tokens) {\r\n if (this.tokens[tokenName] === undefined) {\r\n this.tokens[tokenName] = {};\r\n }\r\n\r\n if (this.tokens[tokenName][lang.language] === undefined) {\r\n this.tokens[tokenName][lang.language] = {};\r\n }\r\n\r\n this.tokens[tokenName][lang.language][lang.containerName] = lang.tokens[tokenName];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this._isLoaded = true;\r\n }\r\n}\r\n"]}
|