diff --git a/package-lock.json b/package-lock.json index 24f73510..949b0099 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "@mcschema/java-1.20.2": "^0.0.9", "@mcschema/java-1.20.3": "^0.0.10", "@mcschema/java-1.20.5": "^0.0.26", + "@mcschema/java-1.21": "^0.0.6", "@mcschema/locales": "^0.1.98", "@zip.js/zip.js": "^2.4.5", "brace": "^0.11.1", @@ -675,6 +676,14 @@ "@mcschema/core": "^0.13.0" } }, + "node_modules/@mcschema/java-1.21": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@mcschema/java-1.21/-/java-1.21-0.0.6.tgz", + "integrity": "sha512-33qg7ZW01PV8BxBnBEhtJqSgpuNonozWUzXJFQboXZWs2NQF46MgcLVCr0OElBPCH2Sv5+bazhPWa+mKB0A/HA==", + "dependencies": { + "@mcschema/core": "^0.13.0" + } + }, "node_modules/@mcschema/locales": { "version": "0.1.98", "resolved": "https://registry.npmjs.org/@mcschema/locales/-/locales-0.1.98.tgz", @@ -4784,6 +4793,14 @@ "@mcschema/core": "^0.13.0" } }, + "@mcschema/java-1.21": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@mcschema/java-1.21/-/java-1.21-0.0.6.tgz", + "integrity": "sha512-33qg7ZW01PV8BxBnBEhtJqSgpuNonozWUzXJFQboXZWs2NQF46MgcLVCr0OElBPCH2Sv5+bazhPWa+mKB0A/HA==", + "requires": { + "@mcschema/core": "^0.13.0" + } + }, "@mcschema/locales": { "version": "0.1.98", "resolved": "https://registry.npmjs.org/@mcschema/locales/-/locales-0.1.98.tgz", diff --git a/package.json b/package.json index 40314f45..8d25e18b 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "@mcschema/java-1.20.2": "^0.0.9", "@mcschema/java-1.20.3": "^0.0.10", "@mcschema/java-1.20.5": "^0.0.26", + "@mcschema/java-1.21": "^0.0.6", "@mcschema/locales": "^0.1.98", "@zip.js/zip.js": "^2.4.5", "brace": "^0.11.1", diff --git a/src/app/schema/renderHtml.tsx b/src/app/schema/renderHtml.tsx index 796a7e60..13af94d7 100644 --- a/src/app/schema/renderHtml.tsx +++ b/src/app/schema/renderHtml.tsx @@ -15,11 +15,11 @@ import { CachedDecorator, CachedFeature } from '../services/index.js' import { deepClone, deepEqual, generateColor, generateUUID, hexId, hexToRgb, isObject, newSeed, rgbToHex, stringToColor } from '../Utils.js' import { ModelWrapper } from './ModelWrapper.js' -const selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant', 'rule_block_entity_modifier.type', 'pool_alias_binding.type', 'lithostitched.worldgen_modifier.type', 'lithostitched.modifier_predicate.type', 'ohthetreesyoullgrow.configured_feature.type'] +const selectRegistries = ['loot_table.type', 'loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'recipe.type', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'dimension.generator.biome_source.preset', 'carver.type', 'feature.type', 'decorator.type', 'feature.tree.minimum_size.type', 'block_state_provider.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'structure_feature.type', 'surface_builder.type', 'processor.processor_type', 'rule_test.predicate_type', 'pos_rule_test.predicate_type', 'template_element.element_type', 'block_placer.type', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'structure_placement.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.cat.variant', 'entity.type_specific.frog.variant', 'rule_block_entity_modifier.type', 'pool_alias_binding.type', 'lithostitched.worldgen_modifier.type', 'lithostitched.modifier_predicate.type', 'ohthetreesyoullgrow.configured_feature.type', 'enchantment_provider.type', 'enchantment_value_effect.type', 'level_based_value.type'] const datalistEnums = ['item_stack.components', 'function.set_components.components'] -const hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type'] -const flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state'] -const inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.type', 'glyph_provider.type', 'sprite_source.type', 'rule_block_entity_modifier.type', 'immersive_weathering.area_condition.type', 'immersive_weathering.block_growth.growth_for_face.entry.direction', 'immersive_weathering.position_test.predicate_type', 'pool_alias_binding.type', 'item_stack.id', 'data_component.banner_patterns.entry.pattern', 'data_component.container.entry.slot', 'map_decoration.type', 'suspicious_stew_effect_instance.id'] +const hiddenFields = ['number_provider.type', 'score_provider.type', 'nbt_provider.type', 'int_provider.type', 'float_provider.type', 'height_provider.type', 'level_based_value.type'] +const flattenedFields = ['feature.config', 'decorator.config', 'int_provider.value', 'float_provider.value', 'block_state_provider.simple_state_provider.state', 'block_state_provider.rotated_block_provider.state', 'block_state_provider.weighted_state_provider.entries.entry.data', 'rule_test.block_state', 'structure_feature.config', 'surface_builder.config', 'template_pool.elements.entry.element', 'decorator.block_survives_filter.state', 'material_rule.block.result_state', 'enchantment.effects.entry.effect'] +const inlineFields = ['loot_entry.type', 'function.function', 'condition.condition', 'criterion.trigger', 'dimension.generator.type', 'dimension.generator.biome_source.type', 'feature.type', 'decorator.type', 'block_state_provider.type', 'feature.tree.minimum_size.type', 'trunk_placer.type', 'foliage_placer.type', 'tree_decorator.type', 'block_placer.type', 'rule_test.predicate_type', 'processor.processor_type', 'template_element.element_type', 'nbt_operation.op', 'number_provider.value', 'score_provider.name', 'score_provider.target', 'nbt_provider.source', 'nbt_provider.target', 'generator_biome.biome', 'block_predicate.type', 'material_rule.type', 'material_condition.type', 'density_function.type', 'root_placer.type', 'entity.type_specific.type', 'glyph_provider.type', 'sprite_source.type', 'rule_block_entity_modifier.type', 'immersive_weathering.area_condition.type', 'immersive_weathering.block_growth.growth_for_face.entry.direction', 'immersive_weathering.position_test.predicate_type', 'pool_alias_binding.type', 'item_stack.id', 'data_component.banner_patterns.entry.pattern', 'data_component.container.entry.slot', 'map_decoration.type', 'suspicious_stew_effect_instance.id', 'enchantment_value_effect.type', 'enchantment_effect.type'] const nbtFields = ['function.set_nbt.tag', 'advancement.display.icon.nbt', 'text_component_object.nbt', 'entity.nbt', 'block.nbt', 'item.nbt'] const fixedLists = ['generator_biome.parameters.temperature', 'generator_biome.parameters.humidity', 'generator_biome.parameters.continentalness', 'generator_biome.parameters.erosion', 'generator_biome.parameters.depth', 'generator_biome.parameters.weirdness', 'feature.end_spike.crystal_beam_target', 'feature.end_gateway.exit', 'decorator.block_filter.offset', 'block_predicate.has_sturdy_face.offset', 'block_predicate.inside_world_bounds.offset', 'block_predicate.matching_block_tag.offset', 'block_predicate.matching_blocks.offset', 'block_predicate.matching_fluids.offset', 'block_predicate.would_survive.offset', 'model_element.from', 'model_element.to', 'model_element.rotation.origin', 'model_element.faces.uv', 'item_transform.rotation', 'item_transform.translation', 'item_transform.scale', 'generator_structure.random_spread.locate_offset', 'pack_overlay.formats', 'data_component.profile.id', 'data_component.lodestone_tracker.tracker.pos', 'attribute_modifier.uuid'] const collapsedFields = ['noise_settings.surface_rule', 'noise_settings.noise.terrain_shaper'] diff --git a/src/app/services/Schemas.ts b/src/app/services/Schemas.ts index 49fc9e4b..46aec40e 100644 --- a/src/app/services/Schemas.ts +++ b/src/app/services/Schemas.ts @@ -5,10 +5,10 @@ import { initPartners } from '../partners/index.js' import { message } from '../Utils.js' import { fetchData } from './DataFetcher.js' -export const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19', '1.19.3', '1.19.4', '1.20', '1.20.2', '1.20.3', '1.20.5'] as const +export const VersionIds = ['1.15', '1.16', '1.17', '1.18', '1.18.2', '1.19', '1.19.3', '1.19.4', '1.20', '1.20.2', '1.20.3', '1.20.5', '1.21'] as const export type VersionId = typeof VersionIds[number] -export const DEFAULT_VERSION: VersionId = '1.20.3' +export const DEFAULT_VERSION: VersionId = '1.20.5' export type BlockStateRegistry = { [block: string]: { @@ -52,6 +52,7 @@ const versionGetter: { '1.20.2': () => import('@mcschema/java-1.20.2'), '1.20.3': () => import('@mcschema/java-1.20.3'), '1.20.5': () => import('@mcschema/java-1.20.5'), + 1.21: () => import('@mcschema/java-1.21'), } export let CachedDecorator: INode diff --git a/src/config.json b/src/config.json index 598b27cb..a6efad99 100644 --- a/src/config.json +++ b/src/config.json @@ -152,6 +152,13 @@ "name": "1.20.5 — 1.20.6", "pack_format": 41, "show": true + }, + { + "id": "1.21", + "dynamic": true, + "name": "1.21", + "pack_format": 42, + "show": true } ], "generators": [ @@ -191,6 +198,18 @@ "schema": "recipe", "wiki": "https://minecraft.wiki/w/Recipe#JSON_format" }, + { + "id": "enchantment", + "url": "enchantment", + "schema": "enchantment", + "minVersion": "1.21" + }, + { + "id": "enchantment_provider", + "url": "enchantment-provider", + "schema": "enchantment_provider", + "minVersion": "1.21" + }, { "id": "text_component", "url": "text-component", diff --git a/src/locales/en.json b/src/locales/en.json index a03d694e..015229d3 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -61,6 +61,8 @@ "generator.damage_type": "Damage Type", "generator.dimension": "Dimension", "generator.dimension_type": "Dimension Type", + "generator.enchantment": "Enchantment", + "generator.enchantment_provider": "Enchantment Provider", "generator.error_max_version": "This generator is not available in versions above %0%", "generator.error_min_version": "The minimum version for this generator is %0%", "generator.font": "Font",