diff --git a/404.html b/404.html new file mode 100644 index 00000000..f6fb5de1 --- /dev/null +++ b/404.html @@ -0,0 +1,12 @@ +Data Pack Generators Minecraft 1.15, 1.16, 1.17
\ No newline at end of file diff --git a/advancement/index.html b/advancement/index.html new file mode 100644 index 00000000..da53d39f --- /dev/null +++ b/advancement/index.html @@ -0,0 +1,12 @@ +Advancement Generator Minecraft 1.15, 1.16, 1.17
\ No newline at end of file diff --git a/dimension-type/index.html b/dimension-type/index.html new file mode 100644 index 00000000..7b1267a5 --- /dev/null +++ b/dimension-type/index.html @@ -0,0 +1,12 @@ +Dimension Type Generator Minecraft 1.16, 1.17
\ No newline at end of file diff --git a/dimension/index.html b/dimension/index.html new file mode 100644 index 00000000..a55c6e60 --- /dev/null +++ b/dimension/index.html @@ -0,0 +1,12 @@ +Dimension Generator Minecraft 1.16, 1.17
\ No newline at end of file diff --git a/favicon-32.png b/favicon-32.png new file mode 100644 index 00000000..45c3e3c2 Binary files /dev/null and b/favicon-32.png differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..f6fb5de1 --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ +Data Pack Generators Minecraft 1.15, 1.16, 1.17
\ No newline at end of file diff --git a/item-modifier/index.html b/item-modifier/index.html new file mode 100644 index 00000000..388c29a0 --- /dev/null +++ b/item-modifier/index.html @@ -0,0 +1,12 @@ +Item Modifier Generator Minecraft 1.17
\ No newline at end of file diff --git a/js/bundle.js b/js/bundle.js new file mode 100644 index 00000000..449b555f --- /dev/null +++ b/js/bundle.js @@ -0,0 +1,2 @@ +!function(e){var t={};function i(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,o){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(o,r,function(t){return e[t]}.bind(null,r));return o},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=98)}([function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||t.hasOwnProperty(i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),r(i(27),t),r(i(11),t),r(i(12),t),r(i(5),t),r(i(28),t),r(i(29),t),r(i(14),t),r(i(30),t),r(i(31),t),r(i(32),t),r(i(33),t),r(i(34),t),r(i(15),t),r(i(35),t),r(i(36),t),r(i(37),t)},function(e){e.exports=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","refs":{"mcdata_master":"13355f7"}},{"id":"1.16","refs":{"mcdata_master":"1.16.4","vanilla_datapack_data":"1.16.4-data","vanilla_datapack_summary":"1.16.4-summary"}},{"id":"1.17","refs":{"mcdata_master":"master","vanilla_datapack_data":"data","vanilla_datapack_summary":"summary"},"dynamic":true}],"models":[{"id":"loot-table","name":"Loot Table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","name":"Predicate","path":"predicates","schema":"predicate"},{"id":"item-modifier","name":"Item Modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","name":"Advancement","path":"advancements","schema":"advancement"},{"id":"dimension","name":"Dimension","path":"dimension","schema":"dimension","minVersion":"1.16"},{"id":"dimension-type","name":"Dimension Type","path":"dimension_type","schema":"dimension_type","minVersion":"1.16"},{"id":"world","name":"World Settings","schema":"world_settings","minVersion":"1.16"},{"id":"worldgen","name":"Worldgen","category":true,"minVersion":"1.16"},{"id":"worldgen/biome","name":"Biome","path":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/carver","name":"Carver","path":"worldgen/configured_carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/feature","name":"Feature","path":"worldgen/configured_feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/noise-settings","name":"Noise Settings","path":"worldgen/noise_settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/structure-feature","name":"Structure Feature","path":"worldgen/configured_structure_feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/surface-builder","name":"Surface Builder","path":"worldgen/configured_surface_builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16"},{"id":"worldgen/processor-list","name":"Processor List","path":"worldgen/processor_list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template-pool","name":"Template Pool","path":"worldgen/template_pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"}],"registries":[{"id":"advancement","dynamic":true},{"id":"attribute","minVersion":"1.16"},{"id":"block"},{"id":"dimension","dynamic":true},{"id":"dimension_type","dynamic":true},{"id":"enchantment"},{"id":"entity_type"},{"id":"fluid"},{"id":"function","dynamic":true},{"id":"item"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_function_type","minVersion":"1.16"},{"id":"loot_nbt_provider_type","minVersion":"1.17"},{"id":"loot_number_provider_type","minVersion":"1.17"},{"id":"loot_pool_entry_type","minVersion":"1.16"},{"id":"loot_score_provider_type","minVersion":"1.17"},{"id":"loot_table","dynamic":true},{"id":"mob_effect"},{"id":"pos_rule_test","minVersion":"1.16"},{"id":"potion","minVersion":"1.15"},{"id":"predicate","dynamic":true},{"id":"recipe","dynamic":true},{"id":"rule_test","minVersion":"1.16"},{"id":"sound_event"},{"id":"stat_type"},{"id":"structure","dynamic":true},{"id":"tag/block","dynamic":true},{"id":"tag/entity_type","dynamic":true},{"id":"tag/fluid","dynamic":true},{"id":"tag/function","dynamic":true},{"id":"tag/item","dynamic":true},{"id":"worldgen/biome","dynamic":true},{"id":"worldgen/block_state_provider_type","minVersion":"1.16"},{"id":"worldgen/block_placer_type","minVersion":"1.16"},{"id":"worldgen/biome_source","minVersion":"1.16"},{"id":"worldgen/carver","minVersion":"1.16"},{"id":"worldgen/chunk_generator","minVersion":"1.16"},{"id":"worldgen/configured_carver","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_decorator","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_structure_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_surface_builder","minVersion":"1.16","dynamic":true},{"id":"worldgen/decorator","minVersion":"1.16"},{"id":"worldgen/feature","minVersion":"1.16"},{"id":"worldgen/feature_size_type","minVersion":"1.16"},{"id":"worldgen/foliage_placer_type","minVersion":"1.16"},{"id":"worldgen/noise_settings","minVersion":"1.16","dynamic":true},{"id":"worldgen/processor_list","minVersion":"1.16","dynamic":true},{"id":"worldgen/structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_pool_element","minVersion":"1.16"},{"id":"worldgen/structure_processor","minVersion":"1.16"},{"id":"worldgen/surface_builder","minVersion":"1.16"},{"id":"worldgen/template_pool","minVersion":"1.16","dynamic":true},{"id":"worldgen/tree_decorator_type","minVersion":"1.16"},{"id":"worldgen/trunk_placer_type","minVersion":"1.16"},{"id":"biome","maxVersion":"1.15"},{"id":"worldgen/biome","minVersion":"1.16","path":"processed/reports/biomes"}]}')},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.UniformInt=t.Range=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.ConditionCases=void 0;const o=i(0);t.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},t.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),t.Range=e=>o.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:o.NumberNode(e),change:e=>{var t,i,o;return void 0===e?0:null!==(o=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:o.ObjectNode({min:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e)),max:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:o.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:o.NumberNode({integer:!0,min:0}),p:o.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),t.UniformInt=e=>o.ChoiceNode([{type:"number",node:o.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:o.ObjectNode({base:o.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:o.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),t.ConditionCases={"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:o.MapNode(r({validator:"objective"}),t.Range({forceRange:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:o.Opt(o.NumberNode())},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}},t.DimensionTypePresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),e,{"minecraft:overworld":t.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),t.NoiseSettingsPresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),e,{"minecraft:overworld":t.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.FloatProvider=t.UniformFloat=t.UniformInt=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.FunctionCases=t.ConditionCases=void 0;const o=i(0);t.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},t.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>o.Opt(o.ChoiceNode([{type:"number",node:o.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:e})),max:o.Opt(o.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));e.register("int_bounds",a(!0)),e.register("float_bounds",a()),e.register("int_range",o.ChoiceNode([{type:"object",node:o.ObjectNode({min:o.Opt(n("number_provider")),max:o.Opt(n("number_provider"))})},{type:"number",node:o.NumberNode({integer:!0})}],{context:"range"}));const s=(e,t,i,n,a,s,c)=>{let d={};a&&Object.keys(c[a]).forEach(e=>{d[e]=o.Mod(c[a][e],{enabled:e=>void 0===e.push("type").get()})});const l=o.ObjectNode({type:o.Mod(o.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[o.Switch]:[{push:"type"}],[o.Case]:c,...d},{context:s,disableSwitchContext:!0}),m=[{type:t,node:c[n][i]}];return a&&m.push({type:"object",priority:-1,node:l}),Object.keys(c).forEach(e=>{m.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:l,change:t=>({type:e})})}),o.ChoiceNode(m,{context:s,choiceContext:s+".type"})};e.register("number_provider",s("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:o.NumberNode()},"minecraft:uniform":{min:n("number_provider"),max:n("number_provider")},"minecraft:binomial":{n:n("number_provider"),p:n("number_provider")},"minecraft:score":{target:n("scoreboard_name_provider"),score:r({validator:"objective"}),scale:o.Opt(o.NumberNode())}})),e.register("scoreboard_name_provider",s("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:o.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),e.register("nbt_provider",s("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:o.Mod(r({enum:"copy_source"}),{default:()=>"this"})}}));const c=e=>t=>o.ChoiceNode([{type:"number",node:o.NumberNode({integer:e,min:null==t?void 0:t.min,max:null==t?void 0:t.max}),change:e=>e.base},{type:"object",node:o.ObjectNode({base:o.NumberNode({integer:e,min:null==t?void 0:t.min,max:null==t?void 0:t.max}),spread:o.NumberNode({integer:e,min:0,max:null==t?void 0:t.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"});t.UniformInt=c(!0),t.UniformFloat=c(),t.FloatProvider=e=>s("worldgen/float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:o.NumberNode(e)},"minecraft:uniform":{value:o.ObjectNode({base:o.NumberNode(e),spread:o.NumberNode({min:0})})},"minecraft:clamped_normal":{value:o.ObjectNode({min:o.NumberNode(),max:o.NumberNode(),mean:o.NumberNode(),deviation:o.NumberNode()})},"minecraft:trapezoid":{value:o.ObjectNode({min:o.NumberNode(),max:o.NumberNode(),plateau:o.NumberNode()})}}),t.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:o.MapNode(r({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:o.Opt(o.NumberNode({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}}),t.FunctionCases=(e,t=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:t},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:o.ListNode(o.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:o.Opt(o.BooleanNode())},"minecraft:exploration_map":{destination:o.Opt(r({enum:"map_feature"})),decoration:o.Opt(r({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:o.ListNode(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:o.ListNode(o.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:o.Opt(o.BooleanNode())},"minecraft:set_contents":{entries:o.ListNode(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:o.Opt(o.BooleanNode())},"minecraft:set_damage":{damage:n("number_provider"),add:o.Opt(o.BooleanNode())},"minecraft:set_enchantments":{enchantments:o.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:o.Opt(o.BooleanNode())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(a),lore:o.ListNode(n("text_component")),replace:o.Opt(o.BooleanNode())},"minecraft:set_name":{entity:o.Opt(a),name:o.Opt(n("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},c={};return i.get("loot_function_type").forEach(t=>{c[t]={...s[t],...e}}),c},t.DimensionTypePresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),e,{"minecraft:overworld":t.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),t.NoiseSettingsPresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),e,{"minecraft:overworld":t.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Keep=t.Opt=t.Has=t.Mod=t.Base=void 0,t.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...i){return e.base({node:this},t,...i)},canUpdate:()=>!1,update:()=>[]},t.Mod=(e,t)=>({...e,..."function"==typeof t?t(e):t}),t.Has=(e,i)=>t.Mod(i,{enabled:t=>void 0!==t.push(e).get()}),t.Opt=function(e){return{...e,optional:()=>!0}},t.Keep=function(e){return{...e,keep:()=>!0}}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.Range=t.ConditionCases=void 0;const o=i(0);t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0})),{default:()=>[0,0,0]})),t.Range=e=>o.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:o.NumberNode(e),change:e=>{var t,i,o;return void 0===e?0:null!==(o=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:o.ObjectNode({min:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e)),max:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:o.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:o.NumberNode({integer:!0,min:0}),p:o.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),t.ConditionCases={"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:o.MapNode(r({validator:"objective"}),t.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:requirements":{terms:o.ListNode(n("condition"))},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:o.Opt(o.NumberNode())},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=t.Processors=void 0;const o=i(0);t.initProcessorListSchemas=function(e,i){const r=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,i);t.Processors=o.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",o.Mod(o.ObjectNode({processors:o.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",o.Mod(o.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[o.Switch]:[{push:"processor_type"}],[o.Case]:{"minecraft:block_age":{mossiness:o.NumberNode()},"minecraft:block_ignore":{blocks:o.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:o.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:o.NumberNode({integer:!0})},"minecraft:rule":{rules:o.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",o.Mod(o.ObjectNode({position_predicate:o.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const a={min_dist:o.NumberNode({min:0,max:255,integer:!0}),max_dist:o.NumberNode({min:0,max:255,integer:!0}),min_chance:o.NumberNode({min:0,max:1}),max_chance:o.NumberNode({min:0,max:1})};e.register("pos_rule_test",o.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:axis_aligned_linear_pos":{axis:n({enum:["x","y","z"]}),...a},"minecraft:linear_pos":a}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",o.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:o.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:o.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}},function(e,t,i){var o=i(90),r=i(91),n=i(92),a=i(93),s=i(94),c=i(95),d=i(96);d.alea=o,d.xor128=r,d.xorwow=n,d.xorshift7=a,d.xor4096=s,d.tychei=c,e.exports=d},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModelPath=t.Path=t.relativePath=void 0,t.relativePath=function(e,t){return t.reduce((e,t)=>"pop"===t?e.pop():e.push(t.push),e)};class o{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new o(this.modelArr.slice(e,t),this.contextArr)}shift(){return new o(this.modelArr.slice(1),this.contextArr)}pop(){return new o(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new o([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new o([...this.modelArr],[...this.contextArr,t])}copy(){return new o([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new r(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every((e,t)=>e===this.modelArr[t])}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t])}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every((e,i)=>e===this.modelArr[t+i])}toString(){return this.modelArr.map(e=>"string"==typeof e?"."+e:`[${e}]`).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}t.Path=o;class r extends o{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new r(this.model,super.slice(e,t))}shift(){return new r(this.model,super.shift())}pop(){return new r(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new r(this.model,super.modelPush(e))}contextPush(e){return new r(this.model,super.contextPush(e))}copy(){return new r(this.model,super.copy())}}t.ModelPath=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Errors=void 0;class o{constructor(){this.errors=[]}add(e,t,...i){return this.errors.push({path:e,error:t,params:i}),!1}get(e,t=!1){return t?this.errors.filter(t=>t.path.equals(e)):this.errors.filter(t=>t.path.startsWith(e))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}t.Errors=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=void 0;const o=i(0);t.initProcessorListSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("processor_list",o.Mod(o.ObjectNode({processors:o.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",o.Mod(o.ObjectNode({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[o.Switch]:[{push:"processor_type"}],[o.Case]:{"minecraft:block_age":{mossiness:o.NumberNode()},"minecraft:block_ignore":{blocks:o.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:o.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:o.NumberNode({integer:!0})},"minecraft:rule":{rules:o.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",o.Mod(o.ObjectNode({position_predicate:o.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const n={min_dist:o.NumberNode({min:0,max:255,integer:!0}),max_dist:o.NumberNode({min:0,max:255,integer:!0}),min_chance:o.NumberNode({min:0,max:1}),max_chance:o.NumberNode({min:0,max:1})};e.register("pos_rule_test",o.ObjectNode({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:axis_aligned_linear_pos":{axis:r({enum:["x","y","z"]}),...n},"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",o.ObjectNode({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:o.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:o.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListNode=void 0;const o=i(5);t.ListNode=(e,t)=>{var i,r;const n=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,a=null!==(r=null==t?void 0:t.maxLength)&&void 0!==r?r:1/0,s=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return{...o.Base,type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(n)].map(t=>e.default()):[],navigate(t,i){const o=i+1;return t.getArray().length<=o?this:e.navigate(t,o)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,o,r){return r.loose&&!Array.isArray(i)&&(i=this.default()),Array.isArray(i)?(s&&(i.lengtha)?n===a?o.add(t,"error.invalid_list_range.exact",i.length,n):o.add(t,"error.invalid_list_range.between",i.length,n,a):i.lengtha&&o.add(t,"error.invalid_list_range.larger",i.length,a),i.map((i,n)=>e.validate(t.push(n),i,o,r))):(o.add(t,"error.expected_list"),i)},hook(i,o,...r){var n;return(null!==(n=i.list)&&void 0!==n?n:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},o,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwitchNode=void 0;const o=i(5);t.SwitchNode=e=>({...o.Base,type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var i;const o=t+1;return null===(i=this.activeCase(e.slice(0,o)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,o;return null!==(o=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==o?o:e},suggest(t,i){var o,r;return null!==(r=null===(o=this.activeCase(t))||void 0===o?void 0:o.node.suggest(t,i))&&void 0!==r?r:e.filter(e=>e.match(t)).map(e=>e.node.suggest(t,i)).reduce((e,t)=>e.concat(t))},validate(e,t,i,o){let r=this.activeCase(e);return void 0===r?t:r.node.validate(e,t,i,o)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const o=(e,t)=>{var i,o;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(o=e.priority)&&void 0!==o?o:0)},r=e.filter(e=>e.match(t)).sort(o);return i&&0===r.length?e.sort(o)[0]:r.length>0?r[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}})},function(e,t,i){"use strict";function o(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(t,"__esModule",{value:!0}),t.quoteString=t.escapeString=void 0,t.escapeString=o,t.quoteString=function(e){return`"${o(e)}"`}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=t.LocationFields=void 0;const o=i(0),r=i(8);t.initPredicatesSchemas=function(e,i){const n=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,i),s=o.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(a({validator:"resource",params:{pool:"item"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:o.Opt(r.Range()),durability:o.Opt(r.Range()),potion:o.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:o.Opt(r.Range())},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(a({validator:"resource",params:{pool:"block"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(a(),s))},{context:"fluid"})),t.LocationFields={position:o.Opt(o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range())})),biome:o.Opt(a({enum:"biome"})),feature:o.Opt(a({enum:"structure_feature"})),dimension:o.Opt(a({enum:"dimension"})),light:o.Opt(o.ObjectNode({light:o.Opt(r.Range({integer:!0,min:0,max:15}))})),block:o.Opt(n("block_predicate")),fluid:o.Opt(n("fluid_predicate"))},e.register("location_predicate",o.ObjectNode(t.LocationFields,{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:r.Range(),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(a({enum:"gamemode"})),level:o.Opt(r.Range()),advancements:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(a(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(n("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:o.Opt(r.Range()),duration:o.Opt(r.Range()),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range()),absolute:o.Opt(r.Range()),horizontal:o.Opt(r.Range())},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(a({validator:"team"})),location:o.Opt(n("location_predicate")),distance:o.Opt(n("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(a({enum:"slot"}),n("item_predicate"))),player:o.Opt(n("player_predicate")),effects:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(n("entity_predicate")),direct_entity:o.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:o.Opt(r.Range()),taken:o.Opt(r.Range()),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(n("entity_predicate")),type:o.Opt(n("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDecoratorSchemas=void 0;const o=i(0),r=i(3);t.initDecoratorSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a={maximum:o.NumberNode({integer:!0}),bottom_offset:o.NumberNode({integer:!0}),top_offset:o.NumberNode({integer:!0})},s={chance:o.NumberNode({integer:!0,min:0})},c={count:r.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:o.NumberNode({min:0,max:1})},"minecraft:chance":s,"minecraft:count":c,"minecraft:count_extra":{count:o.NumberNode({integer:!0,min:0}),extra_count:o.NumberNode({integer:!0,min:0}),extra_chance:o.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:o.NumberNode(),below_noise:o.NumberNode({integer:!0}),above_noise:o.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:o.NumberNode({integer:!0}),noise_factor:o.NumberNode(),noise_offset:o.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:o.NumberNode({integer:!0}),spread:o.NumberNode({integer:!0})},"minecraft:fire":c,"minecraft:glowstone":c,"minecraft:lava_lake":s,"minecraft:range":a,"minecraft:range_biased":a,"minecraft:range_very_biased":a,"minecraft:water_lake":s}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDecoratorSchemas=void 0;const o=i(0),r=i(4);t.initDecoratorSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("vertical_anchor",o.ChoiceNode(["absolute","above_bottom","below_top"].map(e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,o,r;return{[e]:null!==(r=null!==(o=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==r?r:0}},node:o.ObjectNode({[e]:o.NumberNode({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"}));const a={bottom_inclusive:i("vertical_anchor"),top_inclusive:i("vertical_anchor")},s={...a,cutoff:o.NumberNode({integer:!0})},c={count:r.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:o.NumberNode({integer:!0})},"minecraft:chance":{chance:o.NumberNode({integer:!0,min:0})},"minecraft:count":c,"minecraft:count_extra":{count:o.NumberNode({integer:!0,min:0}),extra_count:o.NumberNode({integer:!0,min:0}),extra_chance:o.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:o.NumberNode(),below_noise:o.NumberNode({integer:!0}),above_noise:o.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:o.NumberNode({integer:!0}),noise_factor:o.NumberNode(),noise_offset:o.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:i("vertical_anchor"),spread:o.NumberNode({integer:!0})},"minecraft:glowstone":c,"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_with_water_threshold":{max_water_depth:o.NumberNode({integer:!0})},"minecraft:range":a,"minecraft:range_biased_to_bottom":s,"minecraft:range_very_biased_to_bottom":s}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=t.lootContext=void 0;const a=i(0),s=i(38),c=i(39);t.lootContext=n(i(18)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=void 0;const a=i(0),s=i(47),c=i(48);t.lootContext=n(i(19)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=void 0;const a=i(0),s=i(68),c=i(69);t.lootContext=n(i(21)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e){e.exports=JSON.parse('{"advancement":"Advancement","button.add":"Add","button.collapse":"Collapse","button.expand":"Expand","button.remove":"Remove","copy":"Copy","dimension-type":"Dimension Type","dimension":"Dimension","download":"Download","error.block_state.missing_property":"Missing block property \\"%0%\\"","fields":"Fields","github":"GitHub","home":"Home","item-modifier":"Item Modifier","language":"Language","loot-table":"Loot Table","maximize":"Maximize","minimize":"Minimize","not_found.description":"The page you were looking for does not exist.","predicate":"Predicate","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","title.generator":"%0% Generator","title.home":"Data Pack Generators","presets":"Presets","preview":"Visualize","preview.show_density":"Show Density","preview.scale":"Scale","preview.depth":"Depth","preview.width":"Width","undo":"Undo","world":"World Settings","worldgen/biome":"Biome","worldgen/carver":"Carver","worldgen/feature":"Feature","worldgen/noise-settings":"Noise Settings","worldgen/processor-list":"Processor List","worldgen/structure-feature":"Structure Feature","worldgen/surface-builder":"Surface Builder","worldgen/template-pool":"Template Pool"}')},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataModel=void 0;const o=i(11),r=i(12);t.DataModel=class{constructor(e,t){var i;this.schema=e,this.data=e.default(),this.listeners=[],this.errors=new r.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0,this.historyMax=null!==(i=null==t?void 0:t.historyMax)&&void 0!==i?i:50}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach(e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)})}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach(e=>{if(void 0===t)return t;t=t[e]}),t}set(e,t,i){if(0===e.getArray().length)return void this.reset(t,!0);let o=this.data;e.pop().forEach(e=>{void 0!==o[e]&&"string"!=typeof o[e]&&"number"!=typeof o[e]||(o[e]={}),o=o[e]}),void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?o.splice(e.last(),1):delete o[e.last()]:o[e.last()]=t,i||(console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate())}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(o)})}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanNode=void 0;const o=i(5);t.BooleanNode=()=>({...o.Base,type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,o){return o.loose&&"boolean"!=typeof t&&(t=this.default()),"boolean"==typeof t&&void 0!==t||i.add(e,"error.expected_boolean"),t},hook(e,t,...i){var o;return(null!==(o=e.boolean)&&void 0!==o?o:e.base).call(e,{node:this},t,...i)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectOrPreset=t.StringOrList=t.ObjectOrList=t.ChoiceNode=void 0;const o=i(14),r=i(15);t.ChoiceNode=(e,t)=>{const i=r.SwitchNode(e.map(e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node})));return{...i,validate(e,t,o,r){let n=i.activeCase(e,!0);return n.node.optional()?t:n.node.validate(e,t,o,r)},hook(o,r,...n){var a;return(null!==(a=o.choice)&&void 0!==a?a:o.base).call(o,{node:this,choices:e,config:null!=t?t:{},switchNode:i},r,...n)}}};const n=e=>(i,r)=>t.ChoiceNode([{type:e,node:i,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:i.default()}},{type:"list",node:o.ListNode(i),change:e=>e?[e]:[]}],r);t.ObjectOrList=n("object"),t.StringOrList=n("string"),t.ObjectOrPreset=(e,i,o)=>t.ChoiceNode([{type:"string",priority:1,node:e,change:e=>Object.keys(o)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=o[e])&&void 0!==t?t:o[Object.keys(o)[0]]}}])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MapNode=void 0;const o=i(5);t.MapNode=(e,t,i)=>({...o.Base,type:()=>"map",default:()=>({}),navigate(e,i){const o=i+1;return e.getArray().length<=o?this:t.navigate(e,o)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,o,r,n){if(n.loose&&"object"!=typeof o&&(o=this.default()),null===o||"object"!=typeof o)return r.add(i,"error.expected_object"),o;let a={};return Object.keys(o).forEach(s=>{e.validate(i,s,r,n),a[s]=t.validate(i.push(s),o[s],r,n)}),a},validationOption(t){var o;return null!==(o=null==i?void 0:i.validation)&&void 0!==o?o:e.validationOption(t.push(""))},hook(o,r,...n){var a;return(null!==(a=o.map)&&void 0!==a?a:o.base).call(o,{node:this,keys:e,children:t,config:null!=i?i:{}},r,...n)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNode=void 0;const o=i(5);t.NumberNode=e=>{var t,i,r;const n=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,a=(null==e?void 0:e.color)?0:null!==(i=null==e?void 0:e.min)&&void 0!==i?i:-1/0,s=(null==e?void 0:e.color)?16777215:null!==(r=null==e?void 0:e.max)&&void 0!==r?r:1/0,c=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return{...o.Base,type:()=>"number",default:()=>a>0?a:0,validate(e,t,i,o){return o.loose&&"number"!=typeof t&&(t=this.default()),"number"!=typeof t?i.add(e,"error.expected_number"):n&&!Number.isInteger(t)?i.add(e,"error.expected_integer"):c&&(ts)?i.add(e,"error.invalid_number_range.between",t,a,s):ts&&i.add(e,"error.invalid_number_range.larger",t,s),t},hook(t,i,...o){var r;return(null!==(r=t.number)&&void 0!==r?r:t.base).call(t,{node:this,integer:n,min:a,max:s,between:c,config:null!=e?e:{}},i,...o)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectNode=t.Case=t.Switch=void 0;const o=i(5),r=i(11),n=i(12),a=i(16);t.Switch=Symbol("switch"),t.Case=Symbol("case"),t.ObjectNode=(e,i)=>{const{[t.Switch]:s,[t.Case]:c,...d}=e,l=e=>{if(void 0===s)return d;const t=r.relativePath(e,s).get(),i=c[t];return{...d,...i}},m=(e,t)=>{var o;const n=s?r.relativePath(e,s).get():void 0,a=s&&null!==(o=c[n])&&void 0!==o?o:{},d=Object.keys(a),l=(null==i?void 0:i.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[i.context])):e;return(!(null==i?void 0:i.disableSwitchContext)&&n&&d.includes(t)?l.contextPush(n):l).push(t)};return{...o.Base,type:()=>"object",category:()=>null==i?void 0:i.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,o=e.getArray();if(o.length<=i)return this;const r=l(e.slice(0,i))[o[i]];return null==r?void 0:r.navigate(e,i)},pathPush:(e,t)=>m(e,t.toString()),suggest(e,t){const i=l(e),o=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter(t=>i[t].enabled(e)).filter(e=>!o.includes(e)).map(a.quoteString)},validate(e,t,i,o){if(o.loose&&"object"!=typeof t&&(t=this.default()),"object"!=typeof t)return i.add(e,"error.expected_object"),t;let a=d;if(s){const i=r.relativePath(e,s);let l=i.get();if(e.equals(i.pop())){const r=i.last();l=d[r].validate(e.push(r),t[r],new n.Errors,o)}a={...a,...c[l]}}const l=Object.keys(a),m=l.filter(e=>!a[e].optional()),p=new Set([...m,...Object.keys(t)]);let u={};return p.forEach(r=>{if(l.includes(r)){if(!a[r].enabled(e))return;const n=a[r].validate(e.push(r),t[r],i,o);!a[r].keep()&&a[r].optional()&&(void 0===n||Array.isArray(n)&&0===n.length||n.constructor===Object&&0===Object.keys(n).length)?u[r]=void 0:(u[r]=n,e.getModel().set(e.push(r),n,!0))}else u[r]=t[r]}),u},hook(e,t,...i){var o;return(null!==(o=e.object)&&void 0!==o?o:e.base).call(e,{node:this,fields:d,filter:s,cases:c,getActiveFields:l,getChildModelPath:m},t,...i)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Reference=void 0,t.Reference=(e,t)=>({type(i){return e.get(t).type.bind(this)(i)},category(i){return e.get(t).category.bind(this)(i)},default(){return e.get(t).default.bind(this)()},transform:(i,o)=>e.get(t).transform(i,o),enabled(i){return e.get(t).enabled.bind(this)(i)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(i,o){return e.get(t).navigate.bind(this)(i,o)},pathPush(i,o){return e.get(t).pathPush.bind(this)(i,o)},suggest(i,o){return e.get(t).suggest.bind(this)(i,o)},validate(i,o,r,n){return e.get(t).validate.bind(this)(i,o,r,n)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,o,...r){return e.get(t).hook.bind(this)(i,o,...r)},activeCase(i,o){return e.get(t).activeCase.bind(this)(i,o)},canUpdate(i,o){return e.get(t).canUpdate.bind(this)(i,o)},update(i,o){return e.get(t).update.bind(this)(i,o)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringNode=void 0;const o=i(5),r=i(16),n=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},a=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};t.StringNode=(e,t)=>{const i=n(t)?"string"==typeof t.enum?()=>{var i;return null!==(i=null==e?void 0:e.get(t.enum))&&void 0!==i?i:[]}:()=>t.enum:"resource"===(null==t?void 0:t.validator)?"string"==typeof t.params.pool?t.params.pool.startsWith("$")?()=>{var i;return null!==(i=null==e?void 0:e.get(t.params.pool.slice(1)))&&void 0!==i?i:[]}:()=>{var i;return null!==(i=null==e?void 0:e.get(t.params.pool))&&void 0!==i?i:[]}:()=>t.params.pool:()=>[];return{...o.Base,type:()=>"string",default:()=>"",validate(e,o,r,s){if(s.loose&&"string"!=typeof o&&(o=this.default()||void 0),"string"!=typeof o)return r.add(e,"error.expected_string"),o;if(a(t)&&("resource"===t.validator&&o.length>0&&!o.includes(":")&&(o="#"===o[0]?"#minecraft:"+o.slice(1):"minecraft:"+o),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===o[0]||t.params.isDefinition||t.params.allowUnknown)))return o;if(n(t)&&t.additional)return o;const c=i();return c.length>0&&!c.includes(o)&&r.add(e,"error.invalid_enum_option",o),o},suggest:()=>i().map(r.quoteString),validationOption:()=>a(t)?t:void 0,hook(e,o,...r){var n;return(null!==(n=e.string)&&void 0!==n?n:e.base).call(e,{node:this,getValues:i,config:t},o,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollectionRegistry=t.SchemaRegistry=void 0;t.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};t.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(40),r=i(8),n=i(41),a=i(42),s=i(43),c=i(17),d=i(44),l=i(45),m=i(46);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),c.initPredicatesSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),a.initLootTableSchemas(e,t),s.initPackMcmetaSchemas(e,t),d.initRecipeSchemas(e,t),l.initTagsSchemas(e,t),m.initTextComponentSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0),r=i(8),n=i(17);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t);e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:a({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(a()),frame:o.Opt(a({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(a({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(a(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(a()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(a({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:a({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:o.Opt(i("entity_predicate")),partner:o.Opt(i("entity_predicate")),child:o.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:o.Opt(a({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(a({enum:"dimension"})),to:o.Opt(a({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(o.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:o.Opt(r.Range())},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:o.Opt(i("entity_predicate")),zombie:o.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o.ObjectNode({amplifier:r.Range(),duration:r.Range()})))},"minecraft:enter_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:o.Opt(i("entity_predicate")),killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":n.LocationFields,"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:o.Opt(r.Range()),occupied:o.Opt(r.Range()),full:o.Opt(r.Range())})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:o.Opt(r.Range()),durability:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:o.Opt(r.Range()),victims:o.Opt(o.ListNode(o.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:o.Opt(r.Range()),duration:o.Opt(r.Range())},"minecraft:location":n.LocationFields,"minecraft:nether_travel":{distance:o.Opt(r.Range()),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:o.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:o.Opt(i("entity_predicate")),killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:a({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:o.Opt(o.ObjectNode({block:o.Opt(a({validator:"resource",params:{pool:"block"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/block"}}))})),item:o.Opt(i("item_predicate"))},"minecraft:slept_in_bed":n.LocationFields,"minecraft:slide_down_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:o.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:o.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:o.Opt(r.Range())},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":n.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(8);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(18),n=i(8);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:o.Opt(n.Range({integer:!0})),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:{"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()}),...s},"minecraft:copy_name":{source:u,...s},"minecraft:copy_nbt":{source:u,ops:o.ListNode(o.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"})),...s},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}})),...s},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"enchantment"}}))),...s},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:o.Opt(o.BooleanNode()),...s},"minecraft:exploration_map":{destination:o.Opt(a({enum:"structure_feature"})),decoration:o.Opt(a({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode()),...s},"minecraft:fill_player_head":{entity:p,...s},"minecraft:limit_count":{limit:n.Range({bounds:!0}),...s},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:o.Opt(o.NumberNode({integer:!0})),...s},"minecraft:set_attributes":{modifiers:o.ListNode(i("attribute_modifier")),...s},"minecraft:set_contents":{entries:o.ListNode(i("loot_entry")),...s},"minecraft:set_count":{count:n.Range({allowBinomial:!0}),...s},"minecraft:set_damage":{damage:n.Range({forceRange:!0}),...s},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(p),lore:o.ListNode(i("text_component")),replace:o.Opt(o.BooleanNode()),...s},"minecraft:set_name":{entity:o.Opt(p),name:o.Opt(i("text_component")),...s},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}}),...s},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()}))),...s}}},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:o.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(49),r=i(3),n=i(50),a=i(51),s=i(52),c=i(53),d=i(54),l=i(55),m=i(56),p=i(57),u=i(58),_=i(59),f=i(67);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initLootTableSchemas(e,t),d.initPackMcmetaSchemas(e,t),l.initPredicatesSchemas(e,t),m.initRecipeSchemas(e,t),p.initTagsSchemas(e,t),u.initTextComponentSchemas(e,t),_.initWorldgenSchemas(e,t),f.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0),r=i(3);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=o.ChoiceNode([{type:"object",node:o.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:o.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(n()),frame:o.Opt(n({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(n(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(n()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({player:o.Mod(a,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:a,partner:a,child:a},"minecraft:brewed_potion":{potion:o.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:o.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(a))},"minecraft:construct_beacon":{level:o.Opt(r.Range())},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:a,zombie:a},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:a,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:a,item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:o.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:o.Opt(r.Range()),occupied:o.Opt(r.Range()),full:o.Opt(r.Range())})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:o.Opt(r.Range()),durability:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:o.Opt(r.Range()),victims:o.Opt(o.ListNode(a))},"minecraft:levitation":{distance:o.Opt(r.Range()),duration:o.Opt(r.Range())},"minecraft:location":{location:o.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:o.Opt(r.Range()),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:a},"minecraft:player_interacted_with_entity":{item:o.Opt(i("item_predicate")),entity:a},"minecraft:player_killed_entity":{entity:a,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:o.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:a},"minecraft:tame_animal":{entity:a},"minecraft:target_hit":{projectile:a,shooter:a,signal_strength:o.Opt(r.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:o.Opt(r.Range())},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(3);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionSchemas=void 0;const o=i(0),r=i(3);t.initDimensionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=e=>o.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",o.Mod(o.ObjectNode({type:r.DimensionTypePresets(i("dimension_type")),generator:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:o.Opt(n({enum:["nether"]})),altitude_noise:a(i("generator_biome_noise")),temperature_noise:a(i("generator_biome_noise")),humidity_noise:a(i("generator_biome_noise")),weirdness_noise:a(i("generator_biome_noise")),biomes:a(o.Mod(o.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:o.Opt(o.NumberNode({integer:!0,min:0,max:62})),biomes:o.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:r.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:o.ObjectNode({biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:o.Opt(o.BooleanNode()),features:o.Opt(o.BooleanNode()),layers:o.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",o.Mod(o.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:o.ObjectNode({altitude:o.NumberNode({min:-1,max:1}),temperature:o.NumberNode({min:-1,max:1}),humidity:o.NumberNode({min:-1,max:1}),weirdness:o.NumberNode({min:-1,max:1}),offset:o.NumberNode({min:-1,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",o.Mod(o.ObjectNode({firstOctave:o.NumberNode({integer:!0}),amplitudes:o.ListNode(o.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionTypeSchemas=void 0;const o=i(0),r=i(3);t.initDimensionTypeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("dimension_type",o.Mod(o.ObjectNode({name:o.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:o.BooleanNode(),natural:o.BooleanNode(),piglin_safe:o.BooleanNode(),respawn_anchor_works:o.BooleanNode(),bed_works:o.BooleanNode(),has_raids:o.BooleanNode(),has_skylight:o.BooleanNode(),has_ceiling:o.BooleanNode(),coordinate_scale:o.NumberNode({min:1e-5,max:3e7}),ambient_light:o.NumberNode(),fixed_time:o.Opt(o.NumberNode({integer:!0})),logical_height:o.NumberNode({integer:!0,min:0,max:256}),effects:o.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>r.DefaultDimensionType}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(19),n=i(3);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:o.Opt(n.Range({integer:!0})),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:u},"minecraft:copy_nbt":{source:u,ops:o.ListNode(o.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:o.Opt(o.BooleanNode())},"minecraft:exploration_map":{destination:o.Opt(a({enum:"map_feature"})),decoration:o.Opt(a({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode())},"minecraft:fill_player_head":{entity:p},"minecraft:limit_count":{limit:n.Range({bounds:!0})},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:o.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:o.ListNode(i("loot_entry"))},"minecraft:set_count":{count:n.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:n.Range({forceRange:!0})},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(p),lore:o.ListNode(i("text_component")),replace:o.Opt(o.BooleanNode())},"minecraft:set_name":{entity:o.Opt(p),name:o.Opt(i("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()})))}},r={};return t.get("loot_function_type").forEach(t=>{r[t]={...e[t],...s}}),r})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:o.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=void 0;const o=i(0),r=i(3);t.initPredicatesSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=o.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(n({validator:"resource",params:{pool:"item"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:o.Opt(r.Range()),durability:o.Opt(r.Range()),potion:o.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:o.Opt(r.Range())},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(n({validator:"resource",params:{pool:"block"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(n(),a,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(n(),a))},{context:"fluid"})),e.register("location_predicate",o.ObjectNode({position:o.Opt(o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range())})),biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:o.Opt(n({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:o.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:o.Opt(o.ObjectNode({light:o.Opt(r.Range({integer:!0,min:0,max:15}))})),smokey:o.Opt(o.BooleanNode()),block:o.Opt(i("block_predicate")),fluid:o.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r.Range(),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(n({enum:"gamemode"})),level:o.Opt(r.Range()),advancements:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(n(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:o.Opt(r.Range()),duration:o.Opt(r.Range()),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range()),absolute:o.Opt(r.Range()),horizontal:o.Opt(r.Range())},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(n({validator:"team"})),location:o.Opt(i("location_predicate")),distance:o.Opt(i("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),player:o.Opt(i("player_predicate")),fishing_hook:o.Opt(o.ObjectNode({in_open_water:o.Opt(o.BooleanNode())})),effects:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),direct_entity:o.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:o.Opt(r.Range()),taken:o.Opt(r.Range()),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),type:o.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:o.Opt(r()),font:o.Opt(r()),bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component")),contents:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:o.Opt(o.ObjectNode({id:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.NumberNode({integer:!0})),tag:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())})),contents:o.Opt(o.Mod(o.ObjectNode({name:o.Opt(i("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const o=i(60),r=i(61),n=i(20),a=i(62),s=i(63),c=i(13),d=i(64),l=i(65),m=i(66);t.initWorldgenSchemas=function(e,t){o.initBiomeSchemas(e,t),r.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),c.initProcessorListSchemas(e,t),d.initStructureFeatureSchemas(e,t),l.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const o=i(0);t.initBiomeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("biome",o.Mod(o.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:o.NumberNode(),scale:o.NumberNode(),temperature:o.NumberNode(),downfall:o.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:o.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:o.Opt(o.BooleanNode()),creature_spawn_probability:o.Opt(o.NumberNode({min:0,max:1})),effects:o.ObjectNode({sky_color:o.NumberNode({color:!0}),fog_color:o.NumberNode({color:!0}),water_color:o.NumberNode({color:!0}),water_fog_color:o.NumberNode({color:!0}),grass_color:o.Opt(o.NumberNode({color:!0})),foliage_color:o.Opt(o.NumberNode({color:!0})),grass_color_modifier:o.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:o.Opt(i()),mood_sound:o.Opt(o.ObjectNode({sound:i(),tick_delay:o.NumberNode({integer:!0}),block_search_extent:o.NumberNode({integer:!0}),offset:o.NumberNode()})),additions_sound:o.Opt(o.ObjectNode({sound:i(),tick_chance:o.NumberNode({min:0,max:1})})),music:o.Opt(o.ObjectNode({sound:i(),min_delay:o.NumberNode({integer:!0,min:0}),max_delay:o.NumberNode({integer:!0,min:0}),replace_current_music:o.BooleanNode()})),particle:o.Opt(o.ObjectNode({options:o.ObjectNode({type:i()}),probability:o.NumberNode({min:0,max:1})}))}),starts:o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:o.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),o.Mod(o.ListNode(o.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:o.NumberNode({integer:!0}),minCount:o.NumberNode({integer:!0}),maxCount:o.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:o.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),o.Mod(o.ObjectNode({energy_budget:o.NumberNode(),charge:o.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:o.MapNode(i({enum:["air","liquid"]}),o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:o.ListNode(o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCarverSchemas=void 0;const o=i(0);t.initCarverSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("configured_carver",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:o.ObjectNode({probability:o.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const o=i(0),r=i(3);i(20),i(13),t.initFeatureSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a={can_replace:o.BooleanNode(),project:o.BooleanNode(),need_water:o.BooleanNode(),xspread:o.NumberNode({integer:!0}),yspread:o.NumberNode({integer:!0}),zspread:o.NumberNode({integer:!0}),tries:o.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:o.ListNode(i("block_state")),blacklist:o.ListNode(i("block_state"))},s={state:i("block_state"),radius:r.UniformInt({min:0,max:4,maxSpread:4}),half_height:o.NumberNode({integer:!0,min:0,max:4}),targets:o.ListNode(i("block_state"))},c={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:o.NumberNode({integer:!0})},d={state:i("block_state"),size:o.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},l={count:r.UniformInt({min:-10,max:128,maxSpread:128})},m=o.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:o.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:r.UniformInt({min:0,max:2,maxSpread:1}),height:r.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:m},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:m},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:r.UniformInt({min:0,max:8,maxSpread:8}),rim_size:r.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":s,"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:o.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:o.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:o.ListNode(o.ObjectNode({centerX:o.NumberNode({integer:!0}),centerZ:o.NumberNode({integer:!0}),radius:o.NumberNode({integer:!0}),height:o.NumberNode({integer:!0}),guarded:o.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:o.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:huge_brown_mushroom":c,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.BooleanNode()},"minecraft:huge_red_mushroom":c,"minecraft:ice_patch":s,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:r.UniformInt()},"minecraft:no_surface_ore":d,"minecraft:ore":d,"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:m,feature_true:m},"minecraft:random_selector":{features:o.ListNode(o.ObjectNode({chance:o.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:sea_pickle":l,"minecraft:seagrass":{probability:o.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:o.ListNode(i("block_state")),place_in:o.ListNode(i("block_state")),place_under:o.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:o.ListNode(m)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:o.NumberNode({integer:!0}),hole_count:o.NumberNode({integer:!0}),requires_block_below:o.BooleanNode(),valid_blocks:o.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:o.NumberNode({integer:!0}),ignore_vines:o.BooleanNode(),heightmap:n({enum:"heightmap_type"}),minimum_size:i("feature_size"),trunk_provider:i("block_state_provider"),leaves_provider:i("block_state_provider"),trunk_placer:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:o.NumberNode({integer:!0,min:0,max:32}),height_rand_a:o.NumberNode({integer:!0,min:0,max:24}),height_rand_b:o.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:r.UniformInt({min:0,max:8,maxSpread:8}),offset:r.UniformInt({min:0,max:8,maxSpread:8}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:r.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:o.ListNode(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:o.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:o.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:o.Opt(o.NumberNode({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:81})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),upper_limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),middle_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:o.ListNode(o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:column_placer":{min_size:o.NumberNode({integer:!0}),extra_size:o.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const o=i(0),r=i(3);t.initNoiseSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("noise_settings",o.Mod(o.ObjectNode({name:o.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:o.NumberNode({integer:!0}),bedrock_floor_position:o.NumberNode({integer:!0}),sea_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:o.ObjectNode({height:o.NumberNode({integer:!0}),density_factor:o.NumberNode(),density_offset:o.NumberNode(),size_horizontal:o.NumberNode({integer:!0}),size_vertical:o.NumberNode({integer:!0}),simplex_surface_noise:o.BooleanNode(),random_density_offset:o.Opt(o.BooleanNode()),island_noise_override:o.Opt(o.BooleanNode()),amplified:o.Opt(o.BooleanNode()),sampling:o.ObjectNode({xz_scale:o.NumberNode(),y_scale:o.NumberNode(),xz_factor:o.NumberNode(),y_factor:o.NumberNode()}),bottom_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>r.DefaultNoiseSettings})),e.register("generator_structures",o.ObjectNode({stronghold:o.Opt(o.ObjectNode({distance:o.NumberNode({integer:!0,min:0,max:1023}),spread:o.NumberNode({integer:!0,min:0,max:1023}),count:o.NumberNode({integer:!0,min:1,max:4095})})),structures:o.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),o.Mod(o.ObjectNode({spacing:o.NumberNode({integer:!0,min:0,max:4096}),separation:o.Mod(o.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,o,r)=>(t.pop().push("spacing").get()<=i&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,i,o,r))})),salt:o.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",o.Mod(o.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:o.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initStructureFeatureSchemas=void 0;const o=i(0);t.initStructureFeatureSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:o.NumberNode({integer:!0})};e.register("configured_structure_feature",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:o.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:o.NumberNode({min:0,max:1}),cluster_probability:o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.BooleanNode()},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSurfaceBuilderSchemas=void 0;const o=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=o.Reference.bind(void 0,e);e.register("configured_surface_builder",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:o.ObjectNode({top_material:r("block_state"),under_material:r("block_state"),underwater_material:r("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTemplatePoolSchemas=void 0;const o=i(0);i(13),t.initTemplatePoolSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",o.Mod(o.ObjectNode({name:r(),fallback:r(),elements:o.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",o.Mod(o.ObjectNode({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[o.Switch]:[{push:"element_type"}],[o.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:n},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:n},"minecraft:list_pool_element":{elements:o.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:n}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldSettingsSchemas=void 0;const o=i(0);t.initWorldSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("world_settings",o.Mod(o.ObjectNode({generate_features:o.BooleanNode(),bonus_chest:o.BooleanNode(),seed:o.NumberNode({integer:!0}),dimensions:o.MapNode(r({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(70),r=i(4),n=i(71),a=i(72),s=i(73),c=i(74),d=i(75),l=i(76),m=i(77),p=i(78),u=i(79),_=i(80),f=i(81),g=i(89);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initItemModifierSchemas(e,t),d.initLootTableSchemas(e,t),l.initPackMcmetaSchemas(e,t),m.initPredicatesSchemas(e,t),p.initRecipeSchemas(e,t),u.initTagsSchemas(e,t),_.initTextComponentSchemas(e,t),f.initWorldgenSchemas(e,t),g.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"object",node:o.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:o.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(r()),frame:o.Opt(r({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(r({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(r(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(r()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(r({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({player:o.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:o.Opt(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(r({validator:"resource",params:{pool:"$dimension"}})),to:o.Opt(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(n))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"mob_effect"}}),o.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")})))},"minecraft:enter_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:o.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:o.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:o.Opt(o.ListNode(n))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:location":{location:o.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:o.Opt(i("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:o.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:n},"minecraft:tame_animal":{entity:n},"minecraft:target_hit":{projectile:n,shooter:n,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(4);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionSchemas=void 0;const o=i(0),r=i(4);t.initDimensionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=e=>o.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",o.Mod(o.ObjectNode({type:r.DimensionTypePresets(i("dimension_type")),generator:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:o.Opt(n({enum:["nether"]})),altitude_noise:a(i("generator_biome_noise")),temperature_noise:a(i("generator_biome_noise")),humidity_noise:a(i("generator_biome_noise")),weirdness_noise:a(i("generator_biome_noise")),biomes:a(o.Mod(o.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:o.Opt(o.NumberNode({integer:!0,min:0,max:62})),biomes:o.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:r.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:o.ObjectNode({biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:o.Opt(o.BooleanNode()),features:o.Opt(o.BooleanNode()),layers:o.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",o.Mod(o.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:o.ObjectNode({altitude:o.NumberNode({min:-1,max:1}),temperature:o.NumberNode({min:-1,max:1}),humidity:o.NumberNode({min:-1,max:1}),weirdness:o.NumberNode({min:-1,max:1}),offset:o.NumberNode({min:-1,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",o.Mod(o.ObjectNode({firstOctave:o.NumberNode({integer:!0}),amplitudes:o.ListNode(o.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionTypeSchemas=void 0;const o=i(0),r=i(4);t.initDimensionTypeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("dimension_type",o.Mod(o.ObjectNode({name:o.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:o.BooleanNode(),natural:o.BooleanNode(),piglin_safe:o.BooleanNode(),respawn_anchor_works:o.BooleanNode(),bed_works:o.BooleanNode(),has_raids:o.BooleanNode(),has_skylight:o.BooleanNode(),has_ceiling:o.BooleanNode(),coordinate_scale:o.NumberNode({min:1e-5,max:3e7}),ambient_light:o.NumberNode(),fixed_time:o.Opt(o.NumberNode({integer:!0})),logical_height:o.NumberNode({integer:!0,min:0,max:4096}),effects:o.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:o.NumberNode({integer:!0,min:-2048,max:2047}),height:o.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),e=>({default:()=>r.DefaultDimensionType,validate:(t,i,o,r)=>((null==(i=e.validate(t,i,o,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),i)})))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initItemModifierSchemas=void 0;const o=i(0),r=i(4);t.initItemModifierSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("item_modifier",o.ObjectOrList(i("function"),{choiceContext:"function"}));const a={conditions:o.Opt(o.ListNode(i("condition")))};e.register("function",o.Mod(o.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[o.Switch]:[{push:"function"}],[o.Case]:r.FunctionCases(a)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(21),n=i(4);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:i("number_provider"),bonus_rolls:o.Opt(i("number_provider")),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:n.FunctionCases(s,u,p)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:n.ConditionCases(p)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:i("number_provider"),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=void 0;const o=i(0);t.initPredicatesSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"string",node:r(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:o.Opt(r({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(r({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(r({validator:"resource",params:{pool:"block"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(r(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(r({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(r(),n))},{context:"fluid"})),e.register("location_predicate",o.ObjectNode({position:o.Opt(o.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:o.Opt(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:o.Opt(r({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:o.Opt(r({validator:"resource",params:{pool:"$dimension"}})),light:o.Opt(o.ObjectNode({light:i("int_bounds")})),smokey:o.Opt(o.BooleanNode()),block:o.Opt(i("block_predicate")),fluid:o.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:i("int_bounds"),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(r({enum:"gamemode"})),level:i("int_bounds"),advancements:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(r(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(r({validator:"team"})),location:o.Opt(i("location_predicate")),distance:o.Opt(i("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(r({enum:"slot"}),i("item_predicate"))),vehicle:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),player:o.Opt(i("player_predicate")),fishing_hook:o.Opt(o.ObjectNode({in_open_water:o.Opt(o.BooleanNode())})),effects:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),direct_entity:o.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),type:o.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("game_event_tag",r("game_event")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:o.Opt(r()),font:o.Opt(r()),bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component")),contents:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:o.Opt(o.ObjectNode({id:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.NumberNode({integer:!0})),tag:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())})),contents:o.Opt(o.Mod(o.ObjectNode({name:o.Opt(i("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const o=i(82),r=i(83),n=i(22),a=i(84),s=i(85),c=i(9),d=i(86),l=i(87),m=i(88);t.initWorldgenSchemas=function(e,t){c.initProcessorListSchemas(e,t),o.initBiomeSchemas(e,t),r.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),d.initStructureFeatureSchemas(e,t),l.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const o=i(0);t.initBiomeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("biome",o.Mod(o.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:o.NumberNode(),scale:o.NumberNode(),temperature:o.NumberNode(),downfall:o.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:o.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:o.Opt(o.BooleanNode()),creature_spawn_probability:o.Opt(o.NumberNode({min:0,max:1})),effects:o.ObjectNode({sky_color:o.NumberNode({color:!0}),fog_color:o.NumberNode({color:!0}),water_color:o.NumberNode({color:!0}),water_fog_color:o.NumberNode({color:!0}),grass_color:o.Opt(o.NumberNode({color:!0})),foliage_color:o.Opt(o.NumberNode({color:!0})),grass_color_modifier:o.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:o.Opt(i()),mood_sound:o.Opt(o.ObjectNode({sound:i(),tick_delay:o.NumberNode({integer:!0}),block_search_extent:o.NumberNode({integer:!0}),offset:o.NumberNode()})),additions_sound:o.Opt(o.ObjectNode({sound:i(),tick_chance:o.NumberNode({min:0,max:1})})),music:o.Opt(o.ObjectNode({sound:i(),min_delay:o.NumberNode({integer:!0,min:0}),max_delay:o.NumberNode({integer:!0,min:0}),replace_current_music:o.BooleanNode()})),particle:o.Opt(o.ObjectNode({options:o.ObjectNode({type:i()}),probability:o.NumberNode({min:0,max:1})}))}),starts:o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:o.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),o.Mod(o.ListNode(o.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:o.NumberNode({integer:!0}),minCount:o.NumberNode({integer:!0}),maxCount:o.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:o.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),o.Mod(o.ObjectNode({energy_budget:o.NumberNode(),charge:o.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:o.MapNode(i({enum:["air","liquid"]}),o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:o.ListNode(o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCarverSchemas=void 0;const o=i(0),r=i(4);t.initCarverSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("configured_carver",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:o.ObjectNode({probability:o.NumberNode({min:0,max:1}),debug_settings:o.Opt(o.ObjectNode({debug_mode:o.Opt(o.BooleanNode()),air_state:o.Opt(i("block_state"))})),[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:canyon":{bottom_inclusive:i("vertical_anchor"),top_inclusive:i("vertical_anchor"),y_scale:r.UniformInt(),distanceFactor:r.FloatProvider({min:0,max:1}),vertical_rotation:r.FloatProvider(),thickness:r.FloatProvider(),width_smoothness:o.NumberNode({integer:!0,min:0}),horizontal_radius_factor:r.FloatProvider(),vertical_radius_default_factor:o.NumberNode(),vertical_radius_center_factor:o.NumberNode()}}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const o=i(0),r=i(4);i(22),i(9);const n=i(9);t.initFeatureSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={can_replace:o.BooleanNode(),project:o.BooleanNode(),need_water:o.BooleanNode(),xspread:o.NumberNode({integer:!0}),yspread:o.NumberNode({integer:!0}),zspread:o.NumberNode({integer:!0}),tries:o.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:o.ListNode(i("block_state")),blacklist:o.ListNode(i("block_state"))},c={state:i("block_state"),radius:r.UniformInt({min:0,max:4,maxSpread:4}),half_height:o.NumberNode({integer:!0,min:0,max:4}),targets:o.ListNode(i("block_state"))},d={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:o.NumberNode({integer:!0})},l={size:o.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:o.NumberNode({min:0,max:1}),targets:o.ListNode(o.ObjectNode({target:i("rule_test"),state:i("block_state")}))},m={count:r.UniformInt({min:-10,max:128,maxSpread:128})},p=o.ChoiceNode([{type:"string",node:a({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),u={surface:a({enum:["floor","ceiling"]}),depth:r.UniformInt({min:1,max:64,maxSpread:64}),vertical_range:o.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:o.NumberNode({min:0,max:1}),extra_edge_column_chance:o.NumberNode({min:0,max:1}),vegetation_chance:o.NumberNode({min:0,max:1}),xz_radius:r.UniformInt(),replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:p};e.register("configured_feature",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:o.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:r.UniformInt({min:0,max:2,maxSpread:1}),height:r.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:p},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:p},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:r.UniformInt({min:0,max:8,maxSpread:8}),rim_size:r.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":c,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:o.NumberNode({integer:!0,min:1,max:512}),height:r.UniformInt({min:1,max:64,maxSpread:64}),radius:r.UniformInt({min:1,max:64,maxSpread:64}),max_stalagmite_stalactite_height_diff:o.NumberNode({integer:!0,min:0,max:64}),height_deviation:o.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:r.UniformInt({min:0,max:64,maxSpread:64}),density:r.FloatProvider({min:0,max:2}),wetness:r.FloatProvider({min:0,max:2}),wetness_mean:o.NumberNode({min:0,max:1}),wetness_deviation:o.NumberNode({min:0,max:1}),chance_of_dripstone_column_at_max_distance_from_center:o.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:o.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:o.NumberNode({integer:!0,min:1,max:64})},"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:o.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:o.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:o.ListNode(o.ObjectNode({centerX:o.NumberNode({integer:!0}),centerZ:o.NumberNode({integer:!0}),radius:o.NumberNode({integer:!0}),height:o.NumberNode({integer:!0}),guarded:o.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:o.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":s,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:o.NumberNode({integer:!0,min:0,max:7}),fossil_structures:o.ListNode(a({validator:"resource",params:{pool:"$structure"}})),overlay_structures:o.ListNode(a({validator:"resource",params:{pool:"$structure"}})),fossil_processors:n.Processors,overlay_processors:n.Processors},"minecraft:geode":{blocks:o.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:o.ListNode(i("block_state"))}),layers:o.ObjectNode({filling:o.Opt(o.NumberNode({min:.01,max:50})),inner_layer:o.Opt(o.NumberNode({min:.01,max:50})),middle_layer:o.Opt(o.NumberNode({min:.01,max:50})),outer_layer:o.Opt(o.NumberNode({min:.01,max:50}))}),crack:o.ObjectNode({generate_crack_chance:o.Opt(o.NumberNode({min:0,max:1})),base_crack_size:o.Opt(o.NumberNode({min:0,max:5})),crack_point_offset:o.Opt(o.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:o.Opt(o.NumberNode({min:0,max:1})),use_potential_placements_chance:o.Opt(o.NumberNode({min:0,max:1})),use_alternate_layer0_chance:o.Opt(o.NumberNode({min:0,max:1})),placements_require_layer0_alternate:o.Opt(o.BooleanNode()),min_outer_wall_distance:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_outer_wall_distance:o.Opt(o.NumberNode({min:1,max:20,integer:!0})),min_distribution_points:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_distribution_points:o.Opt(o.NumberNode({min:1,max:20,integer:!0})),min_point_offset:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_point_offset:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),min_gen_offset:o.Opt(o.NumberNode({integer:!0})),max_gen_offset:o.Opt(o.NumberNode({integer:!0})),invalid_blocks_threshold:o.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:o.Opt(o.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:o.Opt(o.NumberNode({min:0,max:1})),can_place_on_floor:o.Opt(o.BooleanNode()),can_place_on_ceiling:o.Opt(o.BooleanNode()),can_place_on_wall:o.Opt(o.BooleanNode()),can_be_placed_on:o.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:a({enum:["up","down","north","east","south","west"]}),allow_water:o.BooleanNode(),height_distribution:o.ListNode(o.ObjectNode({weight:o.NumberNode({integer:!0}),data:r.UniformInt()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":d,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.BooleanNode()},"minecraft:huge_red_mushroom":d,"minecraft:ice_patch":c,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:o.Opt(o.NumberNode({integer:!0,min:1,max:512})),column_radius:r.UniformInt({min:1,max:30,maxSpread:30}),height_scale:r.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:o.NumberNode({min:0,max:1}),stalactite_bluntness:r.FloatProvider({min:.1,max:10}),stalagmite_bluntness:r.FloatProvider({min:.1,max:10}),wind_speed:r.FloatProvider({min:0,max:2}),min_radius_for_wind:o.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:o.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:r.UniformInt()},"minecraft:ore":l,"minecraft:random_patch":s,"minecraft:random_boolean_selector":{feature_false:p,feature_true:p},"minecraft:random_selector":{features:o.ListNode(o.ObjectNode({chance:o.NumberNode({min:0,max:1}),feature:p})),default:p},"minecraft:root_system":{required_vertical_space_for_tree:o.NumberNode({integer:!0,min:1,max:64}),root_radius:o.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:o.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:o.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:o.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:o.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:o.NumberNode({integer:!0,min:0,max:256}),root_replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),feature:p},"minecraft:scattered_ore":l,"minecraft:sea_pickle":m,"minecraft:seagrass":{probability:o.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:o.ListNode(i("block_state")),place_in:o.ListNode(i("block_state")),place_under:o.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:o.ListNode(p)},"minecraft:small_dripstone":{max_placements:o.NumberNode({integer:!0,min:0,max:100}),empty_space_search_radius:o.NumberNode({integer:!0,min:0,max:20}),max_offset_from_origin:o.NumberNode({integer:!0,min:0,max:20}),chance_of_taller_dripstone:o.Opt(o.NumberNode({integer:!0,min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:o.NumberNode({integer:!0}),hole_count:o.NumberNode({integer:!0}),requires_block_below:o.BooleanNode(),valid_blocks:o.ListNode(a({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:o.Opt(o.BooleanNode()),force_dirt:o.Opt(o.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:o.NumberNode({integer:!0,min:0,max:32}),height_rand_a:o.NumberNode({integer:!0,min:0,max:24}),height_rand_b:o.NumberNode({integer:!0,min:0,max:24}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:bending_trunk_placer":{bend_length:r.UniformInt({min:1,max:32,maxSpread:32}),min_height_for_leaves:o.Opt(o.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:r.UniformInt({min:0,max:8,maxSpread:8}),offset:r.UniformInt({min:0,max:8,maxSpread:8}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:random_spread_foliage_placer":{foliage_height:r.UniformInt({min:1,max:256,maxSpread:256}),leaf_placement_attempts:o.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:r.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:o.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:o.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:o.Opt(o.NumberNode({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:81})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),upper_limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),middle_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:randomized_int_state_provider":{property:a(),values:r.UniformInt(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:o.ListNode(o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:column_placer":{min_size:o.NumberNode({integer:!0}),extra_size:o.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const o=i(0),r=i(4);t.initNoiseSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("noise_settings",o.Mod(o.ObjectNode({name:o.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:o.NumberNode({integer:!0}),bedrock_floor_position:o.NumberNode({integer:!0}),sea_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),noise_caves_enabled:o.BooleanNode(),aquifers_enabled:o.BooleanNode(),deepslate_enabled:o.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:o.ObjectNode({min_y:o.NumberNode({integer:!0,min:-2048,max:2047}),height:o.NumberNode({integer:!0,min:0,max:4096}),density_factor:o.NumberNode(),density_offset:o.NumberNode(),size_horizontal:o.NumberNode({integer:!0}),size_vertical:o.NumberNode({integer:!0}),simplex_surface_noise:o.BooleanNode(),random_density_offset:o.Opt(o.BooleanNode()),island_noise_override:o.Opt(o.BooleanNode()),amplified:o.Opt(o.BooleanNode()),sampling:o.ObjectNode({xz_scale:o.NumberNode(),y_scale:o.NumberNode(),xz_factor:o.NumberNode(),y_factor:o.NumberNode()}),bottom_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),e=>({default:()=>r.DefaultNoiseSettings,validate:(t,i,o,r)=>{var n,a,s,c;return(null===(n=null==(i=e.validate(t,i,o,r))?void 0:i.noise)||void 0===n?void 0:n.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}}))),e.register("generator_structures",o.ObjectNode({stronghold:o.Opt(o.ObjectNode({distance:o.NumberNode({integer:!0,min:0,max:1023}),spread:o.NumberNode({integer:!0,min:0,max:1023}),count:o.NumberNode({integer:!0,min:1,max:4095})})),structures:o.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),o.Mod(o.ObjectNode({spacing:o.NumberNode({integer:!0,min:0,max:4096}),separation:o.Mod(o.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,o,r)=>(t.pop().push("spacing").get()<=i&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,i,o,r))})),salt:o.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",o.Mod(o.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:o.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initStructureFeatureSchemas=void 0;const o=i(0);t.initStructureFeatureSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:o.NumberNode({integer:!0})};e.register("configured_structure_feature",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:o.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:o.NumberNode({min:0,max:1}),cluster_probability:o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.BooleanNode()},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSurfaceBuilderSchemas=void 0;const o=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=o.Reference.bind(void 0,e);e.register("configured_surface_builder",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:o.ObjectNode({top_material:r("block_state"),under_material:r("block_state"),underwater_material:r("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTemplatePoolSchemas=void 0;const o=i(0);i(9);const r=i(9);t.initTemplatePoolSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("template_pool",o.Mod(o.ObjectNode({name:n(),fallback:n(),elements:o.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",o.Mod(o.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[o.Switch]:[{push:"element_type"}],[o.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:r.Processors},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r.Processors},"minecraft:list_pool_element":{elements:o.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldSettingsSchemas=void 0;const o=i(0);t.initWorldSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("world_settings",o.Mod(o.ObjectNode({generate_features:o.BooleanNode(),bonus_chest:o.BooleanNode(),seed:o.NumberNode({integer:!0}),dimensions:o.MapNode(r({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))}},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t,i=this,o=(t=4022871197,function(e){e=String(e);for(var i=0;i>>0,t=(o*=t)>>>0,t+=4294967296*(o-=t)}return 2.3283064365386963e-10*(t>>>0)});i.next=function(){var e=2091639*i.s0+2.3283064365386963e-10*i.c;return i.s0=i.s1,i.s1=i.s2,i.s2=e-(i.c=0|e)},i.c=1,i.s0=o(" "),i.s1=o(" "),i.s2=o(" "),i.s0-=o(e),i.s0<0&&(i.s0+=1),i.s1-=o(e),i.s1<0&&(i.s1+=1),i.s2-=o(e),i.s2<0&&(i.s2+=1),o=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function c(e,t){var i=new a(e),o=t&&t.state,r=i.next;return r.int32=function(){return 4294967296*i.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.alea=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:i+=e;for(var o=0;o>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xor128=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:i+=e;for(var o=0;o>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function c(e,t){var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xorwow=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this;t.next=function(){var e,i,o=t.x,r=t.i;return e=o[r],i=(e^=e>>>7)^e<<24,i^=(e=o[r+1&7])^e>>>10,i^=(e=o[r+3&7])^e>>>3,i^=(e=o[r+4&7])^e<<7,e=o[r+7&7],i^=(e^=e<<13)^e<<9,o[r]=i,t.i=r+1&7,i},function(e,t){var i,o=[];if(t===(0|t))o[0]=t;else for(t=""+t,i=0;i0;--i)e.next()}(t,e)}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function c(e,t){null==e&&(e=+new Date);var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&(o.x&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xorshift7=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this;t.next=function(){var e,i,o=t.w,r=t.X,n=t.i;return t.w=o=o+1640531527|0,i=r[n+34&127],e=r[n=n+1&127],i^=i<<13,e^=e<<17,i^=i>>>15,e^=e>>>12,i=r[n]=i^e,t.i=n,i+(o^o>>>16)|0},function(e,t){var i,o,r,n,a,s=[],c=128;for(t===(0|t)?(o=t,t=null):(t+="\0",o=0,c=Math.max(c,t.length)),r=0,n=-32;n>>15,o^=o<<4,o^=o>>>13,n>=0&&(a=a+1640531527|0,r=0==(i=s[127&n]^=o+a)?r+1:0);for(r>=128&&(s[127&(t&&t.length||0)]=-1),r=127,n=512;n>0;--n)o=s[r+34&127],i=s[r=r+1&127],o^=o<<13,i^=i<<17,o^=o>>>15,i^=i>>>12,s[r]=o^i;e.w=a,e.X=s,e.i=r}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function c(e,t){null==e&&(e=+new Date);var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&(o.X&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xor4096=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.next=function(){var e=t.b,i=t.c,o=t.d,r=t.a;return e=e<<25^e>>>7^i,i=i-o|0,o=o<<24^o>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^i,t.c=i=i-o|0,t.d=o<<16^i>>>16^r,t.a=r-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):i+=e;for(var o=0;o>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.tychei=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){var o;!function(r,n,a){var s,c=a.pow(256,6),d=a.pow(2,52),l=2*d;function m(e,t,i){var o=[],m=_(function e(t,i){var o,r=[],n=typeof t;if(i&&"object"==n)for(o in t)try{r.push(e(t[o],i-1))}catch(e){}return r.length?r:"string"==n?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,f(n)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),f(e)}catch(e){var t=r.navigator,i=t&&t.plugins;return[+new Date,r,i,r.screen,f(n)]}}():e,3),o),g=new p(o),h=function(){for(var e=g.g(6),t=c,i=0;e=l;)e/=2,t/=2,i>>>=1;return(e+i)/t};return h.int32=function(){return 0|g.g(4)},h.quick=function(){return g.g(4)/4294967296},h.double=h,_(f(g.S),n),(t.pass||i||function(e,t,i,o){return o&&(o.S&&u(o,g),e.state=function(){return u(g,{})}),i?(a.random=e,t):e})(h,m,"global"in t?t.global:this==a,t.state)}function p(e){var t,i=e.length,o=this,r=0,n=o.i=o.j=0,a=o.S=[];for(i||(e=[i++]);r<256;)a[r]=r++;for(r=0;r<256;r++)a[r]=a[n=255&n+e[r%i]+(t=a[r])],a[n]=t;(o.g=function(e){for(var t,i=0,r=o.i,n=o.j,a=o.S;e--;)t=a[r=255&r+1],i=256*i+a[255&(a[r]=a[n=255&n+t])+(a[n]=t)];return o.i=r,o.j=n,i})(256)}function u(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function _(e,t){for(var i,o=e+"",r=0;r("0"+e.toString(16)).substr(-2);function c(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,s).join("")}function d(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function l(e){const t=Math.abs(function(e){let t=0;for(let i=0;i>8)%256,(t>>16)%256]}function m(e,t,i){return Math.max(e,Math.min(t,i))}function p(e,t,i){return i<0?e:i>1?t:u(i,e,t)}function u(e,t,i){return t+e*(i-t)}function _(e,t,i,o,r,n){return u(t,u(e,i,o),u(e,r,n))}function f(e){return e*e*e*(e*(6*e-15)+10)}class g{constructor(e){this.value=e,this.watchers=[]}set(e){if(this.value===e)return;const t=this.value;this.value=e,this.watchers.forEach(e=>e.watcher(this.value,t))}get(){return this.value}watchRun(e,t){return e(this.value,null),this.watch(e,t)}watch(e,t){t=null!=t?t:c();const i=this.watchers.find(e=>e.name===t);return i?i.watcher=e:this.watchers.push({name:t,watcher:e}),this}}class h extends g{constructor(e,t){var i;super(null!==(i=localStorage.getItem(e))&&void 0!==i?i:t),this.id=e}set(e){super.set(e),localStorage.setItem(this.id,e)}get(){return this.value}}var b=i(1),v=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};["1.15","1.16","1.17"].forEach(e=>localStorage.removeItem("cache_"+e));const y="https://raw.githubusercontent.com/Arcensoth/mcdata",N="https://raw.githubusercontent.com/SPGoding/vanilla-datapack",w=[{id:"mcdata_master",hash:"a6bd46e069d99e9b4c0729f120299e7785c8db3e",url:y},{id:"vanilla_datapack_summary",hash:"028371e07ecc554af8c3a5d816ef2ea9d96492fe",url:N}];function O(e,t){return v(this,void 0,void 0,(function*(){const i=b.versions.find(e=>e.id===t);i&&(i.dynamic&&(yield Promise.all(w.filter(e=>localStorage.getItem("cached_"+e.id)!==e.hash).map(e=>v(this,void 0,void 0,(function*(){yield function(e){return v(this,void 0,void 0,(function*(){const t=yield caches.open("misode-v1"),i=[];for(const o of yield t.keys())e(o.url)&&i.push(t.delete(o));return(yield Promise.all(i)).length>0}))}(t=>t.startsWith(`${e.url}/${i.refs[e.id]}`)),localStorage.setItem("cached_"+e.id,e.hash)}))))),yield Promise.all([k(i,e),x(i),j(i,e)]))}))}function k(e,t){return v(this,void 0,void 0,(function*(){const i=b.registries.filter(e=>!e.dynamic).filter(t=>fe(e.id,t.minVersion,t.maxVersion));if(!fe(e.id,void 0,"1.15"))return Promise.all(i.map(i=>v(this,void 0,void 0,(function*(){try{const o=i.path?`${y}/${e.refs.mcdata_master}/${i.path}/data.min.json`:`${y}/${e.refs.mcdata_master}/processed/reports/registries/${i.id}/data.min.json`;t.register(i.id,yield S(o,e=>e.values))}catch(e){console.warn(`Error occurred while registry ${i.id}:`,e)}}))));{const o=`${y}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=yield S(o,e=>{const t={};return Object.keys(e).forEach(i=>{t[i.slice(10)]=Object.keys(e[i].entries)}),t});i.forEach(i=>{var o;t.register(i.id,null!==(o=e[i.id])&&void 0!==o?o:[])})}catch(e){console.warn("Error occurred while fetching registries:",e)}}}))}function x(e){return v(this,void 0,void 0,(function*(){if(fe(e.id,void 0,"1.16")){const t=fe(e.id,void 0,"1.15")?`${y}/${e.refs.mcdata_master}/generated/reports/blocks.json`:`${y}/${e.refs.mcdata_master}/processed/reports/blocks/data.min.json`;try{const e=yield S(t,e=>{const t={};return Object.keys(e).forEach(i=>{t[i]={properties:e[i].properties,default:e[i].states.find(e=>e.default).properties}}),t});ue.blockStateRegistry=e}catch(e){console.warn("Error occurred while fetching block state map:",e)}}else{const t=`${y}/${e.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;try{ue.blockStateRegistry=yield S(t)}catch(e){console.warn("Error occurred while fetching block state map:",e)}}}))}function j(e,t){return v(this,void 0,void 0,(function*(){const i=b.registries.filter(e=>e.dynamic).filter(t=>fe(e.id,t.minVersion,t.maxVersion));if(fe(e.id,"1.16")){const o=`${N}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=yield S(o);i.forEach(i=>{t.register(i.id,e[i.id])})}catch(e){console.warn("Error occurred while fetching dynamic registries:",e)}}}))}function S(e,t=(e=>e)){return v(this,void 0,void 0,(function*(){const i=yield caches.open("misode-v1"),o=yield i.match(e);if(o&&o.ok)return yield o.json();const r=yield fetch(e),n=t(yield r.json());return yield i.put(e,new Response(JSON.stringify(n))),n}))}const M={archive:'',arrow_both:'',arrow_left:'',arrow_right:'',chevron_down:'',chevron_right:'',clippy:'',code:'',dash:'',download:'',eye:'',eye_closed:'',fold:'',gear:'',globe:'',history:'',info:'',issue_opened:'',kebab_horizontal:'',link:'',mark_github:'',moon:'',note:'',package:'',play:'',plus:'',plus_circle:'',search:'',square:'',square_fill:'',sun:'',tag:'',trashcan:'',three_bars:'',unfold:'',x:''};var C=i(10),z=i.n(C);class L{constructor(e){this.xo=256*e(),this.yo=256*e(),this.zo=256*e(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let t=0;t<256;t+=1){const i=e.int32()%(256-t),o=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=o}}noise(e,t,i,o,r){const n=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(n),d=Math.floor(a),l=Math.floor(s),m=n-c,p=a-d,u=s-l,_=f(m),g=f(p),h=f(u);let b=0;return 0!==o&&(b=Math.floor(Math.min(r,p)/o)*o),this.sampleAndLerp(c,d,l,m,p-b,u,_,g,h)}gradDot(e,t,i,o){const r=L.GRADIENT[15&e];return r[0]*t+r[1]*i+r[2]*o}P(e){return 255&this.p[255&e]}sampleAndLerp(e,t,i,o,r,n,a,s,c){const d=this.P(e)+t,l=this.P(d)+i,m=this.P(d+1)+i,p=this.P(e+1)+t,f=this.P(p)+i,g=this.P(p+1)+i;return function(e,t,i,o,r,n,a,s,c,d,l){return u(i,_(e,t,o,r,n,a),_(e,t,s,c,d,l))}(a,s,c,this.gradDot(this.P(l),o,r,n),this.gradDot(this.P(f),o-1,r,n),this.gradDot(this.P(m),o,r-1,n),this.gradDot(this.P(g),o-1,r-1,n),this.gradDot(this.P(l+1),o,r,n-1),this.gradDot(this.P(f+1),o-1,r,n-1),this.gradDot(this.P(m+1),o,r-1,n-1),this.gradDot(this.P(g+1),o-1,r-1,n-1))}}L.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]];class ${constructor(e,t,i){this.amplitudes=i,this.noiseLevels=Array(this.amplitudes.length);for(let t=0;t{}}dirty(e){return JSON.stringify(this.state)!==JSON.stringify(e.get())}menu(e,t){return""}onDrag(e,t){}}class A extends B{constructor(){var e;super(),this.offsetX=0,this.offsetY=0,this.seed=c(),this.viewScale=new g(0),this.biomeColors=new g({}),this.biomeColors.set(JSON.parse(null!==(e=localStorage.getItem("biome_colors"))&&void 0!==e?e:"{}")),this.noise=[],this.biomeColors.watch(()=>this.redraw())}getName(){return"biome-noise"}active(e){return e.endsWith(new o.Path(["generator","biome_source"]))&&"minecraft:multi_noise"===e.push("type").get()}menu(e,t){return`\n
\n
\n ${M.plus}\n
\n
\n ${M.dash}\n
`}getSize(){return[200,100]}draw(e,t){var i;this.noise=A.noiseMaps.map((e,t)=>{const i=this.state[e+"_noise"];return new P(this.seed+t,i.firstOctave,i.amplitudes)});const o={};this.state.biomes.forEach(e=>{o[e.biome]=this.getBiomeColor(e.biome)});const r=t.data,n=Math.pow(2,this.viewScale.get());for(let e=0;e<200;e+=1)for(let a=0;a<100;a+=1){const s=a*(4*t.width)+4*e,c=(e-this.offsetX)*n-100*n,d=(a-this.offsetY)*n-50*n,l=this.closestBiome(c,d),m=null!==(i=o[l])&&void 0!==i?i:[128,128,128];r[s]=m[0],r[s+1]=m[1],r[s+2]=m[2],r[s+3]=255}}onDrag(e,t){this.offsetX+=e,this.offsetY+=t}closestBiome(e,t){if(!this.state.biomes||0===this.state.biomes.length)return"";const i=this.noise.map(i=>i.getValue(e,t,0));let o=1/0,r="";for(const e of this.state.biomes){const t=this.fitness(e.parameters,{altitude:i[0],temperature:i[1],humidity:i[2],weirdness:i[3],offset:0});te.toString(16).padStart(2,"0")).join("")}}A.noiseMaps=["altitude","temperature","humidity","weirdness"];const R={en:i(26)};function I(e,t){return null==e?void 0:e.replace(/%\d+%/g,e=>{const i=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[i])?t[i]:e})}function E(e,t){var i,o,r;return null!==(r=I(null!==(o=null===(i=R[ue.language.get()])||void 0===i?void 0:i[e])&&void 0!==o?o:R.en[e],t))&&void 0!==r?r:e}function q(e,t,i=5,o=1){return[ue.language.get(),"en"].reduce((r,n)=>{var a;if(void 0!==r)return r;const s=e.slice(-i);for(;s.length>=o;){const e=I(null===(a=R[n])||void 0===a?void 0:a[s.join(".")],t);if(void 0!==e)return e;s.shift()}},void 0)}class T{constructor(){this.registry={}}render(){return""}register(e){const t=c();return this.registry[t]=e,t}on(e,t){return this.register(i=>{i.addEventListener(e,e=>{t(i),e.stopPropagation()})})}onChange(e){return this.on("change",e)}onClick(e){return this.on("click",e)}mounted(e,t=!0){e.querySelectorAll("[data-id]").forEach(e=>{var t,i;const o=e.getAttribute("data-id");null===(i=(t=this.registry)[o])||void 0===i||i.call(t,e)}),t&&(this.registry={}),e.querySelectorAll("[data-i18n]").forEach(e=>{e.textContent=E(e.attributes.getNamedItem("data-i18n").value)})}mount(e,t,i=!0){e.innerHTML=t,this.mounted(e,i)}}const D=e=>{e.classList.add("active");const t=()=>document.body.addEventListener("click",i=>{var o;i.target.matches(".btn.input")||(null===(o=i.target.closest(".btn"))||void 0===o?void 0:o.classList.contains("input"))?t():e.classList.remove("active")},{capture:!0,once:!0});t()};class F{constructor(){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0,this.minLimitPerlinNoise=$.fromRange(c(),-15,0),this.maxLimitPerlinNoise=$.fromRange(c(),-15,0),this.mainPerlinNoise=$.fromRange(c(),-7,0),this.depthNoise=$.fromRange(c(),-15,0)}reset(e,t,i,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,i=1+4*i),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*i+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(i),n=this.fillNoiseColumn(i+1);for(let e=this.chunkCountY-1;e>=0;e-=1)for(let i=this.chunkHeight;i>=0;i-=1){const a=i/this.chunkHeight;t[e*this.chunkHeight+i]=_(a,o,r[e],r[e+1],n[e],n[e+1])}return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const i=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,n=o/this.settings.sampling.xz_factor,a=r/this.settings.sampling.y_factor,s=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let t=0;t<=this.chunkCountY;t+=1){let c=this.sampleAndClampNoise(e,t,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,n,a);const d=((1-2*t/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;c+=d*(d>0?4:1),this.settings.top_slide.size>0&&(c=p(this.settings.top_slide.target,c,(this.chunkCountY-t-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(c=p(this.settings.bottom_slide.target,c,(t-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),i[t]=c}return this.noiseColumnCache[e-this.xOffset]=i,i}getRandomDensity(e){const t=this.depthNoise.getValue(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),i=24.575625*(t<0?.3*-t:t)-2;return i<0?.009486607142857142*i:.006640625*Math.min(i,1)}sampleAndClampNoise(e,t,i,o,r,n,a){let s=0,c=0,d=0,l=1;for(let m=0;m<16;m+=1){const p=$.wrap(e*o*l),u=$.wrap(t*r*l),_=$.wrap(i*o*l),f=r*l,g=this.minLimitPerlinNoise.getOctaveNoise(m);g&&(s+=g.noise(p,u,_,f,t*f)/l);const h=this.maxLimitPerlinNoise.getOctaveNoise(m);if(h&&(c+=h.noise(p,u,_,f,t*f)/l),m<8){const o=this.mainPerlinNoise.getOctaveNoise(m);o&&(d+=o.noise($.wrap(e*n*l),$.wrap(t*a*l),$.wrap(i*n*l),a*l,t*a*l)/l)}l/=2}return p(s/512,c/512,(d/10+1)/2)}}const V=[50,50,51,51,52,52,53,54,56,57,57,58,58,59,60,60,60,59,59,59,60,61,61,62,63,63,64,64,64,65,65,66,66,65,65,66,66,67,67,67,68,69,71,73,74,76,79,80,81,81,82,83,83,82,82,81,81,80,80,80,81,81,82,82],U=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];const H=(e,t,i)=>ga("send","event",e,t,i),W=(e,t)=>ga("set","dimension"+e,t),J=e=>{ga("set","page",e),ga("send","pageview")},Y=e=>H("Generator","set-version",e),G=e=>H("Preview","set-preview",e),X=()=>H("Generator","reset"),K=(e=!1)=>H("Generator","undo",e?"Hotkey":"Menu"),Z=(e=!1)=>H("Generator","redo",e?"Hotkey":"Menu"),Q=()=>H("JsonOutput","copy"),ee=()=>H("JsonOutput","download"),te=()=>H("JsonOutput","share"),ie=()=>H("Preview","hide-preview"),oe=e=>H("Generator","toggle-minimize",e?"minimized":"unminimized"),re=e=>H("Generator","load-preset",e),ne=e=>W(1,e),ae=e=>W(3,e),se=e=>W(4,e),ce=e=>W(5,e);var de=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const le={1.15:r,1.16:n,1.17:a},me={biome_noise:new A,noise_settings:new class extends B{constructor(){super(),this.width=256,this.depth=.1,this.scale=.2,this.offsetX=0,this.debug=!1,this.generator=new F}getName(){return"noise-settings"}active(e){return e.endsWith(new o.Path(["noise"]))}menu(e,t){return`
\n
\n ${M.kebab_horizontal}\n
\n
\n
\n ${M.gear}\n \n {this.depth=parseFloat(e.value),t()})})}">\n
\n
\n ${M.gear}\n \n {this.scale=parseFloat(e.value),t()})})}">\n
\n
\n ${M.arrow_both}\n \n {this.width=parseFloat(e.value),t()})})}">\n
\n
\n ${M.square}\n \n
\n
\n
`}getSize(){return[this.width,this.state.height]}draw(e,t){this.generator.reset(this.state,this.depth,this.scale,this.offsetX,this.width);const i=t.data;for(let e=0;e0?255:a,i[n+1]=a,i[n+2]=a,i[n+3]=255}}}onDrag(e,t){this.offsetX-=e}getColor(e,t){return this.debug?-e[t]/2+128:e[t]>0?0:e[t+1]>0?150:255}},decorator:new class extends B{constructor(){super(),this.Features={decorated:(e,t)=>this.getPositions(t,null==e?void 0:e.decorator).flatMap(t=>this.getPlacements(t,null==e?void 0:e.feature)),random_boolean_selector:(e,t)=>{const i=this.random()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false;return this.getPlacements(t,i)},random_selector:(e,t)=>{var i,o;for(const r of null!==(i=null==e?void 0:e.features)&&void 0!==i?i:[])if(this.random()<(null!==(o=null==r?void 0:r.chance)&&void 0!==o?o:0))return this.getPlacements(t,r.feature);return this.getPlacements(t,null==e?void 0:e.default)},simple_random_selector:(e,t)=>{var i,o,r;const n=null===(i=null==e?void 0:e.features)||void 0===i?void 0:i[this.nextInt(null!==(r=null===(o=null==e?void 0:e.features)||void 0===o?void 0:o.length)&&void 0!==r?r:0)];return this.getPlacements(t,n)}},this.Decorators={chance:(e,t)=>{var i;return this.random()<1/(null!==(i=null==e?void 0:e.chance)&&void 0!==i?i:1)?[t]:[]},count:(e,t)=>{var i;return new Array(this.sampleUniformInt(null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1)).fill(t)},count_extra:(e,t)=>{var i,o,r;let n=null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1;return null!==(o=this.random(){var i;return new Array(this.sampleUniformInt(null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1)).fill(t).map(e=>[e[0]+this.nextInt(16),e[1],e[2]+this.nextInt(16)])},count_noise:(e,t)=>{const i=this.biomeInfoNoise.getValue(t[0]/200,0,t[2]/200){const i=Math.max(1,e.noise_factor),o=this.biomeInfoNoise.getValue(t[0]/i,0,t[2]/i),r=Math.max(0,Math.ceil((o+e.noise_offset)*e.noise_to_count_ratio));return new Array(r).fill(t)},dark_oak_tree:(e,t)=>[...new Array(16)].map((e,i)=>{const o=4*Math.floor(i/4)+1+this.nextInt(3)+t[0];return[o,Math.max(63,V[m(0,63,o)]),4*Math.floor(i%4)+1+this.nextInt(3)+t[2]]}),decorated:(e,t)=>this.getPositions(t,null==e?void 0:e.outer).flatMap(t=>this.getPositions(t,null==e?void 0:e.inner)),depth_average:(e,t)=>{var i,o,r,n;const a=this.nextInt(null!==(i=null==e?void 0:e.spread)&&void 0!==i?i:0)+this.nextInt(null!==(o=null==e?void 0:e.spread)&&void 0!==o?o:0)-(null!==(r=e.spread)&&void 0!==r?r:0)+(null!==(n=null==e?void 0:e.baseline)&&void 0!==n?n:0);return this.decorateY(t,a)},emerald_ore:(e,t)=>{const i=3+this.nextInt(6);return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(28)+4,this.nextInt(16)+t[2]])},fire:(e,t)=>{const i=this.nextInt(this.nextInt(this.sampleUniformInt(null==e?void 0:e.count)))+1;return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(120)+4,this.nextInt(16)+t[2]])},glowstone:(e,t)=>{const i=this.nextInt(this.nextInt(this.sampleUniformInt(null==e?void 0:e.count))+1);return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(120)+4,this.nextInt(16)+t[2]])},heightmap:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,i)},heightmap_spread_double:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,this.nextInt(2*i))},heightmap_world_surface:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,i)},iceberg:(e,t)=>[[this.nextInt(8)+4+t[0],t[1],this.nextInt(8)+4+t[2]]],lava_lake:(e,t)=>{var i,o;if(0===this.nextInt((null!==(i=e.chance)&&void 0!==i?i:1)/10)){const i=this.nextInt(this.nextInt(248)+8);if(i<63||0==this.nextInt((null!==(o=null==e?void 0:e.chance)&&void 0!==o?o:1)/8)){return[[this.nextInt(16)+t[0],i,this.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t)=>{var i,o,r;const n=this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0);return this.decorateY(t,n)},range_biased:(e,t)=>{var i,o,r;const n=this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0));return this.decorateY(t,n)},range_very_biased:(e,t)=>{var i,o,r,n;const a=this.nextInt(this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0))+(null!==(n=null==e?void 0:e.bottom_offset)&&void 0!==n?n:0));return this.decorateY(t,a)},spread_32_above:(e,t)=>{const i=this.nextInt(t[1]+32);return this.decorateY(t,i)},top_solid_heightmap:(e,t)=>{const i=V[m(0,63,t[0])];return this.decorateY(t,i)},magma:(e,t)=>{const i=this.nextInt(t[1]+32);return this.decorateY(t,i)},square:(e,t)=>[[t[0]+this.nextInt(16),t[1],t[2]+this.nextInt(16)]],water_lake:(e,t)=>{var i;return 0===this.nextInt(null!==(i=e.chance)&&void 0!==i?i:1)?[[this.nextInt(16)+t[0],this.nextInt(256),this.nextInt(16)+t[2]]]:[]}},this.seed=c(),this.perspective="top",this.size=[64,128,48],this.random=z()(this.seed),this.biomeInfoNoise=new $(c(),0,[1]),this.usedFeatures=[]}getName(){return"decorator"}active(e){var t;return"worldgen/feature"===(null===(t=ue.model.get())||void 0===t?void 0:t.id)&&e.equals(new o.Path(["config","decorator"]))&&"minecraft:decorated"===e.pop().pop().push("type").get()}menu(e,t){return`\n
\n ${M.package}\n
`}getSize(){return"top"===this.perspective?[this.size[0],this.size[2]]:[this.size[0],this.size[1]]}draw(e,t){const i=JSON.parse(JSON.stringify(e.data));this.random=z()(this.seed),this.usedFeatures=[];let o=[];for(let e=0;ee.pos.every((e,t)=>e>=0&&em(50,205,e)),o)}for(let e=0;ee.schema).forEach(e=>pe[e.id]=new o.DataModel(Object(o.ObjectNode)({})));const ue={version:new h("schema_version",b.versions[b.versions.length-1].id).watch(ae),theme:new h("theme","dark").watch(ne),language:new h("language","en").watch(se),model:new g(null),collections:new g(null),jsonOutput:new g(""),errorsVisible:new g(!1),treeMinimized:new g(!1),jsonError:new g(null),preview:new g(null).watch(e=>{var t;return ce(null!==(t=null==e?void 0:e.getName())&&void 0!==t?t:"none")}),schemasLoaded:new g(!1),localesLoaded:new g(!1),loaded:new g(!1),mobilePanel:new g("tree"),settings:new class{constructor(e){var t;this.local_storage=e;const i=JSON.parse(null!==(t=localStorage.getItem(e))&&void 0!==t?t:"{}");Array.isArray(i.fields)||(i.fields=[]),this.fields=i.fields,this.save()}save(){const e=JSON.stringify({fields:this.fields});localStorage.setItem(this.local_storage,e),this.fields=[...this.fields.filter(e=>null==e?void 0:e.path),{}]}}("generator_settings"),blockStateRegistry:{}};ue.version.watchRun(e=>de(void 0,void 0,void 0,(function*(){ue.schemasLoaded.set(!1),yield function(e){return de(this,void 0,void 0,(function*(){ue.blockStateRegistry={};const t=le[e].getCollections();ue.collections.set(t),yield O(t,e);const i=le[e].getSchemas(t);b.models.filter(e=>e.schema).filter(e=>fe(ue.version.get(),e.minVersion)).forEach(e=>{const t=pe[e.id],o=i.get(e.schema);o&&(t.schema=o,"{}"===JSON.stringify(t.data)&&(t.reset(o.default(),!0),t.history=[JSON.stringify(t.data)],t.historyIndex=0))})}))}(e),ue.schemasLoaded.set(!0)}))),ue.theme.watchRun(e=>document.documentElement.setAttribute("data-theme",e));let _e=!1;function fe(e,t,i){const o=b.versions.findIndex(t=>t.id===e),r=t?b.versions.findIndex(e=>e.id===t):0,n=i?b.versions.findIndex(e=>e.id===i):b.versions.length-1;return r<=o&&o<=n}ue.language.watchRun(e=>de(void 0,void 0,void 0,(function*(){ue.localesLoaded.set(!1),yield function(e){return de(this,void 0,void 0,(function*(){if(R[e]&&(_e||"en"!==e))return;const t=yield(yield fetch(`/locales/${e}.json`)).json();"en"===e&&(_e=!0),R[e]=t}))}(e),ue.localesLoaded.set(!0)}))),ue.localesLoaded.watch(e=>{e&&document.querySelectorAll("[data-i18n]").forEach(e=>{e.textContent=E(e.attributes.getNamedItem("data-i18n").value)}),ue.loaded.set(e&&ue.schemasLoaded.get())}),ue.schemasLoaded.watch(e=>{ue.loaded.set(e&&ue.localesLoaded.get())}),ue.mobilePanel.watchRun(e=>{document.body.setAttribute("data-panel",e)}),document.addEventListener("keyup",e=>{e.ctrlKey&&"z"===e.key?(K(!0),pe[ue.model.get().id].undo()):e.ctrlKey&&"y"===e.key&&(Z(!0),pe[ue.model.get().id].redo())});const ge=(e,t,i,o)=>{const r=()=>{var e;return M[(null!==(e=t.find(e=>e[0]===i.get()))&&void 0!==e?e:t[0])[1]]};return`
{const e=t.findIndex(e=>e[0]===i.get());i.set(t[(e+1)%t.length][0])}),i.watch(t=>e.innerHTML=r(),"toggle")})}">${r()}
`},he=(e,t,i="/")=>{const o=e.register(t=>{const i=()=>{const t=[["preview","play"],["tree","note"],["source","code"]];return t.map(e=>e[0]).includes(ue.mobilePanel.get())?t.filter(e=>e[0]!==ue.mobilePanel.get()).filter(e=>"preview"!==e[0]||null!==ue.preview.get()).map(t=>`
\n ${M[t[1]]}\n
`).join(""):""};ue.mobilePanel.watchRun(()=>{e.mount(t,i(),!1)}),ue.preview.watchRun((o,r)=>{null===o&&"preview"===ue.mobilePanel.get()&&ue.mobilePanel.set("tree"),null!==o&&null!==r||e.mount(t,i(),!1)})});return`
\n
\n ${M.three_bars}\n

${t}

\n
\n \n
`};const be=(e,t,i,o)=>`\n
  • \n \n ${t}\n ${i?M.chevron_right:""}\n \n
  • \n`,ve=e=>{const t=b.models.filter(e=>e.category===ue.model.get().id);return`\n ${he(e,"Data Pack Generators")}\n
    \n
      \n ${b.models.filter(e=>"string"!=typeof e.category).map(e=>be(e.id,e.name,!0===e.category,ue.model.get().id===e.id)).join("")}\n
    \n ${0===t.length?"":`\n
      \n ${t.map(e=>be(e.id,e.name)).join("")}\n
    \n `}\n
    \n `},ye=e=>`\n ${he(e,"Data Pack Generators")}\n
    \n

    404

    \n

    ${E("not_found.description")}

    \n
      \n ${be("/",E("home"),!0)}\n
    \n
    \n `,Ne=e=>{const t=e.register(t=>{const i=()=>{const o=ue.settings.fields;return o.map((r,n)=>{const a=e.register(a=>{var s;a.value=null!==(s=r.path)&&void 0!==s?s:"",a.addEventListener("change",()=>{o[n]=Object.assign(Object.assign({},r),{path:a.value}),ue.settings.save(),e.mount(t,i(),!1)})}),s=e.register(a=>{var s;a.value=null!==(s=r.name)&&void 0!==s?s:"",a.addEventListener("change",()=>{o[n]=Object.assign(Object.assign({},r),{name:a.value}),ue.settings.save(),e.mount(t,i(),!1)})});return`
  • \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n ${r.hidden?M.eye_closed:M.eye}\n ${M.trashcan}\n
    \n
  • `}).join("")};e.mount(t,i(),!1)});return`${he(e,"Field Settings")}\n
    \n

    ${E("settings.fields.description")}

    \n
      \n
      `};var we="undefined"!=typeof window?window:null,Oe=null===we,ke=Oe?void 0:we.document,xe=function(){return!1},je=Oe?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=ke.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",Se=function(e){return"string"==typeof e||e instanceof String},Me=function(e){if(Se(e)){var t=ke.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},Ce=function(e,t,i){var o=e[t];return void 0!==o?o:i},ze=function(e,t,i,o){if(t){if("end"===o)return 0;if("center"===o)return e/2}else if(i){if("start"===o)return 0;if("center"===o)return e/2}return e},Le=function(e,t){var i=ke.createElement("div");return i.className="gutter gutter-"+t,i},$e=function(e,t,i){var o={};return Se(t)?o[e]=t:o[e]=je+"("+t+"% - "+i+"px)",o},Pe=function(e,t){var i;return(i={})[e]=t+"px",i},Be=function(e,t){if(void 0===t&&(t={}),Oe)return{};var i,o,r,n,a,s,c=e;Array.from&&(c=Array.from(c));var d=Me(c[0]).parentNode,l=getComputedStyle?getComputedStyle(d):null,m=l?l.flexDirection:null,p=Ce(t,"sizes")||c.map((function(){return 100/c.length})),u=Ce(t,"minSize",100),_=Array.isArray(u)?u:c.map((function(){return u})),f=Ce(t,"expandToMin",!1),g=Ce(t,"gutterSize",10),h=Ce(t,"gutterAlign","center"),b=Ce(t,"snapOffset",30),v=Ce(t,"dragInterval",1),y=Ce(t,"direction","horizontal"),N=Ce(t,"cursor","horizontal"===y?"col-resize":"row-resize"),w=Ce(t,"gutter",Le),O=Ce(t,"elementStyle",$e),k=Ce(t,"gutterStyle",Pe);function x(e,t,o,r){var n=O(i,t,o,r);Object.keys(n).forEach((function(t){e.style[t]=n[t]}))}function j(){return s.map((function(e){return e.size}))}function S(e){return"touches"in e?e.touches[0][o]:e[o]}function M(e){var t=s[this.a],i=s[this.b],o=t.size+i.size;t.size=e/this.size*o,i.size=o-e/this.size*o,x(t.element,t.size,this._b,t.i),x(i.element,i.size,this._c,i.i)}function C(e){var i,o=s[this.a],r=s[this.b];this.dragging&&(i=S(e)-this.start+(this._b-this.dragOffset),v>1&&(i=Math.round(i/v)*v),i<=o.minSize+b+this._b?i=o.minSize+this._b:i>=this.size-(r.minSize+b+this._c)&&(i=this.size-(r.minSize+this._c)),M.call(this,i),Ce(t,"onDrag",xe)(j()))}function z(){var e=s[this.a].element,t=s[this.b].element,o=e.getBoundingClientRect(),a=t.getBoundingClientRect();this.size=o[i]+a[i]+this._b+this._c,this.start=o[r],this.end=o[n]}function L(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var i=e[a];return 0===i?null:i-="horizontal"===y?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(d);if(null===t)return e;if(_.reduce((function(e,t){return e+t}),0)>t)return e;var i=0,o=[],r=e.map((function(r,n){var a=t*r/100,s=ze(g,0===n,n===e.length-1,h),c=_[n]+s;return a0&&o[r]-i>0){var a=Math.min(i,o[r]-i);i-=a,n=e-a}return n/t*100}))}function $(){var e=s[this.a].element,i=s[this.b].element;this.dragging&&Ce(t,"onDragEnd",xe)(j()),this.dragging=!1,we.removeEventListener("mouseup",this.stop),we.removeEventListener("touchend",this.stop),we.removeEventListener("touchcancel",this.stop),we.removeEventListener("mousemove",this.move),we.removeEventListener("touchmove",this.move),this.stop=null,this.move=null,e.removeEventListener("selectstart",xe),e.removeEventListener("dragstart",xe),i.removeEventListener("selectstart",xe),i.removeEventListener("dragstart",xe),e.style.userSelect="",e.style.webkitUserSelect="",e.style.MozUserSelect="",e.style.pointerEvents="",i.style.userSelect="",i.style.webkitUserSelect="",i.style.MozUserSelect="",i.style.pointerEvents="",this.gutter.style.cursor="",this.parent.style.cursor="",ke.body.style.cursor=""}function P(e){if(!("button"in e)||0===e.button){var i=s[this.a].element,o=s[this.b].element;this.dragging||Ce(t,"onDragStart",xe)(j()),e.preventDefault(),this.dragging=!0,this.move=C.bind(this),this.stop=$.bind(this),we.addEventListener("mouseup",this.stop),we.addEventListener("touchend",this.stop),we.addEventListener("touchcancel",this.stop),we.addEventListener("mousemove",this.move),we.addEventListener("touchmove",this.move),i.addEventListener("selectstart",xe),i.addEventListener("dragstart",xe),o.addEventListener("selectstart",xe),o.addEventListener("dragstart",xe),i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",this.gutter.style.cursor=N,this.parent.style.cursor=N,ke.body.style.cursor=N,z.call(this),this.dragOffset=S(e)-this.end}}"horizontal"===y?(i="width",o="clientX",r="left",n="right",a="clientWidth"):"vertical"===y&&(i="height",o="clientY",r="top",n="bottom",a="clientHeight"),p=L(p);var B=[];function A(e){var t=e.i===B.length,i=t?B[e.i-1]:B[e.i];z.call(i);var o=t?i.size-e.minSize-i._c:e.minSize+i._b;M.call(i,o)}return(s=c.map((function(e,t){var o,r={element:Me(e),size:p[t],minSize:_[t],i:t};if(t>0&&((o={a:t-1,b:t,dragging:!1,direction:y,parent:d})._b=ze(g,t-1==0,!1,h),o._c=ze(g,!1,t===c.length-1,h),"row-reverse"===m||"column-reverse"===m)){var n=o.a;o.a=o.b,o.b=n}if(t>0){var a=w(t,y,r.element);!function(e,t,o){var r=k(i,t,o);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}(a,g,t),o._a=P.bind(o),a.addEventListener("mousedown",o._a),a.addEventListener("touchstart",o._a),d.insertBefore(a,r.element),o.gutter=a}return x(r.element,r.size,ze(g,0===t,t===c.length-1,h),t),t>0&&B.push(o),r}))).forEach((function(e){var t=e.element.getBoundingClientRect()[i];t0){var o=B[i-1],r=s[o.a],n=s[o.b];r.size=t[i-1],n.size=e,x(r.element,r.size,o._b,r.i),x(n.element,n.size,o._c,n.i)}}))},getSizes:j,collapse:function(e){A(s[e])},destroy:function(e,t){B.forEach((function(o){if(!0!==t?o.parent.removeChild(o.gutter):(o.gutter.removeEventListener("mousedown",o._a),o.gutter.removeEventListener("touchstart",o._a)),!0!==e){var r=O(i,o.a.size,o._b);Object.keys(r).forEach((function(e){s[o.a].element.style[e]="",s[o.b].element.style[e]=""}))}}))},parent:d,pairs:B}};const Ae=(e,t,i)=>{var o;return`\n
      {Be([].slice.call(e.children),Object.assign({snapOffset:0},t))})}>\n ${i.join("")}\n
      \n`},Re={base(){},choice({switchNode:e},t,i){return e.hook(this,t,i)},object:({},e,t)=>me.biome_noise.active(e)?Ie(me.biome_noise,e,t):me.noise_settings.active(e)?Ie(me.noise_settings,e,t):me.decorator.active(e)?Ie(me.decorator,e,t):void 0,string({},e,t){if(e.endsWith(new o.Path(["biome"]))&&e.pop().pop().endsWith(new o.Path(["generator","biome_source","biomes"]))){const i=me.biome_noise,o=e.get(),r=t.onChange(e=>{i.setBiomeColor(o,e.value)});return``}}};function Ie(e,t,i){return``}const Ee={base:()=>null,object({filter:e,getActiveFields:t},i,r,n=0){if(n>2)return null;if(e){const t=Object(o.relativePath)(i,e);if(t&&t.pop().equals(r))return t.last()}const a=t(i);for(const e of Object.keys(a)){const t=a[e].hook(this,i.push(e),r,n+=1);if(t)return t}return null}},qe={base:()=>!1,object({node:e,getActiveFields:t},i){const o=0===i.modelArr.length?null:e.hook(Ee,i,i),r=Object.entries(t(i)).filter(([e,t])=>o!==e&&t.enabled(i));if(1!==r.length)return!1;const n=i.push(r[0][0]);return"object"===r[0][1].type(n)&&null===r[0][1].hook(Ee,n,n)}},Te=new o.DataModel(Object(o.MapNode)(Object(o.StringNode)(),Object(o.StringNode)()),{historyMax:0}),De={base:()=>["","",""],boolean({node:e},t,i,o){const r=o.onClick(o=>{t.model.set(t,!(!e.optional()||!1!==i)&&void 0)}),n=o.onClick(o=>{t.model.set(t,!e.optional()||!0!==i||void 0)});return["",`${d(E("false"))}\n ${d(E("true"))}`,""]},choice({choices:e,config:t,switchNode:i},r,n,a){const s=i.activeCase(r,!0),c=(null==t?void 0:t.context)?new o.ModelPath(r.getModel(),new o.Path(r.getArray(),[t.context])):r,l=(null==t?void 0:t.choiceContext)?new o.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new o.Path([],[t.context]):r,[m,p,u]=s.node.hook(this,c,n,a);if(1===e.length)return[m,p,u];return[m,``+p,u]},list({children:e},t,i,o){const r=o.onClick(o=>{Array.isArray(i)||(i=[]),t.model.set(t,[e.default(),...i])}),n=o.onClick(o=>{Array.isArray(i)||(i=[]),t.model.set(t,[...i,e.default()])}),a=``;let s="";return Array.isArray(i)&&(s=i.map((i,r)=>{const n=o.onClick(e=>t.model.set(t.push(r),void 0)),a=t.push(r).contextPush("entry"),s=e.category(a),[c,l,m]=e.hook(this,a,i,o);return`
      \n
      \n ${We(a,o)}\n ${Je(a,o)}\n \n ${c}\n \n ${l}\n
      \n ${m?`
      ${m}
      `:""}\n
      `}).join(""),i.length>2&&(s+=`
      \n
      \n \n
      \n
      `)),["",a,s]},map({keys:e,children:t,config:i},r,n,a){var s,c,l;const m=new o.ModelPath(Te,new o.Path([Ue(r.toString())])),p=a.onClick(e=>{const i=m.get();r.model.set(r.push(i),t.default())});let u="";const _="block_state_map"===(null===(s=i.validation)||void 0===s?void 0:s.validator)?ue.blockStateRegistry[Object(o.relativePath)(r,i.validation.params.id).get()]:null;if(!_||_.properties){u=(_?Object(o.StringNode)(null,{enum:Object.keys(null!==(c=_.properties)&&void 0!==c?c:{})}):e).hook(this,m,null!==(l=m.get())&&void 0!==l?l:"",a)[1]+``}let f="";return"object"==typeof n&&void 0!==n&&(f=Object.keys(n).map(e=>{const i=a.onClick(t=>r.model.set(r.push(e),void 0)),s=r.modelPush(e),c=t.category(s),[l,m,p]=(_?Object(o.StringNode)(null,_.properties&&{enum:_.properties[e]}):t).hook(this,s,n[e],a);return`
      \n
      \n ${We(s,a)}\n ${Je(s,a)}\n \n ${l}\n \n ${m}\n
      \n ${p?`
      ${p}
      `:""}\n
      `}).join("")),["",u,f]},number({integer:e,config:t},i,o,r){var n;const a=r.onChange(o=>{const r=o.value;let n=(null==t?void 0:t.color)?parseInt(r.slice(1),16):e?parseInt(r):parseFloat(r);i.model.set(i,n)});if(null==t?void 0:t.color){return["",``,""]}return["",``,""]},object({node:e,getActiveFields:t,getChildModelPath:i},o,r,n){var a;let s="";e.optional()&&(s=void 0===r?``:``);let c="",l="";if("object"==typeof r&&void 0!==r&&(!e.optional()||void 0!==r)){const m=t(o),p=Object.keys(m),u=0===o.modelArr.length?null:e.hook(Ee,o,o);!u||m[u].hidden&&m[u].hidden()||(s+=We(o.push(u),n),s+=Je(o.push(u),n),c+=m[u].hook(this,o.push(u),r[u],n)[1]);const _=(ue.treeMinimized.get()?p.filter(e=>void 0!==r[e]):p).filter(e=>u!==e).filter(e=>m[e].enabled(o));if(e.hook(qe,o)){const e=null!==(a=r[_[0]])&&void 0!==a?a:{};l=m[_[0]].hook(this,o.push(_[0]),e,n)[2]}else l=_.map(e=>{var t;const a=m[e],s=i(o,e),c=s.getContext().join("."),l=ue.settings.fields.find(e=>(null==e?void 0:e.path)&&c.endsWith(e.path));if(a.hidden&&a.hidden()||(null==l?void 0:l.hidden))return"";const p=a.category(s),[u,_,f]=a.hook(this,s,r[e],n);return"Properties"===e&&""===_?"":`
      \n
      \n ${We(s,n)}\n ${Je(s,n)}\n ${u}\n \n ${_}\n
      \n ${f?`
      ${f}
      `:""}\n
      `}).join("")}return c+=e.hook(Re,o,n)||"",["",s+c,l]},string(e,t,i,o){const r=o.register(e=>{e.value=null!=i?i:"",e.addEventListener("change",i=>{const o=e.value;t.model.set(t,0===o.length?void 0:o),i.stopPropagation()})}),n=e.node.hook(Re,t,o)||"";return["",Fe(e,t,r)+n,""]}};function Fe({node:e,getValues:t,config:i},r,n){const a=t();if((null===(s=i)||void 0===s?void 0:s.enum)&&!i.additional){return Ve(e,"string"==typeof i.enum?new o.Path(r.getArray(),[i.enum]):r,a,n)}var s;if(i&&function(e){var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)}(i)&&"resource"===i.validator&&"string"==typeof i.params.pool&&a.length>0){const t=new o.Path(r.getArray(),[i.params.pool]);if(q(t.contextPush(a[0]).getContext()))return Ve(e,t,a,n)}const l=c();return`\n ${0===a.length?"":`\n ${a.map(e=>``}`}function Ve(e,t,i,o){return``}function Ue(e){var t,i=0;for(t=0;t`
      {e.getElementsByTagName("span")[0].classList.remove("show")},{capture:!0,once:!0})})}">\n ${i}${M[t]}\n
      `,Ge=(e,t)=>`data-id="${t.register(t=>{const i=()=>{var i;const o=document.createElement("div");o.classList.add("node-menu");const r=q(e.contextPush("help").getContext(),[],6);r&&o.insertAdjacentHTML("beforeend",`${r}`);const n=e.getContext().join(".");o.insertAdjacentHTML("beforeend",`\n `),null===(i=o.querySelector(".menu-item .btn"))||void 0===i||i.addEventListener("click",()=>{const e=document.createElement("input");e.value=n,t.appendChild(e),e.select(),document.execCommand("copy"),t.removeChild(e)}),t.appendChild(o),document.body.addEventListener("click",()=>{try{t.removeChild(o)}catch(e){}},{capture:!0,once:!0}),document.body.addEventListener("contextmenu",()=>{try{t.removeChild(o)}catch(e){}},{capture:!0,once:!0})};t.addEventListener("contextmenu",e=>{i(),e.preventDefault()});let o=null;t.addEventListener("touchstart",()=>{o=setTimeout(()=>{i(),o=null},800)}),t.addEventListener("touchend",()=>{o&&(clearTimeout(o),o=null)})})}"`;var Xe=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const Ke=(e,t)=>{const i=()=>{if(ue.loaded.get()){const i=new o.ModelPath(t),r=t.schema.hook(De,i,t.data,e),n=t.schema.category(i);return r[1]?`
      \n
      ${r[1]}
      \n
      ${r[2]}
      \n
      `:r[2]}return'
      '},r=e.register(o=>{ue.loaded.watchRun(t=>{t?e.mount(o,i(),!1):new Promise(e=>setTimeout(e,100)).then(()=>{ue.loaded.get()||e.mount(o,i(),!1)})}),ue.treeMinimized.watch(()=>{e.mount(o,i(),!1)}),t.addListener({invalidated(){e.mount(o,i(),!1)}}),me.biome_noise.biomeColors.watch(()=>{e.mount(o,i(),!1)},"tree-panel")}),n=ue.model.get(),a=((null==n?void 0:n.category)?(null==n?void 0:n.category)+"/":"")+(null==n?void 0:n.schema);let s;const c=e.register(e=>s=e),d=i=>{var o,r;const s=(null!=i?i:"").trim().split(" ");return(null!==(r=null===(o=ue.collections.get())||void 0===o?void 0:o.get(a))&&void 0!==r?r:[]).map(e=>e.slice(10)).filter(e=>s.every(t=>e.includes(t))).map(i=>`
      ${i}
      `).join("")};return`
      \n
      \n
      \n
      \n ${M.archive}\n
      \n
      \n
      \n ${M.search}{e.mount(s,d(t.value),!1)})}">\n
      \n
      \n
      \n
      \n
      \n
      \n ${M.tag}\n \n ${ue.version.get()}\n \n
      \n
      \n ${b.versions.filter(e=>{var t;return fe(e.id,null!==(t=ue.model.get().minVersion)&&void 0!==t?t:"1.15")}).reverse().map(t=>`\n
      \n ${t.id}\n
      \n `).join("")}\n
      \n
      \n
      \n
      \n ${M.kebab_horizontal}\n
      \n
      \n
      \n ${M.history}\n
      \n
      {const e=!ue.treeMinimized.get();ue.treeMinimized.set(e),oe(e)}),ue.treeMinimized.watchRun(i=>{e.mount(t,`${M[i?"unfold":"fold"]}`,!1)})})}">
      \n
      \n ${M.arrow_left}\n
      \n
      \n ${M.arrow_right}\n
      \n
      \n
      \n
      \n
      \n
      `},Ze={base:({},e,t)=>t,choice({switchNode:e},t,i){return e.hook(this,t,i)},list({children:e},t,i){return Array.isArray(i)?i.map((i,o)=>e.hook(this,t.push(o),i)):i},map({children:e},t,i){if(void 0===i)return;let o={};return Object.keys(i).forEach(r=>o[r]=e.hook(this,t.push(r),i[r])),o},object({getActiveFields:e},t,i){if(null==i||"object"!=typeof i)return i;let o={};const r=e(t);return Object.keys(r).filter(e=>r[e].enabled(t)).forEach(e=>{o[e]=r[e].hook(this,t.push(e),i[e])}),o}},Qe=(e,t)=>{const i=e=>{const i=t.schema.hook(Ze,new o.ModelPath(t),t.data);ue.jsonOutput.set(JSON.stringify(i,null,2)),e.value=ue.jsonOutput.get()},r=e.register(e=>{i(e),t.addListener({invalidated(){ue.jsonError.set(null),i(e)}}),e.addEventListener("change",()=>{const i=e.value;try{t.reset(JSON.parse(i)),ue.jsonError.set(null)}catch(e){ue.jsonError.set(e.message)}})});return`
      \n
      \n \n
      \n ${M.clippy}\n \n
      \n
      \n
      \n ${M.kebab_horizontal}\n
      \n
      \n
      \n ${M.download}\n \n
      \n
      {i.style.display="none"},{capture:!0,once:!0}),i.select(),document.execCommand("copy"),te()})}">\n ${M.link}\n
      \n
      \n
      \n
      \n \n
      `},et=(e,t)=>`
      {const e=ue.preview.get();if(e&&e.path&&e.path.withModel(t).get()){const i=o.getContext("2d"),r=e.path.withModel(t).get();e.state=JSON.parse(JSON.stringify(r));const[n,a]=e.getSize();o.width=n,o.height=a;const s=i.createImageData(n,a);e.draw(t,s),i.putImageData(s,0,0)}else ue.preview.set(null)};let n;t.addListener({invalidated:r}),ue.preview.watchRun(t=>{var o,n;t&&(t.redraw=r,r(),e.mount(i.querySelector(".panel-controls"),`\n ${null!==(n=null===(o=ue.preview.get())||void 0===o?void 0:o.menu(e,r))&&void 0!==n?n:""}\n
      \n ${M.x}\n
      `,!1))},"preview-panel"),i.addEventListener("mousedown",e=>{n=[e.offsetX,e.offsetY]}),i.addEventListener("mousemove",e=>{var t,i;if(void 0!==n){if(null===(t=ue.preview.get())||void 0===t?void 0:t.onDrag){const[t,a]=ue.preview.get().getSize(),s=(e.offsetX-n[0])*t/o.clientWidth,c=(e.offsetY-n[1])*a/o.clientHeight;0===s&&0===c||(null===(i=ue.preview.get())||void 0===i||i.onDrag(s,c),r())}n=[e.offsetX,e.offsetY]}}),i.addEventListener("mouseup",e=>{n=void 0})})}">\n
      \n \n
      `,tt=(it={base(){},map({config:e},t,i){var r,n,a;if("block_state_map"===(null===(r=e.validation)||void 0===r?void 0:r.validator)){const r=Object(o.relativePath)(t,e.validation.params.id).get(),s=t.getModel().errors,c=null!==(a=(null!==(n=ue.blockStateRegistry[r])&&void 0!==n?n:{}).properties)&&void 0!==a?a:{},d=Object.keys(null!=i?i:{});Object.keys(c).forEach(e=>{d.includes(e)?c[e].includes(i[e])||s.add(t.push(e),"error.invalid_enum_option",i[e]):"Properties"===t.last()&&s.add(t,"error.block_state.missing_property",e)})}},object({node:e,getActiveFields:t},i,o){let r=t(i);const n=0===i.modelArr.length?null:e.hook(Ee,i,i),a=Object.keys(r).filter(e=>n!==e).filter(e=>r[e].enabled(i));1===a.length&&"object"===r[a[0]].type(i.push(a[0]))&&r[a[0]].optional()&&"{}"===JSON.stringify(o[a[0]])&&i.push(a[0]).set(void 0)}},Object.assign(Object.assign({},it),{choice(e,t,i,...o){var r;(null!==(r=it.choice)&&void 0!==r?r:it.base)(e,t,i,...o),e.switchNode.hook(this,t,i,...o)},list(e,t,i,...o){var r;(null!==(r=it.list)&&void 0!==r?r:it.base)(e,t,i,...o),Array.isArray(i)&&i.forEach((i,r)=>e.children.hook(this,t.push(r),i,...o))},map(e,t,i,...o){var r;(null!==(r=it.map)&&void 0!==r?r:it.base)(e,t,i,...o),"object"==typeof i&&Object.keys(i).forEach(r=>e.children.hook(this,t.push(r),i[r],...o))},object(e,t,i,...o){var r;if((null!==(r=it.object)&&void 0!==r?r:it.base)(e,t,i,...o),null===i||"object"!=typeof i)return;const n=e.getActiveFields(t);Object.keys(n).filter(e=>n[e].enabled(t)).forEach(e=>{n[e].hook(this,t.push(e),i[e],...o)})}}));var it;const ot=e=>{const t=pe[ue.model.get().id];t.listeners=[];const i=()=>ue.preview.get()?Ae(e,{direction:"vertical",sizes:[60,40]},[Qe(e,t),et(e,t)]):Qe(e,t),r=()=>{var e;const i=ue.preview.get(),o=null===(e=null==i?void 0:i.path)||void 0===e?void 0:e.withModel(t);o&&o.get()&&(null==i?void 0:i.active(o))||ue.preview.set(null)};t.addListener({invalidated:()=>{r(),t.schema.hook(tt,new o.ModelPath(t,new o.Path),t.data,t.errors)}}),ue.schemasLoaded.watch(e=>{e&&(t.validate(),t.invalidate(),r())},"generator"),ue.localesLoaded.watch(e=>{e&&ue.schemasLoaded.get()&&t.invalidate()},"generator"),ue.version.watchRun(e=>{const t=ue.model.get().minVersion;t&&!fe(e,t)&&ue.version.set(t)},"generator");const n=e.register(t=>{ue.preview.watch((o,r)=>{o&&r||e.mount(t,i(),!1)},"generator")}),a="string"==typeof ue.model.get().category?`/${ue.model.get().category}/`:void 0;return`${he(e,ue.model.get().name+" Generator",a)}\n
      \n ${Ae(e,{direction:"horizontal",sizes:[66,34]},[Ke(e,t),`
      ${i()}
      `])}\n
      \n ${((e,t)=>{const i=()=>ue.jsonError.get()?`
      \n
      \n ${d(ue.jsonError.get())}\n
      \n
      \n
      \n ${M.issue_opened}\n
      `:0===t.errors.count()?"":`${ue.errorsVisible.get()?`\n
      \n ${t.errors.getAll().map(e=>`\n
      \n ${e.path.toString()}\n -\n ${d(E(e.error,e.params))}\n
      \n `).join("")}\n
      \n `:""}\n ${ge(e,[[!0,"chevron_down"],[!1,"issue_opened"]],ue.errorsVisible)}`;return`\n
      \n ${i()}\n
      `})(e,t)}`};var rt=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const nt=b.models.filter(e=>!0===e.category),at=()=>rt(void 0,void 0,void 0,(function*(){var e,t;const i=location.pathname.split("/").filter(e=>e),o=new URLSearchParams(location.search),r=document.getElementById("app");let n=E("title.home"),a=e=>"",s="home";if(0===i.length)ue.model.set({id:"",name:"Data Pack",category:!0,minVersion:"1.15"}),a=ve;else if("settings"===i[0]&&"fields"===i[1])s="settings",a=Ne;else if(1===i.length&&nt.map(e=>e.id).includes(i[0]))ue.model.set(nt.find(e=>e.id===i[0])),a=ve;else{s="tree";const r=null!==(e=b.models.find(e=>e.id===i.join("/")))&&void 0!==e?e:null;if(ue.model.set(r),r){if(o.has("q"))try{const e=atob(null!==(t=o.get("q"))&&void 0!==t?t:"");pe[r.id].reset(JSON.parse(e))}catch(e){}a=ot,n=E("title.generator",[E(r.id)])}else a=ye}const c=b.versions.filter(e=>{var t;return fe(e.id,null===(t=ue.model.get())||void 0===t?void 0:t.minVersion)}).map(e=>e.id).join(", ");document.title=`${n} Minecraft ${c}`,ue.mobilePanel.set(s);const d=new T;d.mount(r,a(d),!0)}));window.addEventListener("popstate",at),document.addEventListener("DOMContentLoaded",()=>{document.body.addEventListener("click",e=>{if(e.target instanceof Element&&e.target.hasAttribute("data-link")&&e.target.hasAttribute("href")){e.preventDefault();const t=e.target.getAttribute("href");J(t),history.pushState(null,"",t),at()}}),at()})}]); +//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/js/bundle.js.map b/js/bundle.js.map new file mode 100644 index 00000000..a1744e18 --- /dev/null +++ b/js/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@mcschema/core/lib/index.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Node.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/seedrandom/index.js","webpack:///./node_modules/@mcschema/core/lib/model/Path.js","webpack:///./node_modules/@mcschema/core/lib/model/Errors.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ListNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/SwitchNode.js","webpack:///./node_modules/@mcschema/core/lib/utils.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.15/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.17/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.15/lib/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/index.js","webpack:///./node_modules/@mcschema/core/lib/model/DataModel.js","webpack:///./node_modules/@mcschema/core/lib/nodes/BooleanNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/MapNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/NumberNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ObjectNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Reference.js","webpack:///./node_modules/@mcschema/core/lib/nodes/StringNode.js","webpack:///./node_modules/@mcschema/core/lib/Hook.js","webpack:///./node_modules/@mcschema/core/lib/Registries.js","webpack:///./node_modules/@mcschema/core/lib/ValidationOption.js","webpack:///./node_modules/@mcschema/java-1.15/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","webpack:///./node_modules/seedrandom/lib/alea.js","webpack:///./node_modules/seedrandom/lib/xor128.js","webpack:///./node_modules/seedrandom/lib/xorwow.js","webpack:///./node_modules/seedrandom/lib/xorshift7.js","webpack:///./node_modules/seedrandom/lib/xor4096.js","webpack:///./node_modules/seedrandom/lib/tychei.js","webpack:///./node_modules/seedrandom/seedrandom.js","webpack:///./src/app/Utils.ts","webpack:///./src/app/state/Property.ts","webpack:///./src/app/state/LocalStorageProperty.ts","webpack:///./src/app/DataFetcher.ts","webpack:///./src/app/components/Octicon.ts","webpack:///./src/app/preview/noise/ImprovedNoise.ts","webpack:///./src/app/preview/noise/PerlinNoise.ts","webpack:///./src/app/preview/noise/NormalNoise.ts","webpack:///./src/app/preview/Preview.ts","webpack:///./src/app/preview/BiomeNoisePreview.ts","webpack:///./src/app/Locales.ts","webpack:///./src/app/views/View.ts","webpack:///./src/app/preview/noise/NoiseChunkGenerator.ts","webpack:///./src/app/preview/DecoratorPreview.ts","webpack:///./src/app/Tracker.ts","webpack:///./src/app/App.ts","webpack:///./src/app/preview/NoiseSettingsPreview.ts","webpack:///./src/app/Settings.ts","webpack:///./src/app/components/Dropdown.ts","webpack:///./src/app/components/Toggle.ts","webpack:///./src/app/components/Header.ts","webpack:///./src/app/views/Home.ts","webpack:///./src/app/views/NotFound.ts","webpack:///./src/app/views/FieldSettings.ts","webpack:///./node_modules/split.js/dist/split.es.js","webpack:///./src/app/components/SplitGroup.ts","webpack:///./src/app/hooks/suffixInjector.ts","webpack:///./src/app/hooks/getFilterKey.ts","webpack:///./src/app/hooks/canFlatten.ts","webpack:///./src/app/hooks/renderHtml.ts","webpack:///./src/app/components/panels/TreePanel.ts","webpack:///./src/app/hooks/transformOutput.ts","webpack:///./src/app/components/panels/SourcePanel.ts","webpack:///./src/app/components/panels/PreviewPanel.ts","webpack:///./src/app/hooks/customValidation.ts","webpack:///./src/app/hooks/walk.ts","webpack:///./src/app/views/Generator.ts","webpack:///./src/app/components/Errors.ts","webpack:///./src/app/Router.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__createBinding","this","k","k2","undefined","__exportStar","Error","initCommonSchemas","UniformInt","Range","NoiseSettingsPresets","DefaultNoiseSettings","DimensionTypePresets","DefaultDimensionType","ConditionCases","core_1","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","target","size","offset","bottom_slide","default_block","Name","default_fluid","Properties","level","schemas","collections","StringNode","Reference","register","Mod","ObjectNode","validator","params","pool","Opt","MapNode","validation","id","push","context","default","ListNode","NumberNode","integer","minLength","maxLength","config","ChoiceNode","forceRange","type","node","change","v","_a","_b","_c","min","max","priority","bounds","allowBinomial","enum","match","choiceContext","base","spread","maxSpread","terms","block","properties","predicate","entity","scores","term","inverse","BooleanNode","offsetX","offsetY","offsetZ","chance","looting_multiplier","enchantment","chances","period","raining","thundering","ObjectOrPreset","shrunk","fixed_time","effects","island_noise_override","amplified","FloatProvider","UniformFloat","FunctionCases","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","cases","defaultCase","keys","forEach","enabled","path","provider","hidden","Switch","Case","disableSwitchContext","choices","replace","length","score","scale","amount","isScoreHolder","source","Uniform","mean","deviation","plateau","entitySourceNode","range","conditions","copySourceNode","formula","parameters","bonusMultiplier","pop","extra","probability","ops","category","op","enchantments","levels","treasure","destination","decoration","zoom","search_radius","skip_existing_chunks","limit","count","modifiers","patterns","pattern","color","append","entries","add","damage","seed","lore","tag","registry","duration","res","f","Keep","Has","Base","keep","optional","pathPush","suggest","validate","_","validationOption","hook","args","canUpdate","update","mods","webpackPolyfill","deprecate","paths","children","__webpack_amd_options__","initProcessorListSchemas","Processors","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","mossiness","blocks","integrity","heightmap","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","axis","block_state","alea","xor128","xorwow","xorshift7","xor4096","tychei","sr","ModelPath","Path","relativePath","start","reduce","e","modelArr","contextArr","end","slice","element","modelPush","contextPush","copy","newElement","startsWith","model","other","every","map","join","fn","thisArg","super","set","shift","Errors","errors","error","exact","filter","equals","iterator","Node_1","Infinity","between","Array","index","nextIndex","getArray","navigate","parseInt","toString","options","loose","isArray","obj","list","SwitchNode","activeCase","concat","fallback","sorter","a","b","matchedCases","sort","escapeString","str","quoteString","initPredicatesSchemas","LocationFields","Common_1","StateChoice","item","durability","potion","nbt","state","fluid","position","x","y","z","biome","feature","dimension","light","stat","gamemode","advancements","recipes","stats","amplifier","ambient","visible","absolute","horizontal","allowTag","team","location","distance","flags","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","LootFunctions","LootConditions","LootCopySources","LootEntitySources","LootTableTypes","Map","requires","allows","initDecoratorSchemas","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","step","extra_count","extra_chance","noise_level","below_noise","above_noise","noise_to_count_ratio","noise_factor","noise_offset","outer","inner","baseline","above_bottom","below_top","bottom_inclusive","top_inclusive","BiasedRangeConfig","cutoff","surface","floor_to_ceiling_search_range","max_water_depth","__setModuleDefault","__importStar","mod","result","getSchemas","getCollections","lootContext","Collections_1","schemas_1","CollectionRegistry","initCollections","SchemaRegistry","initSchemas","DataModel","Path_1","Errors_1","schema","data","listeners","history","JSON","stringify","historyIndex","historyMax","listener","indexOf","splice","newHistory","silentInvalidate","invalidated","invalidate","silent","reset","isNaN","last","console","log","parse","withModel","clear","tempErrors","boolean","StringOrList","ObjectOrList","ListNode_1","SwitchNode_1","switchNode","choice","isValid","XOrList","presetNode","objectNode","presets","Number","isInteger","number","utils_1","fields","defaultFields","getActiveFields","switchValue","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","includes","pathElements","activeFields","existingKeys","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","constructor","transform","isEnum","isValidator","getValues","isDefinition","allowUnknown","additional","values","string","warn","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Predicates_1","Recipe_1","Tags_1","TextComponent_1","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","display","icon","title","description","background","frame","show_toast","announce_to_chat","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","num_bees_inside","partner","child","from","to","victims","villager","zombie","killing_blow","slots","empty","occupied","full","items","delta","unique_entity_types","entered","exited","recipe","condition","LootContext_1","functionsAndConditions","functions","compileSwitchNode","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","conditionSwtichNode","functionSwtichNode","entitySourceSwtichNode","copySourceSwtichNode","pools","rolls","bonus_rolls","weightMod","weight","quality","expand","attribute","operation","slot","pack","pack_format","group","ingredients","ingredient","cookingtime","addition","TagBase","required","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","leadingSlash","allowPartial","hoverEvent","translate","with","objective","selector","keybind","storage","interpret","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","EntityPredicate","loot_table","projectile","shooter","signal_strength","NoPreset","generator","biome_source","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","large_biomes","legacy_biome_init_layer","settings","lakes","features","layers","structures","Math","floor","random","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","surface_builder","depth","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature","reach","decorator","rim","rim_size","exit","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","hat_state","decor_state","stem_state","valid_base_block","planted","feature_false","feature_true","to_place","place_on","place_in","place_under","rock_count","hole_count","requires_block_below","valid_blocks","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","crown_height","trunk_height","decorators","min_clipped_height","lower_size","upper_size","upper_limit","middle_size","min_size","extra_size","stronghold","spacing","separation","salt","templatePoolConfig","start_pool","biome_temp","large_probability","cluster_probability","portal_type","is_beached","top_material","under_material","underwater_material","snowy","elements","element_type","projection","generate_features","bonus_chest","dimensions","ItemModifier_1","initItemModifierSchemas","conditionIDSwtichNode","functionIDSwtichNode","_p","debug_settings","debug_mode","air_state","distanceFactor","vertical_rotation","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","wetness_mean","wetness_deviation","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","min_outer_wall_distance","max_outer_wall_distance","min_distribution_points","max_distribution_points","min_point_offset","max_point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","direction","allow_water","height_distribution","body_provider","head_provider","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","root_replaceable","root_state_provider","hanging_root_state_provider","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","foliage_provider","bend_length","min_height_for_leaves","foliage_height","leaf_placement_attempts","_d","global","define","Alea","me","mash","String","h","charCodeAt","next","s0","s1","s2","impl","opts","xg","prng","int32","double","quick","XorGen","strseed","w","X","j","init","Date","math","nodecrypto","startdenom","pow","significance","overflow","seedrandom","callback","shortseed","mixkey","flatten","prop","typ","entropy","tostring","out","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","navigator","plugins","screen","autoseed","arc4","ARC4","g","S","pass","is_math_call","keylen","width","smear","stringseed","fromCharCode","apply","ex","self","dec2hex","dec","substr","hexId","arr","window","htmlEncode","stringToColor","abs","imul","hashString","clamp","clampedLerp","lerp","lerp2","smoothstep","watchers","oldValue","watcher","watch","find","localStorage","getItem","setItem","__awaiter","_arguments","P","Promise","resolve","reject","fulfilled","rejected","done","then","removeItem","mcdataUrl","vanillaDatapackUrl","refs","hash","url","fetchData","versionId","version","versions","dynamic","all","matches","cache","caches","open","promises","request","delete","deleteMatching","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","registries","checkVersion","minVersion","maxVersion","mcdata_master","getData","states","App","blockStateRegistry","vanilla_datapack_summary","cacheResponse","ok","json","fetchResponse","fetch","responseData","put","Response","Octicon","archive","arrow_both","arrow_left","arrow_right","chevron_down","chevron_right","clippy","code","dash","download","eye","eye_closed","fold","gear","globe","info","issue_opened","kebab_horizontal","link","mark_github","moon","note","package","play","plus","plus_circle","search","square","square_fill","sun","trashcan","three_bars","unfold","xo","yo","zo","x2","y2","z2","x3","y3","z3","x4","y4","z4","x5","y5","z5","y6","sampleAndLerp","grad","GRADIENT","lerp3","gradDot","noiseLevels","lowestFreqInputFactor","lowestFreqValueFactor","fill","fixY","inputF","valueF","wrap","first","second","expectedDeviation","valueFactor","getValue","Preview","redraw","view","dx","dy","viewScale","biomeColors","endsWith","el","watchRun","textContent","toFixed","onClick","img","noiseMaps","biomeColorCache","getBiomeColor","xx","yy","closestBiome","minDist","minBiome","dist","fitness","assign","padStart","Locales","resolveLocaleParams","locale","language","en","segmentedLocale","segments","minDepth","prev","array","addEventListener","evt","stopPropagation","on","querySelectorAll","getAttribute","attributes","getNamedItem","html","innerHTML","mounted","toggleMenu","classList","hideMenu","document","body","closest","contains","remove","capture","once","chunkWidth","chunkHeight","chunkCountY","biomeDepth","biomeScale","noiseColumnCache","xOffset","minLimitPerlinNoise","fromRange","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","cx","ox","noise1","fillNoiseColumn","noise2","oy","cachedColumn","xzScale","yScale","xzFactor","yFactor","randomDensity","getRandomDensity","sampleAndClampNoise","getOctaveNoise","falloff","minLimitNoise","maxLimitNoise","mainNoise","terrain","featureColors","label","ga","Tracker","hotkey","minimized","theme","preview","Versions","Previews","debug","iterateNoiseColumn","reverse","getColor","Features","decorated","pos","getPositions","flatMap","getPlacements","random_boolean_selector","random_selector","simple_random_selector","nextInt","Decorators","sampleUniformInt","count_extra","count_multilayer","count_noise","biomeInfoNoise","count_noise_biased","factor","ceil","dark_oak_tree","depth_average","decorateY","emerald_ore","fire","glowstone","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","water_lake","perspective","usedFeatures","featureData","placements","filtered","useFeature","featureFn","decoratorFn","Models","models","jsonOutput","errorsVisible","treeMinimized","jsonError","getName","schemasLoaded","localesLoaded","loaded","mobilePanel","local_storage","save","updateSchemas","documentElement","setAttribute","hasFetchedEnglish","minVersionId","maxVersionId","findIndex","updateLocale","ctrlKey","undo","redo","Toggle","activeOcticon","Header","homeLink","panelTogglesId","getPanelToggles","panels","mount","Dropdown","GeneratorCard","arrow","active","cleanUrl","Home","filteredModels","NotFound","FieldSettings","fieldListId","fieldList","getFields","pathInput","nameInput","ssr","NOOP","calc","prefix","createElement","style","cssText","isString","elementOrSelector","ele","querySelector","getOption","propName","def","getGutterSize","gutterSize","isFirst","isLast","gutterAlign","defaultGutterFn","gutterDirection","gut","className","defaultElementStyleFn","dim","gutSize","defaultGutterStyleFn","idsOption","clientAxis","positionEnd","clientSize","ids","parentNode","parentStyle","getComputedStyle","parentFlexDirection","flexDirection","sizes","minSize","minSizes","expandToMin","snapOffset","dragInterval","cursor","gutter","elementStyle","gutterStyle","setElementSize","getSizes","getMousePosition","touches","adjust","percentage","drag","dragging","dragOffset","round","calculateSizes","aBounds","bBounds","trimToMin","sizesToTrim","parentSize","computedStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","innerSize","excessPixels","toSpare","pixelSizes","pixelSize","elementGutterSize","elementMinSize","newPixelSize","takenPixels","stopDragging","stop","move","userSelect","webkitUserSelect","MozUserSelect","pointerEvents","startDragging","button","preventDefault","pairs","adjustToMin","pair","temp","gutterElement","setGutterSize","insertBefore","computedSize","setSizes","newSizes","trimmed","newSize","collapse","destroy","preserveStyles","preserveGutter","removeChild","SplitGroup","suffixInjector","mounter","biome_noise","setPreview","noise_settings","biomePreview","onChange","setBiomeColor","getBiomeHex","getFilterKey","origin","canFlatten","filterKey","visibleEntries","nestedPath","keysModel","renderHtml","onFalse","onTrue","pathWithChoiceContext","suffix","pathLocale","onAdd","onAddBottom","childValue","removeId","childPath","cPrefix","cSuffix","cBody","help","contextMenu","keyPath","blockState","parsed","visibleKeys","field","getContext","fieldSettings","inputId","rawString","selectRaw","contextPath","datalistId","popupIcon","message","popup","getElementsByTagName","openMenu","helpMessage","insertAdjacentHTML","inputEl","appendChild","select","execCommand","timer","setTimeout","clearTimeout","TreePanel","getContent","rendered","tree","addListener","presetList","presetListId","getPresets","query","trim","split","vanilla_datapack_data","fetchPreset","toggle","parentElement","transformOutput","SourcePanel","updateContent","rawSource","err","fileContents","encodeURIComponent","downloadAnchor","lastElementChild","click","shareInput","btoa","pathname","PreviewPanel","canvas","ctx","newState","getSize","createImageData","draw","putImageData","dragStart","menu","onDrag","clientWidth","clientHeight","customValidation","requiredProps","Generator","getSideContent","validatePreview","sideContent","getAll","categories","router","urlParts","urlParams","URLSearchParams","getElementById","renderer","panel","has","atob","Element","hasAttribute","pushState"],"mappings":"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ACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,sBAEJH,EAAYG,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,iCAEJH,EAAYG,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,+BAEJH,EAAYG,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,YAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cAC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nB,EAAQub,qBAAkB,EAqgB1Bvb,EAAQub,gBApgBR,SAAyB7V,GACrBA,EAAYG,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,iBAAkB,CACnC,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,+BAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,YAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,4BAEJH,EAAYG,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,4BAEJH,EAAYG,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,8BAEJH,EAAYG,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,YAEJH,EAAYG,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,qBAEJH,EAAYG,SAAS,kBAAmB,CACpC,MACA,WAEJH,EAAYG,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sB,6BCngBRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQyb,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxB/K,EAAW,EAAQ,GACnBgL,EAAc,EAAQ,IACtB2G,EAAc,EAAQ,IACtBC,EAAkB,EAAQ,IAC1B3G,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAC1BuG,EAAa,EAAQ,IACrBC,EAAkB,EAAQ,IAiBhCpnB,EAAQyb,YAhBR,SAAq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CA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,+BAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,YAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,4BAEJH,EAAYG,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,4BAEJH,EAAYG,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,8BAEJH,EAAYG,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QAC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","file":"js/bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 98);\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.FloatProvider = exports.UniformFloat = exports.UniformInt = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n const Uniform = (integer) => (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.UniformInt = Uniform(true);\r\n exports.UniformFloat = Uniform();\r\n exports.FloatProvider = (config) => ObjectWithType('worldgen/float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n base: core_1.NumberNode(config),\r\n spread: core_1.NumberNode({ min: 0 })\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:requirements': {\r\n terms: core_1.ListNode(Reference('condition')),\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n return value.map((obj, index) => children.validate(path.push(index), obj, errors, options));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.NumberNode()\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n const RangeConfig = {\r\n bottom_inclusive: Reference('vertical_anchor'),\r\n top_inclusive: Reference('vertical_anchor')\r\n };\r\n const BiasedRangeConfig = {\r\n ...RangeConfig,\r\n cutoff: core_1.NumberNode({ integer: true })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.NumberNode()\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: Reference('vertical_anchor'),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_with_water_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased_to_bottom': BiasedRangeConfig,\r\n 'minecraft:range_very_biased_to_bottom': BiasedRangeConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = exports.lootContext = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a;\r\n this.schema = schema;\r\n this.data = schema.default();\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n node = node[e];\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n node[e] = {};\r\n }\r\n node = node[e];\r\n });\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n let res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n res[k] = undefined;\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\r\n : () => []);\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = this.default() || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Common_1.Range(),\r\n duration: Common_1.Range()\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n }),\r\n ...conditions\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' })),\r\n ...conditions\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } })),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }))),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true }),\r\n ...conditions\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n ...conditions\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier')),\r\n ...conditions\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...conditions\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component')),\r\n ...conditions\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } }),\r\n ...conditions\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n }))),\r\n ...conditions\r\n }\r\n }\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:vanilla_layered': {\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings'))\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode({ min: -1, max: 1 }),\r\n temperature: core_1.NumberNode({ min: -1, max: 1 }),\r\n humidity: core_1.NumberNode({ min: -1, max: 1 }),\r\n weirdness: core_1.NumberNode({ min: -1, max: 1 }),\r\n offset: core_1.NumberNode({ min: -1, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.NumberNode({ integer: true })\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: Reference('block_pos')\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.BooleanNode(),\r\n crystal_beam_target: Reference('block_pos'),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.NumberNode({ integer: true }),\r\n centerZ: core_1.NumberNode({ integer: true }),\r\n radius: core_1.NumberNode({ integer: true }),\r\n height: core_1.NumberNode({ integer: true }),\r\n guarded: core_1.BooleanNode()\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.BooleanNode()\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.BooleanNode()\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:vanilla_layered': {\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings'))\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode({ min: -1, max: 1 }),\r\n temperature: core_1.NumberNode({ min: -1, max: 1 }),\r\n humidity: core_1.NumberNode({ min: -1, max: 1 }),\r\n weirdness: core_1.NumberNode({ min: -1, max: 1 }),\r\n offset: core_1.NumberNode({ min: -1, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': {\r\n bottom_inclusive: Reference('vertical_anchor'),\r\n top_inclusive: Reference('vertical_anchor'),\r\n y_scale: Common_1.UniformInt(),\r\n distanceFactor: Common_1.FloatProvider({ min: 0, max: 1 }),\r\n vertical_rotation: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode(),\r\n }\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.NumberNode({ integer: true })\r\n };\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n }))\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.UniformInt(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n radius: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.UniformInt({ min: 0, max: 64, maxSpread: 64 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness_mean: core_1.NumberNode({ min: 0, max: 1 }),\r\n wetness_deviation: core_1.NumberNode({ min: 0, max: 1 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: Reference('block_pos')\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.BooleanNode(),\r\n crystal_beam_target: Reference('block_pos'),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.NumberNode({ integer: true }),\r\n centerZ: core_1.NumberNode({ integer: true }),\r\n radius: core_1.NumberNode({ integer: true }),\r\n height: core_1.NumberNode({ integer: true }),\r\n guarded: core_1.BooleanNode()\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state'))\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n min_outer_wall_distance: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_outer_wall_distance: core_1.Opt(core_1.NumberNode({ min: 1, max: 20, integer: true })),\r\n min_distribution_points: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_distribution_points: core_1.Opt(core_1.NumberNode({ min: 1, max: 20, integer: true })),\r\n min_point_offset: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_point_offset: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.UniformInt()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.BooleanNode()\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.UniformInt({ min: 1, max: 30, maxSpread: 30 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n empty_space_search_radius: core_1.NumberNode({ integer: true, min: 0, max: 20 }),\r\n max_offset_from_origin: core_1.NumberNode({ integer: true, min: 0, max: 20 }),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.UniformInt({ min: 1, max: 32, maxSpread: 32 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.UniformInt({ min: 1, max: 256, maxSpread: 256 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.UniformInt(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.BooleanNode()\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","// A port of an algorithm by Johannes Baagøe , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n","const dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\nexport function hexId(length = 12) {\n var arr = new Uint8Array(length / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n}\nexport function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>')\n .replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n}\nexport function hashString(s) {\n let h = 0;\n for (let i = 0; i < s.length; i++)\n h = Math.imul(31, h) + s.charCodeAt(i) | 0;\n return h;\n}\nexport function stringToColor(str) {\n const h = Math.abs(hashString(str));\n return [h % 256, (h >> 8) % 256, (h >> 16) % 256];\n}\nexport function clamp(a, b, c) {\n return Math.max(a, Math.min(b, c));\n}\nexport function clampedLerp(a, b, c) {\n if (c < 0) {\n return a;\n }\n else if (c > 1) {\n return b;\n }\n else {\n return lerp(c, a, b);\n }\n}\nexport function lerp(a, b, c) {\n return b + a * (c - b);\n}\nexport function lerp2(a, b, c, d, e, f) {\n return lerp(b, lerp(a, c, d), lerp(a, e, f));\n}\nexport function lerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k));\n}\nexport function smoothstep(x) {\n return x * x * x * (x * (x * 6 - 15) + 10);\n}\n","import { hexId } from \"../Utils\";\nexport class Property {\n constructor(value) {\n this.value = value;\n this.watchers = [];\n }\n set(value) {\n if (this.value === value)\n return;\n const oldValue = this.value;\n this.value = value;\n this.watchers.forEach(w => w.watcher(this.value, oldValue));\n }\n get() {\n return this.value;\n }\n watchRun(watcher, name) {\n watcher(this.value, null);\n return this.watch(watcher, name);\n }\n watch(watcher, name) {\n name = name !== null && name !== void 0 ? name : hexId();\n const w = this.watchers.find(w => w.name === name);\n if (w) {\n w.watcher = watcher;\n }\n else {\n this.watchers.push({ name, watcher });\n }\n return this;\n }\n}\n","import { Property } from './Property';\nexport class LocalStorageProperty extends Property {\n constructor(id, fallback) {\n var _a;\n super((_a = localStorage.getItem(id)) !== null && _a !== void 0 ? _a : fallback);\n this.id = id;\n }\n set(value) {\n super.set(value);\n localStorage.setItem(this.id, value);\n }\n get() {\n return this.value;\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { App, checkVersion } from './App';\nimport config from '../config.json';\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\nconst CACHE_NAME = `misode-v1`;\nconst mcdataUrl = 'https://raw.githubusercontent.com/Arcensoth/mcdata';\nconst vanillaDatapackUrl = 'https://raw.githubusercontent.com/SPGoding/vanilla-datapack';\nconst refs = [\n {\n id: 'mcdata_master',\n hash: __MCDATA_MASTER_HASH__,\n url: mcdataUrl\n },\n {\n id: 'vanilla_datapack_summary',\n hash: __VANILLA_DATAPACK_SUMMARY_HASH__,\n url: vanillaDatapackUrl\n },\n];\nexport function fetchData(target, versionId) {\n return __awaiter(this, void 0, void 0, function* () {\n const version = config.versions.find(v => v.id === versionId);\n if (!version)\n return;\n if (version.dynamic) {\n yield Promise.all(refs\n .filter(r => localStorage.getItem(`cached_${r.id}`) !== r.hash)\n .map((r) => __awaiter(this, void 0, void 0, function* () {\n yield deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`));\n localStorage.setItem(`cached_${r.id}`, r.hash);\n })));\n }\n yield Promise.all([\n fetchRegistries(version, target),\n fetchBlockStateMap(version),\n fetchDynamicRegistries(version, target)\n ]);\n });\n}\nfunction fetchRegistries(version, target) {\n return __awaiter(this, void 0, void 0, function* () {\n const registries = config.registries\n .filter(r => !r.dynamic)\n .filter(r => checkVersion(version.id, r.minVersion, r.maxVersion));\n if (checkVersion(version.id, undefined, '1.15')) {\n const url = `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/registries.json`;\n try {\n const data = yield getData(url, (data) => {\n const res = {};\n Object.keys(data).forEach(k => {\n res[k.slice(10)] = Object.keys(data[k].entries);\n });\n return res;\n });\n registries.forEach(r => {\n var _a;\n target.register(r.id, (_a = data[r.id]) !== null && _a !== void 0 ? _a : []);\n });\n }\n catch (e) {\n console.warn(`Error occurred while fetching registries:`, e);\n }\n }\n else {\n return Promise.all(registries.map((r) => __awaiter(this, void 0, void 0, function* () {\n try {\n const url = r.path\n ? `${mcdataUrl}/${version.refs.mcdata_master}/${r.path}/data.min.json`\n : `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/registries/${r.id}/data.min.json`;\n target.register(r.id, yield getData(url, v => v.values));\n }\n catch (e) {\n console.warn(`Error occurred while registry ${r.id}:`, e);\n }\n })));\n }\n });\n}\nfunction fetchBlockStateMap(version) {\n return __awaiter(this, void 0, void 0, function* () {\n if (checkVersion(version.id, undefined, '1.16')) {\n const url = (checkVersion(version.id, undefined, '1.15'))\n ? `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/blocks.json`\n : `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/data.min.json`;\n try {\n const data = yield getData(url, (data) => {\n const res = {};\n Object.keys(data).forEach(b => {\n res[b] = {\n properties: data[b].properties,\n default: data[b].states.find((s) => s.default).properties\n };\n });\n return res;\n });\n App.blockStateRegistry = data;\n }\n catch (e) {\n console.warn(`Error occurred while fetching block state map:`, e);\n }\n }\n else {\n const url = `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;\n try {\n App.blockStateRegistry = yield getData(url);\n }\n catch (e) {\n console.warn(`Error occurred while fetching block state map:`, e);\n }\n }\n });\n}\nfunction fetchDynamicRegistries(version, target) {\n return __awaiter(this, void 0, void 0, function* () {\n const registries = config.registries\n .filter(r => r.dynamic)\n .filter(r => checkVersion(version.id, r.minVersion, r.maxVersion));\n if (checkVersion(version.id, '1.16')) {\n const url = `${vanillaDatapackUrl}/${version.refs.vanilla_datapack_summary}/summary/flattened.min.json`;\n try {\n const data = yield getData(url);\n registries.forEach(r => {\n target.register(r.id, data[r.id]);\n });\n }\n catch (e) {\n console.warn(`Error occurred while fetching dynamic registries:`, e);\n }\n }\n });\n}\nexport function fetchPreset(version, registry, id) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield fetch(`${vanillaDatapackUrl}/${version.refs.vanilla_datapack_data}/data/minecraft/${registry}/${id}.json`);\n return yield res.json();\n }\n catch (e) {\n console.warn(`Error occurred while fetching ${registry} preset ${id}:`, e);\n }\n });\n}\nfunction getData(url, fn = (v) => v) {\n return __awaiter(this, void 0, void 0, function* () {\n const cache = yield caches.open(CACHE_NAME);\n const cacheResponse = yield cache.match(url);\n if (cacheResponse && cacheResponse.ok) {\n return yield cacheResponse.json();\n }\n const fetchResponse = yield fetch(url);\n const responseData = fn(yield fetchResponse.json());\n yield cache.put(url, new Response(JSON.stringify(responseData)));\n return responseData;\n });\n}\nfunction deleteMatching(matches) {\n return __awaiter(this, void 0, void 0, function* () {\n const cache = yield caches.open(CACHE_NAME);\n const promises = [];\n for (const request of yield cache.keys()) {\n if (matches(request.url)) {\n promises.push(cache.delete(request));\n }\n }\n return (yield Promise.all(promises)).length > 0;\n });\n}\n","export const Octicon = {\n archive: '',\n arrow_both: '',\n arrow_left: '',\n arrow_right: '',\n chevron_down: '',\n chevron_right: '',\n clippy: '',\n code: '',\n dash: '',\n download: '',\n eye: '',\n eye_closed: '',\n fold: '',\n gear: '',\n globe: '',\n history: '',\n info: '',\n issue_opened: '',\n kebab_horizontal: '',\n link: '',\n mark_github: '',\n moon: '',\n note: '',\n package: '',\n play: '',\n plus: '',\n plus_circle: '',\n search: '',\n square: '',\n square_fill: '',\n sun: '',\n tag: '',\n trashcan: '',\n three_bars: '',\n unfold: '',\n x: '',\n};\n","import { lerp3, smoothstep } from '../../Utils';\nexport class ImprovedNoise {\n constructor(random) {\n this.xo = random() * 256;\n this.yo = random() * 256;\n this.zo = random() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i;\n }\n for (let i = 0; i < 256; i += 1) {\n const n = random.int32() % (256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + n];\n this.p[i + n] = b;\n }\n }\n noise(x, y, z, a, b) {\n const x2 = x + this.xo;\n const y2 = y + this.yo;\n const z2 = z + this.zo;\n const x3 = Math.floor(x2);\n const y3 = Math.floor(y2);\n const z3 = Math.floor(z2);\n const x4 = x2 - x3;\n const y4 = y2 - y3;\n const z4 = z2 - z3;\n const x5 = smoothstep(x4);\n const y5 = smoothstep(y4);\n const z5 = smoothstep(z4);\n let y6 = 0;\n if (a !== 0) {\n y6 = Math.floor(Math.min(b, y4) / a) * a;\n }\n return this.sampleAndLerp(x3, y3, z3, x4, y4 - y6, z4, x5, y5, z5);\n }\n gradDot(a, b, c, d) {\n const grad = ImprovedNoise.GRADIENT[a & 15];\n return grad[0] * b + grad[1] * c + grad[2] * d;\n }\n P(i) {\n return this.p[i & 255] & 255;\n }\n sampleAndLerp(a, b, c, d, e, f, g, h, i) {\n const j = this.P(a) + b;\n const k = this.P(j) + c;\n const l = this.P(j + 1) + c;\n const m = this.P(a + 1) + b;\n const n = this.P(m) + c;\n const o = this.P(m + 1) + c;\n const p = this.gradDot(this.P(k), d, e, f);\n const q = this.gradDot(this.P(n), d - 1, e, f);\n const r = this.gradDot(this.P(l), d, e - 1, f);\n const s = this.gradDot(this.P(o), d - 1, e - 1, f);\n const t = this.gradDot(this.P(k + 1), d, e, f - 1);\n const u = this.gradDot(this.P(n + 1), d - 1, e, f - 1);\n const v = this.gradDot(this.P(l + 1), d, e - 1, f - 1);\n const w = this.gradDot(this.P(o + 1), d - 1, e - 1, f - 1);\n return lerp3(g, h, i, p, q, r, s, t, u, v, w);\n }\n}\nImprovedNoise.GRADIENT = [[1, 1, 0], [-1, 1, 0], [1, -1, 0], [-1, -1, 0], [1, 0, 1], [-1, 0, 1], [1, 0, -1], [-1, 0, -1], [0, 1, 1], [0, -1, 1], [0, 1, -1], [0, -1, -1], [1, 1, 0], [0, -1, 1], [-1, 1, 0], [0, -1, -1]];\n","import seedrandom from 'seedrandom';\nimport { ImprovedNoise } from \"./ImprovedNoise\";\nexport class PerlinNoise {\n constructor(seed, firstOctave, amplitudes) {\n this.amplitudes = amplitudes;\n this.noiseLevels = Array(this.amplitudes.length);\n for (let i = 0; i < this.amplitudes.length; i += 1) {\n this.noiseLevels[i] = new ImprovedNoise(seedrandom(seed));\n }\n this.lowestFreqInputFactor = Math.pow(2, firstOctave);\n this.lowestFreqValueFactor = Math.pow(2, (amplitudes.length - 1)) / (Math.pow(2, amplitudes.length) - 1);\n }\n static fromRange(seed, min, max) {\n return new PerlinNoise(seed, min, Array(max - min + 1).fill(1));\n }\n getValue(x, y, z, a = 0, b = 0, fixY = false) {\n let value = 0;\n let inputF = this.lowestFreqInputFactor;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += this.amplitudes[i] * noise.noise(PerlinNoise.wrap(x * inputF), fixY ? -noise.yo : PerlinNoise.wrap(y * inputF), PerlinNoise.wrap(z * inputF), a * inputF, b * inputF) * valueF;\n }\n inputF *= 2;\n valueF /= 2;\n }\n return value;\n }\n getOctaveNoise(i) {\n return this.noiseLevels[this.noiseLevels.length - 1 - i];\n }\n static wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n","import { PerlinNoise } from './PerlinNoise';\nexport class NormalNoise {\n constructor(seed, firstOctave, amplitudes) {\n this.first = new PerlinNoise(seed, firstOctave, amplitudes);\n this.second = new PerlinNoise(seed + 'a', firstOctave, amplitudes);\n let min = +Infinity;\n let max = -Infinity;\n for (let i = 0; i < amplitudes.length; i += 1) {\n if (amplitudes[i] !== 0) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n const expectedDeviation = 0.1 * (1 + 1 / (max - min + 1));\n this.valueFactor = (1 / 6) / expectedDeviation;\n }\n getValue(x, y, z) {\n const x2 = x * 1.0181268882175227;\n const y2 = y * 1.0181268882175227;\n const z2 = z * 1.0181268882175227;\n return (this.first.getValue(x, y, z) + this.second.getValue(x2, y2, z2)) * this.valueFactor;\n }\n wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n","export class Preview {\n constructor() {\n this.redraw = () => { };\n }\n dirty(path) {\n return JSON.stringify(this.state) !== JSON.stringify(path.get());\n }\n menu(view, redraw) {\n return '';\n }\n onDrag(dx, dy) { }\n}\n","import { Path } from \"@mcschema/core\";\nimport { Octicon } from \"../components/Octicon\";\nimport { Property } from \"../state/Property\";\nimport { hexId, stringToColor } from \"../Utils\";\nimport { NormalNoise } from './noise/NormalNoise';\nimport { Preview } from './Preview';\nconst LOCAL_STORAGE_BIOME_COLORS = 'biome_colors';\nexport class BiomeNoisePreview extends Preview {\n constructor() {\n var _a;\n super();\n this.offsetX = 0;\n this.offsetY = 0;\n this.seed = hexId();\n this.viewScale = new Property(0);\n this.biomeColors = new Property({});\n this.biomeColors.set(JSON.parse((_a = localStorage.getItem(LOCAL_STORAGE_BIOME_COLORS)) !== null && _a !== void 0 ? _a : '{}'));\n this.noise = [];\n this.biomeColors.watch(() => this.redraw());\n }\n getName() {\n return 'biome-noise';\n }\n active(path) {\n return path.endsWith(new Path(['generator', 'biome_source']))\n && path.push('type').get() === 'minecraft:multi_noise';\n }\n menu(view, redraw) {\n return `\n
      {\n this.viewScale.watchRun(value => {\n const blocks = (Math.pow(2, value)) * 200;\n el.textContent = blocks.toFixed();\n }, 'preview-controls');\n })}\">
      \n
      {\n this.viewScale.set(this.viewScale.get() - 0.5);\n redraw();\n })}\">\n ${Octicon.plus}\n
      \n
      {\n this.viewScale.set(this.viewScale.get() + 0.5);\n redraw();\n })}\">\n ${Octicon.dash}\n
      `;\n }\n getSize() {\n return [200, 100];\n }\n draw(model, img) {\n var _a;\n this.noise = BiomeNoisePreview.noiseMaps.map((id, i) => {\n const config = this.state[`${id}_noise`];\n return new NormalNoise(this.seed + i, config.firstOctave, config.amplitudes);\n });\n const biomeColorCache = {};\n this.state.biomes.forEach((b) => {\n biomeColorCache[b.biome] = this.getBiomeColor(b.biome);\n });\n const data = img.data;\n const s = (Math.pow(2, this.viewScale.get()));\n for (let x = 0; x < 200; x += 1) {\n for (let y = 0; y < 100; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const xx = (x - this.offsetX) * s - 100 * s;\n const yy = (y - this.offsetY) * s - 50 * s;\n const b = this.closestBiome(xx, yy);\n const color = (_a = biomeColorCache[b]) !== null && _a !== void 0 ? _a : [128, 128, 128];\n data[i] = color[0];\n data[i + 1] = color[1];\n data[i + 2] = color[2];\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX += dx;\n this.offsetY += dy;\n }\n closestBiome(x, y) {\n if (!this.state.biomes || this.state.biomes.length === 0)\n return '';\n const noise = this.noise.map(n => n.getValue(x, y, 0));\n let minDist = Infinity;\n let minBiome = '';\n for (const b of this.state.biomes) {\n const dist = this.fitness(b.parameters, { altitude: noise[0], temperature: noise[1], humidity: noise[2], weirdness: noise[3], offset: 0 });\n if (dist < minDist) {\n minDist = dist;\n minBiome = b.biome;\n }\n }\n return minBiome;\n }\n fitness(a, b) {\n return (a.altitude - b.altitude) * (a.altitude - b.altitude) + (a.temperature - b.temperature) * (a.temperature - b.temperature) + (a.humidity - b.humidity) * (a.humidity - b.humidity) + (a.weirdness - b.weirdness) * (a.weirdness - b.weirdness) + (a.offset - b.offset) * (a.offset - b.offset);\n }\n getBiomeColor(biome) {\n const color = this.biomeColors.get()[biome];\n if (color === undefined) {\n return stringToColor(biome);\n }\n return color;\n }\n setBiomeColor(biome, value) {\n const color = [parseInt(value.slice(1, 3), 16), parseInt(value.slice(3, 5), 16), parseInt(value.slice(5, 7), 16)];\n this.biomeColors.set(Object.assign(Object.assign({}, this.biomeColors.get()), { [biome]: color }));\n localStorage.setItem(LOCAL_STORAGE_BIOME_COLORS, JSON.stringify(this.biomeColors.get()));\n }\n getBiomeHex(biome) {\n return '#' + this.getBiomeColor(biome).map(e => e.toString(16).padStart(2, '0')).join('');\n }\n}\nBiomeNoisePreview.noiseMaps = ['altitude', 'temperature', 'humidity', 'weirdness'];\n","import English from '../locales/en.json';\nimport { App } from './App';\nexport const Locales = {\n 'en': English\n};\nexport function resolveLocaleParams(value, params) {\n return value === null || value === void 0 ? void 0 : value.replace(/%\\d+%/g, match => {\n const index = parseInt(match.slice(1, -1));\n return (params === null || params === void 0 ? void 0 : params[index]) !== undefined ? params[index] : match;\n });\n}\nexport function locale(key, params) {\n var _a, _b, _c;\n const value = (_b = (_a = Locales[App.language.get()]) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : Locales.en[key];\n return (_c = resolveLocaleParams(value, params)) !== null && _c !== void 0 ? _c : key;\n}\nexport function segmentedLocale(segments, params, depth = 5, minDepth = 1) {\n return [App.language.get(), 'en'].reduce((prev, code) => {\n var _a;\n if (prev !== undefined)\n return prev;\n const array = segments.slice(-depth);\n while (array.length >= minDepth) {\n const locale = resolveLocaleParams((_a = Locales[code]) === null || _a === void 0 ? void 0 : _a[array.join('.')], params);\n if (locale !== undefined)\n return locale;\n array.shift();\n }\n return undefined;\n }, undefined);\n}\n","import { locale } from \"../Locales\";\nimport { hexId } from \"../Utils\";\nexport class View {\n constructor() {\n this.registry = {};\n }\n render() {\n return '';\n }\n register(callback) {\n const id = hexId();\n this.registry[id] = callback;\n return id;\n }\n on(type, callback) {\n return this.register(el => {\n el.addEventListener(type, evt => {\n callback(el);\n evt.stopPropagation();\n });\n });\n }\n onChange(callback) {\n return this.on('change', callback);\n }\n onClick(callback) {\n return this.on('click', callback);\n }\n mounted(el, clear = true) {\n el.querySelectorAll('[data-id]').forEach(el => {\n var _a, _b;\n const id = el.getAttribute('data-id');\n (_b = (_a = this.registry)[id]) === null || _b === void 0 ? void 0 : _b.call(_a, el);\n });\n if (clear) {\n this.registry = {};\n }\n el.querySelectorAll('[data-i18n]').forEach(el => {\n el.textContent = locale(el.attributes.getNamedItem('data-i18n').value);\n });\n }\n mount(el, html, clear = true) {\n el.innerHTML = html;\n this.mounted(el, clear);\n }\n}\nexport const toggleMenu = (el) => {\n el.classList.add('active');\n const hideMenu = () => document.body.addEventListener('click', evt => {\n var _a;\n if (evt.target.matches('.btn.input') || ((_a = evt.target.closest('.btn')) === null || _a === void 0 ? void 0 : _a.classList.contains('input'))) {\n hideMenu();\n return;\n }\n el.classList.remove('active');\n }, { capture: true, once: true });\n hideMenu();\n};\n","import { PerlinNoise } from './PerlinNoise';\nimport { clampedLerp, hexId, lerp2 } from '../../Utils';\nexport class NoiseChunkGenerator {\n constructor() {\n this.settings = {};\n this.chunkWidth = 4;\n this.chunkHeight = 4;\n this.chunkCountY = 32;\n this.biomeDepth = 0.1;\n this.biomeScale = 0.2;\n this.noiseColumnCache = [];\n this.xOffset = 0;\n this.minLimitPerlinNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n this.maxLimitPerlinNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n this.mainPerlinNoise = PerlinNoise.fromRange(hexId(), -7, 0);\n this.depthNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n }\n reset(settings, depth, scale, xOffset, width) {\n this.settings = settings;\n this.chunkWidth = settings.size_horizontal * 4;\n this.chunkHeight = settings.size_vertical * 4;\n this.chunkCountY = Math.floor(settings.height / this.chunkHeight);\n if (settings.amplified && depth > 0) {\n depth = 1 + depth * 2;\n scale = 1 + scale * 4;\n }\n this.biomeDepth = 0.265625 * (depth * 0.5 - 0.125);\n this.biomeScale = 96.0 / (scale * 0.9 + 0.1);\n this.noiseColumnCache = Array(width).fill(null);\n this.xOffset = xOffset;\n }\n iterateNoiseColumn(x) {\n const data = Array(this.chunkCountY * this.chunkHeight);\n const cx = Math.floor(x / this.chunkWidth);\n const ox = Math.floor(x % this.chunkWidth) / this.chunkWidth;\n const noise1 = this.fillNoiseColumn(cx);\n const noise2 = this.fillNoiseColumn(cx + 1);\n for (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n for (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n const oy = yy / this.chunkHeight;\n const i = y * this.chunkHeight + yy;\n data[i] = lerp2(oy, ox, noise1[y], noise1[y + 1], noise2[y], noise2[y + 1]);\n }\n }\n return data;\n }\n fillNoiseColumn(x) {\n const cachedColumn = this.noiseColumnCache[x - this.xOffset];\n if (cachedColumn)\n return cachedColumn;\n const data = Array(this.chunkCountY + 1);\n const xzScale = 684.412 * this.settings.sampling.xz_scale;\n const yScale = 684.412 * this.settings.sampling.y_scale;\n const xzFactor = xzScale / this.settings.sampling.xz_factor;\n const yFactor = yScale / this.settings.sampling.y_factor;\n const randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0;\n for (let y = 0; y <= this.chunkCountY; y += 1) {\n let noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0).zo, xzScale, yScale, xzFactor, yFactor);\n const yOffset = 1 - y * 2 / this.chunkCountY + randomDensity;\n const density = yOffset * this.settings.density_factor + this.settings.density_offset;\n const falloff = (density + this.biomeDepth) * this.biomeScale;\n noise += falloff * (falloff > 0 ? 4 : 1);\n if (this.settings.top_slide.size > 0) {\n noise = clampedLerp(this.settings.top_slide.target, noise, (this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size));\n }\n if (this.settings.bottom_slide.size > 0) {\n noise = clampedLerp(this.settings.bottom_slide.target, noise, (y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size));\n }\n data[y] = noise;\n }\n this.noiseColumnCache[x - this.xOffset] = data;\n return data;\n }\n getRandomDensity(x) {\n const noise = this.depthNoise.getValue(x * 200, 10, this.depthNoise.getOctaveNoise(0).zo, 1, 0, true);\n const a = (noise < 0) ? -noise * 0.3 : noise;\n const b = a * 24.575625 - 2;\n return (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625;\n }\n sampleAndClampNoise(x, y, z, xzScale, yScale, xzFactor, yFactor) {\n let a = 0;\n let b = 0;\n let c = 0;\n let d = 1;\n for (let i = 0; i < 16; i += 1) {\n const x2 = PerlinNoise.wrap(x * xzScale * d);\n const y2 = PerlinNoise.wrap(y * yScale * d);\n const z2 = PerlinNoise.wrap(z * xzScale * d);\n const e = yScale * d;\n const minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i);\n if (minLimitNoise) {\n a += minLimitNoise.noise(x2, y2, z2, e, y * e) / d;\n }\n const maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i);\n if (maxLimitNoise) {\n b += maxLimitNoise.noise(x2, y2, z2, e, y * e) / d;\n }\n if (i < 8) {\n const mainNoise = this.mainPerlinNoise.getOctaveNoise(i);\n if (mainNoise) {\n c += mainNoise.noise(PerlinNoise.wrap(x * xzFactor * d), PerlinNoise.wrap(y * yFactor * d), PerlinNoise.wrap(z * xzFactor * d), yFactor * d, y * yFactor * d) / d;\n }\n }\n d /= 2;\n }\n return clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2);\n }\n}\n","import { Path } from \"@mcschema/core\";\nimport seedrandom from \"seedrandom\";\nimport { App } from \"../App\";\nimport { clamp, hexId, stringToColor } from \"../Utils\";\nimport { PerlinNoise } from \"./noise/PerlinNoise\";\nimport { Preview } from './Preview';\nimport { Octicon } from '../components/Octicon';\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82];\nconst seaLevel = 63;\nconst featureColors = [\n [255, 77, 54],\n [59, 118, 255],\n [91, 207, 25],\n [217, 32, 245],\n [255, 209, 41],\n [52, 204, 209],\n];\nexport class DecoratorPreview extends Preview {\n constructor() {\n super();\n this.Features = {\n decorated: (config, pos) => {\n const positions = this.getPositions(pos, config === null || config === void 0 ? void 0 : config.decorator);\n return positions.flatMap(p => this.getPlacements(p, config === null || config === void 0 ? void 0 : config.feature));\n },\n random_boolean_selector: (config, pos) => {\n const feature = this.random() < 0.5 ? config === null || config === void 0 ? void 0 : config.feature_true : config === null || config === void 0 ? void 0 : config.feature_false;\n return this.getPlacements(pos, feature);\n },\n random_selector: (config, pos) => {\n var _a, _b;\n for (const f of (_a = config === null || config === void 0 ? void 0 : config.features) !== null && _a !== void 0 ? _a : []) {\n if (this.random() < ((_b = f === null || f === void 0 ? void 0 : f.chance) !== null && _b !== void 0 ? _b : 0)) {\n return this.getPlacements(pos, f.feature);\n }\n }\n return this.getPlacements(pos, config === null || config === void 0 ? void 0 : config.default);\n },\n simple_random_selector: (config, pos) => {\n var _a, _b, _c;\n const feature = (_a = config === null || config === void 0 ? void 0 : config.features) === null || _a === void 0 ? void 0 : _a[this.nextInt((_c = (_b = config === null || config === void 0 ? void 0 : config.features) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0)];\n return this.getPlacements(pos, feature);\n }\n };\n this.Decorators = {\n chance: (config, pos) => {\n var _a;\n return this.random() < 1 / ((_a = config === null || config === void 0 ? void 0 : config.chance) !== null && _a !== void 0 ? _a : 1) ? [pos] : [];\n },\n count: (config, pos) => {\n var _a;\n return new Array(this.sampleUniformInt((_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1)).fill(pos);\n },\n count_extra: (config, pos) => {\n var _a, _b, _c;\n let count = (_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1;\n if ((_b = this.random() < config.extra_chance) !== null && _b !== void 0 ? _b : 0) {\n count += (_c = config.extra_count) !== null && _c !== void 0 ? _c : 0;\n }\n return new Array(count).fill(pos);\n },\n count_multilayer: (config, pos) => {\n var _a;\n return new Array(this.sampleUniformInt((_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1)).fill(pos)\n .map(p => [\n p[0] + this.nextInt(16),\n p[1],\n p[2] + this.nextInt(16)\n ]);\n },\n count_noise: (config, pos) => {\n const noise = this.biomeInfoNoise.getValue(pos[0] / 200, 0, pos[2] / 200);\n const count = noise < config.noise_level ? config.below_noise : config.above_noise;\n return new Array(count).fill(pos);\n },\n count_noise_biased: (config, pos) => {\n const factor = Math.max(1, config.noise_factor);\n const noise = this.biomeInfoNoise.getValue(pos[0] / factor, 0, pos[2] / factor);\n const count = Math.max(0, Math.ceil((noise + config.noise_offset) * config.noise_to_count_ratio));\n return new Array(count).fill(pos);\n },\n dark_oak_tree: (config, pos) => {\n return [...new Array(16)].map((e, i) => {\n const x = Math.floor(i / 4) * 4 + 1 + this.nextInt(3) + pos[0];\n const y = Math.max(seaLevel, terrain[clamp(0, 63, x)]);\n const z = Math.floor(i % 4) * 4 + 1 + this.nextInt(3) + pos[2];\n return [x, y, z];\n });\n },\n decorated: (config, pos) => {\n return this.getPositions(pos, config === null || config === void 0 ? void 0 : config.outer).flatMap(p => {\n return this.getPositions(p, config === null || config === void 0 ? void 0 : config.inner);\n });\n },\n depth_average: (config, pos) => {\n var _a, _b, _c, _d;\n const y = this.nextInt((_a = config === null || config === void 0 ? void 0 : config.spread) !== null && _a !== void 0 ? _a : 0) + this.nextInt((_b = config === null || config === void 0 ? void 0 : config.spread) !== null && _b !== void 0 ? _b : 0) - ((_c = config.spread) !== null && _c !== void 0 ? _c : 0) + ((_d = config === null || config === void 0 ? void 0 : config.baseline) !== null && _d !== void 0 ? _d : 0);\n return this.decorateY(pos, y);\n },\n emerald_ore: (config, pos) => {\n const count = 3 + this.nextInt(6);\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(28) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n fire: (config, pos) => {\n const count = this.nextInt(this.nextInt(this.sampleUniformInt(config === null || config === void 0 ? void 0 : config.count))) + 1;\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(120) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n glowstone: (config, pos) => {\n const count = this.nextInt(this.nextInt(this.sampleUniformInt(config === null || config === void 0 ? void 0 : config.count)) + 1);\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(120) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n heightmap: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, y);\n },\n heightmap_spread_double: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, this.nextInt(y * 2));\n },\n heightmap_world_surface: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, y);\n },\n iceberg: (config, pos) => {\n return [[\n this.nextInt(8) + 4 + pos[0],\n pos[1],\n this.nextInt(8) + 4 + pos[2]\n ]];\n },\n lava_lake: (config, pos) => {\n var _a, _b;\n if (this.nextInt(((_a = config.chance) !== null && _a !== void 0 ? _a : 1) / 10) === 0) {\n const y = this.nextInt(this.nextInt(256 - 8) + 8);\n if (y < seaLevel || this.nextInt(((_b = config === null || config === void 0 ? void 0 : config.chance) !== null && _b !== void 0 ? _b : 1) / 8) == 0) {\n const x = this.nextInt(16) + pos[0];\n const z = this.nextInt(16) + pos[2];\n return [[x, y, z]];\n }\n }\n return [];\n },\n nope: (config, pos) => {\n return [pos];\n },\n range: (config, pos) => {\n var _a, _b, _c;\n const y = this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0);\n return this.decorateY(pos, y);\n },\n range_biased: (config, pos) => {\n var _a, _b, _c;\n const y = this.nextInt(this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0));\n return this.decorateY(pos, y);\n },\n range_very_biased: (config, pos) => {\n var _a, _b, _c, _d;\n const y = this.nextInt(this.nextInt(this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0)) + ((_d = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _d !== void 0 ? _d : 0));\n return this.decorateY(pos, y);\n },\n spread_32_above: (config, pos) => {\n const y = this.nextInt(pos[1] + 32);\n return this.decorateY(pos, y);\n },\n top_solid_heightmap: (config, pos) => {\n const y = terrain[clamp(0, 63, pos[0])];\n return this.decorateY(pos, y);\n },\n magma: (config, pos) => {\n const y = this.nextInt(pos[1] + 32);\n return this.decorateY(pos, y);\n },\n square: (config, pos) => {\n return [[\n pos[0] + this.nextInt(16),\n pos[1],\n pos[2] + this.nextInt(16)\n ]];\n },\n water_lake: (config, pos) => {\n var _a;\n if (this.nextInt((_a = config.chance) !== null && _a !== void 0 ? _a : 1) === 0) {\n return [[\n this.nextInt(16) + pos[0],\n this.nextInt(256),\n this.nextInt(16) + pos[2]\n ]];\n }\n return [];\n }\n };\n this.seed = hexId();\n this.perspective = 'top';\n this.size = [64, 128, 48];\n this.random = seedrandom(this.seed);\n this.biomeInfoNoise = new PerlinNoise(hexId(), 0, [1]);\n this.usedFeatures = [];\n }\n getName() {\n return 'decorator';\n }\n active(path) {\n var _a;\n return ((_a = App.model.get()) === null || _a === void 0 ? void 0 : _a.id) === 'worldgen/feature'\n && path.equals(new Path(['config', 'decorator']))\n && path.pop().pop().push('type').get() === 'minecraft:decorated';\n }\n menu(view, redraw) {\n return `\n
      {\n this.perspective = this.perspective === 'top' ? 'side' : 'top';\n redraw();\n })}\">\n ${Octicon.package}\n
      `;\n }\n getSize() {\n return this.perspective === 'top' ? [this.size[0], this.size[2]] : [this.size[0], this.size[1]];\n }\n draw(model, img) {\n const featureData = JSON.parse(JSON.stringify(model.data));\n this.random = seedrandom(this.seed);\n this.usedFeatures = [];\n let placements = [];\n for (let x = 0; x < this.size[0] / 16; x += 1) {\n for (let z = 0; z < (this.perspective === 'top' ? this.size[2] / 16 : 1); z += 1) {\n const chunkPlacements = this.getPlacements([x * 16, 0, z * 16], featureData);\n const filtered = chunkPlacements.filter(p => {\n return p.pos.every((n, i) => n >= 0 && n < this.size[i]);\n });\n placements = [...placements, ...filtered];\n }\n }\n const data = img.data;\n img.data.fill(255);\n if (this.perspective === 'side') {\n for (let x = 0; x < this.size[0]; x += 1) {\n for (let y = 0; y < terrain[clamp(0, 63, x)]; y += 1) {\n const i = ((this.size[1] - y - 1) * (img.width * 4)) + (x * 4);\n for (let j = 0; j < 3; j += 1) {\n data[i + j] = 30;\n }\n }\n for (let y = terrain[clamp(0, 63, x)]; y < seaLevel; y += 1) {\n const i = ((this.size[1] - y - 1) * (img.width * 4)) + (x * 4);\n data[i + 0] = 108;\n data[i + 1] = 205;\n data[i + 2] = 230;\n }\n }\n }\n for (let { pos, feature } of placements) {\n const i = this.perspective === 'top'\n ? (pos[2] * (img.width * 4)) + (pos[0] * 4)\n : ((this.size[1] - pos[1] - 1) * (img.width * 4)) + (pos[0] * 4);\n const color = feature < featureColors.length ? featureColors[feature] : stringToColor(this.usedFeatures[feature]);\n data.set(color.map(c => clamp(50, 205, c)), i);\n }\n for (let x = 0; x < this.size[0]; x += 1) {\n for (let y = 0; y < (this.perspective === 'top' ? this.size[2] : this.size[1]); y += 1) {\n if ((Math.floor(x / 16) + (this.perspective === 'top' ? Math.floor(y / 16) : 0)) % 2 === 0)\n continue;\n const i = (y * (img.width * 4)) + (x * 4);\n for (let j = 0; j < 3; j += 1) {\n data[i + j] = 0.85 * data[i + j];\n }\n }\n }\n }\n useFeature(s) {\n const i = this.usedFeatures.indexOf(s);\n if (i != -1)\n return i;\n this.usedFeatures.push(s);\n return this.usedFeatures.length - 1;\n }\n getPlacements(pos, feature) {\n var _a;\n if (typeof feature === 'string') {\n return [{ pos, feature: this.useFeature(feature) }];\n }\n const type = (_a = feature === null || feature === void 0 ? void 0 : feature.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, '');\n const featureFn = this.Features[type];\n if (!featureFn) {\n return [{ pos, feature: this.useFeature(JSON.stringify(feature)) }];\n }\n return featureFn(feature.config, pos);\n }\n getPositions(pos, decorator) {\n var _a;\n const type = (_a = decorator === null || decorator === void 0 ? void 0 : decorator.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, '');\n const decoratorFn = this.Decorators[type];\n if (!decoratorFn) {\n return [pos];\n }\n return decoratorFn(decorator === null || decorator === void 0 ? void 0 : decorator.config, pos);\n }\n decorateY(pos, y) {\n return [[pos[0], y, pos[2]]];\n }\n sampleUniformInt(value) {\n var _a, _b;\n if (typeof value === 'number') {\n return value;\n }\n else {\n return ((_a = value.base) !== null && _a !== void 0 ? _a : 1) + this.nextInt(1 + ((_b = value.spread) !== null && _b !== void 0 ? _b : 0));\n }\n }\n nextInt(max) {\n return Math.floor(this.random() * max);\n }\n}\n","const event = (category, action, label) => ga('send', 'event', category, action, label);\nconst dimension = (index, value) => ga('set', `dimension${index}`, value);\nexport const Tracker = {\n pageview: (target) => {\n ga('set', 'page', target);\n ga('send', 'pageview');\n },\n setTheme: (theme) => event('Generator', 'set-theme', theme),\n setVersion: (version) => event('Generator', 'set-version', version),\n setPreview: (name) => event('Preview', 'set-preview', name),\n setLanguage: (language) => event('Generator', 'set-language', language),\n reset: () => event('Generator', 'reset'),\n undo: (hotkey = false) => event('Generator', 'undo', hotkey ? 'Hotkey' : 'Menu'),\n redo: (hotkey = false) => event('Generator', 'redo', hotkey ? 'Hotkey' : 'Menu'),\n copy: () => event('JsonOutput', 'copy'),\n download: () => event('JsonOutput', 'download'),\n share: () => event('JsonOutput', 'share'),\n toggleErrors: (visible) => event('Errors', 'toggle', visible ? 'visible' : 'hidden'),\n hidePreview: () => event('Preview', 'hide-preview'),\n toggleMinimize: (minimized) => event('Generator', 'toggle-minimize', minimized ? 'minimized' : 'unminimized'),\n loadPreset: (preset) => event('Generator', 'load-preset', preset),\n dimTheme: (theme) => dimension(1, theme),\n dimVersion: (version) => dimension(3, version),\n dimLanguage: (language) => dimension(4, language),\n dimPreview: (preview) => dimension(5, preview),\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { DataModel, ObjectNode } from '@mcschema/core';\nimport * as java15 from '@mcschema/java-1.15';\nimport * as java16 from '@mcschema/java-1.16';\nimport * as java17 from '@mcschema/java-1.17';\nimport { LocalStorageProperty } from './state/LocalStorageProperty';\nimport { Property } from './state/Property';\nimport { fetchData } from './DataFetcher';\nimport { BiomeNoisePreview } from './preview/BiomeNoisePreview';\nimport { NoiseSettingsPreview } from './preview/NoiseSettingsPreview';\nimport { DecoratorPreview } from './preview/DecoratorPreview';\nimport config from '../config.json';\nimport { locale, Locales } from './Locales';\nimport { Tracker } from './Tracker';\nimport { Settings } from './Settings';\nexport const Versions = {\n '1.15': java15,\n '1.16': java16,\n '1.17': java17\n};\nexport const Previews = {\n 'biome_noise': new BiomeNoisePreview(),\n 'noise_settings': new NoiseSettingsPreview(),\n 'decorator': new DecoratorPreview(),\n};\nexport const Models = {};\nconfig.models.filter(m => m.schema)\n .forEach(m => Models[m.id] = new DataModel(ObjectNode({})));\nexport const App = {\n version: new LocalStorageProperty('schema_version', config.versions[config.versions.length - 1].id)\n .watch(Tracker.dimVersion),\n theme: new LocalStorageProperty('theme', 'dark')\n .watch(Tracker.dimTheme),\n language: new LocalStorageProperty('language', 'en')\n .watch(Tracker.dimLanguage),\n model: new Property(null),\n collections: new Property(null),\n jsonOutput: new Property(''),\n errorsVisible: new Property(false),\n treeMinimized: new Property(false),\n jsonError: new Property(null),\n preview: new Property(null)\n .watch(p => { var _a; return Tracker.dimPreview((_a = p === null || p === void 0 ? void 0 : p.getName()) !== null && _a !== void 0 ? _a : 'none'); }),\n schemasLoaded: new Property(false),\n localesLoaded: new Property(false),\n loaded: new Property(false),\n mobilePanel: new Property('tree'),\n settings: new Settings('generator_settings'),\n blockStateRegistry: {}\n};\nApp.version.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n App.schemasLoaded.set(false);\n yield updateSchemas(value);\n App.schemasLoaded.set(true);\n}));\nApp.theme.watchRun((value) => document.documentElement.setAttribute('data-theme', value));\nlet hasFetchedEnglish = false;\nApp.language.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n App.localesLoaded.set(false);\n yield updateLocale(value);\n App.localesLoaded.set(true);\n}));\nApp.localesLoaded.watch((value) => {\n if (value) {\n document.querySelectorAll('[data-i18n]').forEach(el => {\n el.textContent = locale(el.attributes.getNamedItem('data-i18n').value);\n });\n }\n App.loaded.set(value && App.schemasLoaded.get());\n});\nApp.schemasLoaded.watch((value) => {\n App.loaded.set(value && App.localesLoaded.get());\n});\nApp.mobilePanel.watchRun((value) => {\n document.body.setAttribute('data-panel', value);\n});\nfunction updateSchemas(version) {\n return __awaiter(this, void 0, void 0, function* () {\n App.blockStateRegistry = {};\n const collections = Versions[version].getCollections();\n App.collections.set(collections);\n yield fetchData(collections, version);\n const schemas = Versions[version].getSchemas(collections);\n config.models\n .filter(m => m.schema)\n .filter(m => checkVersion(App.version.get(), m.minVersion))\n .forEach(m => {\n const model = Models[m.id];\n const schema = schemas.get(m.schema);\n if (schema) {\n model.schema = schema;\n if (JSON.stringify(model.data) === '{}') {\n model.reset(schema.default(), true);\n model.history = [JSON.stringify(model.data)];\n model.historyIndex = 0;\n }\n }\n });\n });\n}\nfunction updateLocale(language) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Locales[language] && (hasFetchedEnglish || language !== 'en'))\n return;\n const data = yield (yield fetch(`/locales/${language}.json`)).json();\n if (language === 'en')\n hasFetchedEnglish = true;\n Locales[language] = data;\n });\n}\nexport function checkVersion(versionId, minVersionId, maxVersionId) {\n const version = config.versions.findIndex(v => v.id === versionId);\n const minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0;\n const maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1;\n return minVersion <= version && version <= maxVersion;\n}\ndocument.addEventListener('keyup', (evt) => {\n if (evt.ctrlKey && evt.key === 'z') {\n Tracker.undo(true);\n Models[App.model.get().id].undo();\n }\n else if (evt.ctrlKey && evt.key === 'y') {\n Tracker.redo(true);\n Models[App.model.get().id].redo();\n }\n});\n","import { Path } from \"@mcschema/core\";\nimport { Preview } from './Preview';\nimport { toggleMenu } from '../views/View';\nimport { Octicon } from '../components/Octicon';\nimport { NoiseChunkGenerator } from './noise/NoiseChunkGenerator';\nexport class NoiseSettingsPreview extends Preview {\n constructor() {\n super();\n this.width = 256;\n this.depth = 0.1;\n this.scale = 0.2;\n this.offsetX = 0;\n this.debug = false;\n this.generator = new NoiseChunkGenerator();\n }\n getName() {\n return 'noise-settings';\n }\n active(path) {\n return path.endsWith(new Path(['noise']));\n }\n menu(view, redraw) {\n return `
      \n
      \n ${Octicon.kebab_horizontal}\n
      \n
      \n
      \n ${Octicon.gear}\n \n {\n el.value = this.depth.toString();\n el.addEventListener('change', () => {\n this.depth = parseFloat(el.value);\n redraw();\n });\n })}\">\n
      \n
      \n ${Octicon.gear}\n \n {\n el.value = this.scale.toString();\n el.addEventListener('change', () => {\n this.scale = parseFloat(el.value);\n redraw();\n });\n })}\">\n
      \n
      \n ${Octicon.arrow_both}\n \n {\n el.value = this.width.toString();\n el.addEventListener('change', () => {\n this.width = parseFloat(el.value);\n redraw();\n });\n })}\">\n
      \n
      { this.debug = !this.debug; redraw(); })}\">\n ${Octicon.square}\n \n
      \n
      \n
      `;\n }\n getSize() {\n return [this.width, this.state.height];\n }\n draw(model, img) {\n this.generator.reset(this.state, this.depth, this.scale, this.offsetX, this.width);\n const data = img.data;\n for (let x = 0; x < this.width; x += 1) {\n const noise = this.generator.iterateNoiseColumn(x + this.offsetX).reverse();\n for (let y = 0; y < this.state.height; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const color = this.getColor(noise, y);\n data[i] = (this.debug && noise[y] > 0) ? 255 : color;\n data[i + 1] = color;\n data[i + 2] = color;\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX -= dx;\n }\n getColor(noise, y) {\n if (this.debug) {\n return -noise[y] / 2 + 128;\n }\n if (noise[y] > 0) {\n return 0;\n }\n if (noise[y + 1] > 0) {\n return 150;\n }\n return 255;\n }\n}\n","export class Settings {\n constructor(local_storage) {\n var _a;\n this.local_storage = local_storage;\n const settings = JSON.parse((_a = localStorage.getItem(local_storage)) !== null && _a !== void 0 ? _a : '{}');\n if (!Array.isArray(settings.fields))\n settings.fields = [];\n this.fields = settings.fields;\n this.save();\n }\n save() {\n const settings = JSON.stringify({ fields: this.fields });\n localStorage.setItem(this.local_storage, settings);\n this.fields = [...this.fields.filter(v => v === null || v === void 0 ? void 0 : v.path), {}];\n }\n}\n","import { Octicon } from './Octicon';\nexport const Dropdown = (view, icon, entries, state, watcher) => {\n const dropdown = view.register(el => {\n el.addEventListener('change', () => {\n state.set(el.value);\n });\n state.watchRun(v => el.value = v, 'dropdown');\n });\n return `\n
      \n \n ${Octicon[icon]}\n
      `;\n};\n","import { Octicon } from './Octicon';\nexport const Toggle = (view, entries, state, watcher) => {\n const activeOcticon = () => { var _a; return Octicon[((_a = entries.find(e => e[0] === state.get())) !== null && _a !== void 0 ? _a : entries[0])[1]]; };\n const toggle = view.register(el => {\n el.addEventListener('click', () => {\n const i = entries.findIndex(e => e[0] === state.get());\n state.set(entries[(i + 1) % entries.length][0]);\n });\n state.watch(_ => el.innerHTML = activeOcticon(), 'toggle');\n });\n return `
      ${activeOcticon()}
      `;\n};\n","import { App } from '../App';\nimport { Dropdown } from './Dropdown';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { languages } from '../../config.json';\nimport { Tracker } from '../Tracker';\nimport { locale } from '../Locales';\nexport const Header = (view, title, homeLink = '/') => {\n const panelTogglesId = view.register(el => {\n const getPanelToggles = () => {\n const panels = [['preview', 'play'], ['tree', 'note'], ['source', 'code']];\n if (!panels.map(e => e[0]).includes(App.mobilePanel.get()))\n return '';\n return panels\n .filter(e => e[0] !== App.mobilePanel.get())\n .filter(e => e[0] !== 'preview' || App.preview.get() !== null)\n .map(e => `
      App.mobilePanel.set(e[0]))}\">\n ${Octicon[e[1]]}\n
      `).join('');\n };\n App.mobilePanel.watchRun(() => {\n view.mount(el, getPanelToggles(), false);\n });\n App.preview.watchRun((value, oldValue) => {\n if (value === null && App.mobilePanel.get() === 'preview') {\n App.mobilePanel.set('tree');\n }\n if (value === null || oldValue === null) {\n view.mount(el, getPanelToggles(), false);\n }\n });\n });\n return `
      \n
      \n ${Octicon.three_bars}\n

      ${title}

      \n
      \n \n
      `;\n};\n","import { App } from '../App';\nimport { Header } from '../components/Header';\nimport { Octicon } from '../components/Octicon';\nimport config from '../../config.json';\nfunction cleanUrl(url) {\n url = url.startsWith('/') ? url : '/' + url;\n return url.endsWith('/') ? url : url + '/';\n}\nexport const GeneratorCard = (url, name, arrow, active) => `\n
    • \n \n ${name}\n ${arrow ? Octicon.chevron_right : ''}\n \n
    • \n`;\nexport const Home = (view) => {\n const filteredModels = config.models.filter(m => m.category === App.model.get().id);\n return `\n ${Header(view, 'Data Pack Generators')}\n
      \n
        \n ${config.models\n .filter(m => typeof m.category !== 'string')\n .map(m => GeneratorCard(m.id, m.name, m.category === true, App.model.get().id === m.id))\n .join('')}\n
      \n ${filteredModels.length === 0 ? '' : `\n
        \n ${filteredModels.map(m => GeneratorCard(m.id, m.name)).join('')}\n
      \n `}\n
      \n `;\n};\n","import { Header } from '../components/Header';\nimport { locale } from '../Locales';\nimport { GeneratorCard } from './Home';\nexport const NotFound = (view) => {\n return `\n ${Header(view, 'Data Pack Generators')}\n
      \n

      404

      \n

      ${locale('not_found.description')}

      \n
        \n ${GeneratorCard('/', locale('home'), true)}\n
      \n
      \n `;\n};\n","import { App } from '../App';\nimport { Header } from '../components/Header';\nimport { Octicon } from '../components/Octicon';\nimport { locale } from '../Locales';\nexport const FieldSettings = (view) => {\n const fieldListId = view.register(fieldList => {\n const getFields = () => {\n const fields = App.settings.fields;\n return fields.map((f, i) => {\n const pathInput = view.register(el => {\n var _a;\n el.value = (_a = f.path) !== null && _a !== void 0 ? _a : '';\n el.addEventListener('change', () => {\n fields[i] = Object.assign(Object.assign({}, f), { path: el.value });\n App.settings.save();\n view.mount(fieldList, getFields(), false);\n });\n });\n const nameInput = view.register(el => {\n var _a;\n el.value = (_a = f.name) !== null && _a !== void 0 ? _a : '';\n el.addEventListener('change', () => {\n fields[i] = Object.assign(Object.assign({}, f), { name: el.value });\n App.settings.save();\n view.mount(fieldList, getFields(), false);\n });\n });\n return `
    • \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n {\n fields[i].hidden = (f === null || f === void 0 ? void 0 : f.hidden) ? undefined : true;\n App.settings.save();\n view.mount(fieldList, getFields(), false);\n })}\">${f.hidden ? Octicon.eye_closed : Octicon.eye}\n {\n fields.splice(i, 1);\n App.settings.save();\n view.mount(fieldList, getFields(), false);\n })}\">${Octicon.trashcan}\n
      \n
    • `;\n }).join('');\n };\n view.mount(fieldList, getFields(), false);\n });\n return `${Header(view, 'Field Settings')}\n
      \n

      ${locale('settings.fields.description')}

      \n
        \n
        `;\n};\n","// The programming goals of Split.js are to deliver readable, understandable and\n// maintainable code, while at the same time manually optimizing for tiny minified file size,\n// browser compatibility without additional requirements\n// and very few assumptions about the user's page layout.\nvar global = typeof window !== 'undefined' ? window : null;\nvar ssr = global === null;\nvar document = !ssr ? global.document : undefined;\n\n// Save a couple long function names that are used frequently.\n// This optimization saves around 400 bytes.\nvar addEventListener = 'addEventListener';\nvar removeEventListener = 'removeEventListener';\nvar getBoundingClientRect = 'getBoundingClientRect';\nvar gutterStartDragging = '_a';\nvar aGutterSize = '_b';\nvar bGutterSize = '_c';\nvar HORIZONTAL = 'horizontal';\nvar NOOP = function () { return false; };\n\n// Helper function determines which prefixes of CSS calc we need.\n// We only need to do this once on startup, when this anonymous function is called.\n//\n// Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:\n// http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167\nvar calc = ssr\n ? 'calc'\n : ((['', '-webkit-', '-moz-', '-o-']\n .filter(function (prefix) {\n var el = document.createElement('div');\n el.style.cssText = \"width:\" + prefix + \"calc(9px)\";\n\n return !!el.style.length\n })\n .shift()) + \"calc\");\n\n// Helper function checks if its argument is a string-like type\nvar isString = function (v) { return typeof v === 'string' || v instanceof String; };\n\n// Helper function allows elements and string selectors to be used\n// interchangeably. In either case an element is returned. This allows us to\n// do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.\nvar elementOrSelector = function (el) {\n if (isString(el)) {\n var ele = document.querySelector(el);\n if (!ele) {\n throw new Error((\"Selector \" + el + \" did not match a DOM element\"))\n }\n return ele\n }\n\n return el\n};\n\n// Helper function gets a property from the properties object, with a default fallback\nvar getOption = function (options, propName, def) {\n var value = options[propName];\n if (value !== undefined) {\n return value\n }\n return def\n};\n\nvar getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) {\n if (isFirst) {\n if (gutterAlign === 'end') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n } else if (isLast) {\n if (gutterAlign === 'start') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n }\n\n return gutterSize\n};\n\n// Default options\nvar defaultGutterFn = function (i, gutterDirection) {\n var gut = document.createElement('div');\n gut.className = \"gutter gutter-\" + gutterDirection;\n return gut\n};\n\nvar defaultElementStyleFn = function (dim, size, gutSize) {\n var style = {};\n\n if (!isString(size)) {\n style[dim] = calc + \"(\" + size + \"% - \" + gutSize + \"px)\";\n } else {\n style[dim] = size;\n }\n\n return style\n};\n\nvar defaultGutterStyleFn = function (dim, gutSize) {\n var obj;\n\n return (( obj = {}, obj[dim] = (gutSize + \"px\"), obj ));\n};\n\n// The main function to initialize a split. Split.js thinks about each pair\n// of elements as an independant pair. Dragging the gutter between two elements\n// only changes the dimensions of elements in that pair. This is key to understanding\n// how the following functions operate, since each function is bound to a pair.\n//\n// A pair object is shaped like this:\n//\n// {\n// a: DOM element,\n// b: DOM element,\n// aMin: Number,\n// bMin: Number,\n// dragging: Boolean,\n// parent: DOM element,\n// direction: 'horizontal' | 'vertical'\n// }\n//\n// The basic sequence:\n//\n// 1. Set defaults to something sane. `options` doesn't have to be passed at all.\n// 2. Initialize a bunch of strings based on the direction we're splitting.\n// A lot of the behavior in the rest of the library is paramatized down to\n// rely on CSS strings and classes.\n// 3. Define the dragging helper functions, and a few helpers to go with them.\n// 4. Loop through the elements while pairing them off. Every pair gets an\n// `pair` object and a gutter.\n// 5. Actually size the pair elements, insert gutters and attach event listeners.\nvar Split = function (idsOption, options) {\n if ( options === void 0 ) options = {};\n\n if (ssr) { return {} }\n\n var ids = idsOption;\n var dimension;\n var clientAxis;\n var position;\n var positionEnd;\n var clientSize;\n var elements;\n\n // Allow HTMLCollection to be used as an argument when supported\n if (Array.from) {\n ids = Array.from(ids);\n }\n\n // All DOM elements in the split should have a common parent. We can grab\n // the first elements parent and hope users read the docs because the\n // behavior will be whacky otherwise.\n var firstElement = elementOrSelector(ids[0]);\n var parent = firstElement.parentNode;\n var parentStyle = getComputedStyle ? getComputedStyle(parent) : null;\n var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null;\n\n // Set default options.sizes to equal percentages of the parent element.\n var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; });\n\n // Standardize minSize to an array if it isn't already. This allows minSize\n // to be passed as a number.\n var minSize = getOption(options, 'minSize', 100);\n var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; });\n\n // Get other options\n var expandToMin = getOption(options, 'expandToMin', false);\n var gutterSize = getOption(options, 'gutterSize', 10);\n var gutterAlign = getOption(options, 'gutterAlign', 'center');\n var snapOffset = getOption(options, 'snapOffset', 30);\n var dragInterval = getOption(options, 'dragInterval', 1);\n var direction = getOption(options, 'direction', HORIZONTAL);\n var cursor = getOption(\n options,\n 'cursor',\n direction === HORIZONTAL ? 'col-resize' : 'row-resize'\n );\n var gutter = getOption(options, 'gutter', defaultGutterFn);\n var elementStyle = getOption(\n options,\n 'elementStyle',\n defaultElementStyleFn\n );\n var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn);\n\n // 2. Initialize a bunch of strings based on the direction we're splitting.\n // A lot of the behavior in the rest of the library is paramatized down to\n // rely on CSS strings and classes.\n if (direction === HORIZONTAL) {\n dimension = 'width';\n clientAxis = 'clientX';\n position = 'left';\n positionEnd = 'right';\n clientSize = 'clientWidth';\n } else if (direction === 'vertical') {\n dimension = 'height';\n clientAxis = 'clientY';\n position = 'top';\n positionEnd = 'bottom';\n clientSize = 'clientHeight';\n }\n\n // 3. Define the dragging helper functions, and a few helpers to go with them.\n // Each helper is bound to a pair object that contains its metadata. This\n // also makes it easy to store references to listeners that that will be\n // added and removed.\n //\n // Even though there are no other functions contained in them, aliasing\n // this to self saves 50 bytes or so since it's used so frequently.\n //\n // The pair object saves metadata like dragging state, position and\n // event listener references.\n\n function setElementSize(el, size, gutSize, i) {\n // Split.js allows setting sizes via numbers (ideally), or if you must,\n // by string, like '300px'. This is less than ideal, because it breaks\n // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,\n // make sure you calculate the gutter size by hand.\n var style = elementStyle(dimension, size, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n el.style[prop] = style[prop];\n });\n }\n\n function setGutterSize(gutterElement, gutSize, i) {\n var style = gutterStyle(dimension, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n gutterElement.style[prop] = style[prop];\n });\n }\n\n function getSizes() {\n return elements.map(function (element) { return element.size; })\n }\n\n // Supports touch events, but not multitouch, so only the first\n // finger `touches[0]` is counted.\n function getMousePosition(e) {\n if ('touches' in e) { return e.touches[0][clientAxis] }\n return e[clientAxis]\n }\n\n // Actually adjust the size of elements `a` and `b` to `offset` while dragging.\n // calc is used to allow calc(percentage + gutterpx) on the whole split instance,\n // which allows the viewport to be resized without additional logic.\n // Element a's size is the same as offset. b's size is total size - a size.\n // Both sizes are calculated from the initial parent percentage,\n // then the gutter size is subtracted.\n function adjust(offset) {\n var a = elements[this.a];\n var b = elements[this.b];\n var percentage = a.size + b.size;\n\n a.size = (offset / this.size) * percentage;\n b.size = percentage - (offset / this.size) * percentage;\n\n setElementSize(a.element, a.size, this[aGutterSize], a.i);\n setElementSize(b.element, b.size, this[bGutterSize], b.i);\n }\n\n // drag, where all the magic happens. The logic is really quite simple:\n //\n // 1. Ignore if the pair is not dragging.\n // 2. Get the offset of the event.\n // 3. Snap offset to min if within snappable range (within min + snapOffset).\n // 4. Actually adjust each element in the pair to offset.\n //\n // ---------------------------------------------------------------------\n // | | <- a.minSize || b.minSize -> | |\n // | | | <- this.snapOffset || this.snapOffset -> | | |\n // | | | || | | |\n // | | | || | | |\n // ---------------------------------------------------------------------\n // | <- this.start this.size -> |\n function drag(e) {\n var offset;\n var a = elements[this.a];\n var b = elements[this.b];\n\n if (!this.dragging) { return }\n\n // Get the offset of the event from the first side of the\n // pair `this.start`. Then offset by the initial position of the\n // mouse compared to the gutter size.\n offset =\n getMousePosition(e) -\n this.start +\n (this[aGutterSize] - this.dragOffset);\n\n if (dragInterval > 1) {\n offset = Math.round(offset / dragInterval) * dragInterval;\n }\n\n // If within snapOffset of min or max, set offset to min or max.\n // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.\n // Include the appropriate gutter sizes to prevent overflows.\n if (offset <= a.minSize + snapOffset + this[aGutterSize]) {\n offset = a.minSize + this[aGutterSize];\n } else if (\n offset >=\n this.size - (b.minSize + snapOffset + this[bGutterSize])\n ) {\n offset = this.size - (b.minSize + this[bGutterSize]);\n }\n\n // Actually adjust the size.\n adjust.call(this, offset);\n\n // Call the drag callback continously. Don't do anything too intensive\n // in this callback.\n getOption(options, 'onDrag', NOOP)(getSizes());\n }\n\n // Cache some important sizes when drag starts, so we don't have to do that\n // continously:\n //\n // `size`: The total size of the pair. First + second + first gutter + second gutter.\n // `start`: The leading side of the first element.\n //\n // ------------------------------------------------\n // | aGutterSize -> ||| |\n // | ||| |\n // | ||| |\n // | ||| <- bGutterSize |\n // ------------------------------------------------\n // | <- start size -> |\n function calculateSizes() {\n // Figure out the parent size minus padding.\n var a = elements[this.a].element;\n var b = elements[this.b].element;\n\n var aBounds = a[getBoundingClientRect]();\n var bBounds = b[getBoundingClientRect]();\n\n this.size =\n aBounds[dimension] +\n bBounds[dimension] +\n this[aGutterSize] +\n this[bGutterSize];\n this.start = aBounds[position];\n this.end = aBounds[positionEnd];\n }\n\n function innerSize(element) {\n // Return nothing if getComputedStyle is not supported (< IE9)\n // Or if parent element has no layout yet\n if (!getComputedStyle) { return null }\n\n var computedStyle = getComputedStyle(element);\n\n if (!computedStyle) { return null }\n\n var size = element[clientSize];\n\n if (size === 0) { return null }\n\n if (direction === HORIZONTAL) {\n size -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n } else {\n size -=\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n }\n\n return size\n }\n\n // When specifying percentage sizes that are less than the computed\n // size of the element minus the gutter, the lesser percentages must be increased\n // (and decreased from the other elements) to make space for the pixels\n // subtracted by the gutters.\n function trimToMin(sizesToTrim) {\n // Try to get inner size of parent element.\n // If it's no supported, return original sizes.\n var parentSize = innerSize(parent);\n if (parentSize === null) {\n return sizesToTrim\n }\n\n if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) {\n return sizesToTrim\n }\n\n // Keep track of the excess pixels, the amount of pixels over the desired percentage\n // Also keep track of the elements with pixels to spare, to decrease after if needed\n var excessPixels = 0;\n var toSpare = [];\n\n var pixelSizes = sizesToTrim.map(function (size, i) {\n // Convert requested percentages to pixel sizes\n var pixelSize = (parentSize * size) / 100;\n var elementGutterSize = getGutterSize(\n gutterSize,\n i === 0,\n i === sizesToTrim.length - 1,\n gutterAlign\n );\n var elementMinSize = minSizes[i] + elementGutterSize;\n\n // If element is too smal, increase excess pixels by the difference\n // and mark that it has no pixels to spare\n if (pixelSize < elementMinSize) {\n excessPixels += elementMinSize - pixelSize;\n toSpare.push(0);\n return elementMinSize\n }\n\n // Otherwise, mark the pixels it has to spare and return it's original size\n toSpare.push(pixelSize - elementMinSize);\n return pixelSize\n });\n\n // If nothing was adjusted, return the original sizes\n if (excessPixels === 0) {\n return sizesToTrim\n }\n\n return pixelSizes.map(function (pixelSize, i) {\n var newPixelSize = pixelSize;\n\n // While there's still pixels to take, and there's enough pixels to spare,\n // take as many as possible up to the total excess pixels\n if (excessPixels > 0 && toSpare[i] - excessPixels > 0) {\n var takenPixels = Math.min(\n excessPixels,\n toSpare[i] - excessPixels\n );\n\n // Subtract the amount taken for the next iteration\n excessPixels -= takenPixels;\n newPixelSize = pixelSize - takenPixels;\n }\n\n // Return the pixel size adjusted as a percentage\n return (newPixelSize / parentSize) * 100\n })\n }\n\n // stopDragging is very similar to startDragging in reverse.\n function stopDragging() {\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n if (self.dragging) {\n getOption(options, 'onDragEnd', NOOP)(getSizes());\n }\n\n self.dragging = false;\n\n // Remove the stored event listeners. This is why we store them.\n global[removeEventListener]('mouseup', self.stop);\n global[removeEventListener]('touchend', self.stop);\n global[removeEventListener]('touchcancel', self.stop);\n global[removeEventListener]('mousemove', self.move);\n global[removeEventListener]('touchmove', self.move);\n\n // Clear bound function references\n self.stop = null;\n self.move = null;\n\n a[removeEventListener]('selectstart', NOOP);\n a[removeEventListener]('dragstart', NOOP);\n b[removeEventListener]('selectstart', NOOP);\n b[removeEventListener]('dragstart', NOOP);\n\n a.style.userSelect = '';\n a.style.webkitUserSelect = '';\n a.style.MozUserSelect = '';\n a.style.pointerEvents = '';\n\n b.style.userSelect = '';\n b.style.webkitUserSelect = '';\n b.style.MozUserSelect = '';\n b.style.pointerEvents = '';\n\n self.gutter.style.cursor = '';\n self.parent.style.cursor = '';\n document.body.style.cursor = '';\n }\n\n // startDragging calls `calculateSizes` to store the inital size in the pair object.\n // It also adds event listeners for mouse/touch events,\n // and prevents selection while dragging so avoid the selecting text.\n function startDragging(e) {\n // Right-clicking can't start dragging.\n if ('button' in e && e.button !== 0) {\n return\n }\n\n // Alias frequently used variables to save space. 200 bytes.\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n // Call the onDragStart callback.\n if (!self.dragging) {\n getOption(options, 'onDragStart', NOOP)(getSizes());\n }\n\n // Don't actually drag the element. We emulate that in the drag function.\n e.preventDefault();\n\n // Set the dragging property of the pair object.\n self.dragging = true;\n\n // Create two event listeners bound to the same pair object and store\n // them in the pair object.\n self.move = drag.bind(self);\n self.stop = stopDragging.bind(self);\n\n // All the binding. `window` gets the stop events in case we drag out of the elements.\n global[addEventListener]('mouseup', self.stop);\n global[addEventListener]('touchend', self.stop);\n global[addEventListener]('touchcancel', self.stop);\n global[addEventListener]('mousemove', self.move);\n global[addEventListener]('touchmove', self.move);\n\n // Disable selection. Disable!\n a[addEventListener]('selectstart', NOOP);\n a[addEventListener]('dragstart', NOOP);\n b[addEventListener]('selectstart', NOOP);\n b[addEventListener]('dragstart', NOOP);\n\n a.style.userSelect = 'none';\n a.style.webkitUserSelect = 'none';\n a.style.MozUserSelect = 'none';\n a.style.pointerEvents = 'none';\n\n b.style.userSelect = 'none';\n b.style.webkitUserSelect = 'none';\n b.style.MozUserSelect = 'none';\n b.style.pointerEvents = 'none';\n\n // Set the cursor at multiple levels\n self.gutter.style.cursor = cursor;\n self.parent.style.cursor = cursor;\n document.body.style.cursor = cursor;\n\n // Cache the initial sizes of the pair.\n calculateSizes.call(self);\n\n // Determine the position of the mouse compared to the gutter\n self.dragOffset = getMousePosition(e) - self.end;\n }\n\n // adjust sizes to ensure percentage is within min size and gutter.\n sizes = trimToMin(sizes);\n\n // 5. Create pair and element objects. Each pair has an index reference to\n // elements `a` and `b` of the pair (first and second elements).\n // Loop through the elements while pairing them off. Every pair gets a\n // `pair` object and a gutter.\n //\n // Basic logic:\n //\n // - Starting with the second element `i > 0`, create `pair` objects with\n // `a = i - 1` and `b = i`\n // - Set gutter sizes based on the _pair_ being first/last. The first and last\n // pair have gutterSize / 2, since they only have one half gutter, and not two.\n // - Create gutter elements and add event listeners.\n // - Set the size of the elements, minus the gutter sizes.\n //\n // -----------------------------------------------------------------------\n // | i=0 | i=1 | i=2 | i=3 |\n // | | | | |\n // | pair 0 pair 1 pair 2 |\n // | | | | |\n // -----------------------------------------------------------------------\n var pairs = [];\n elements = ids.map(function (id, i) {\n // Create the element object.\n var element = {\n element: elementOrSelector(id),\n size: sizes[i],\n minSize: minSizes[i],\n i: i,\n };\n\n var pair;\n\n if (i > 0) {\n // Create the pair object with its metadata.\n pair = {\n a: i - 1,\n b: i,\n dragging: false,\n direction: direction,\n parent: parent,\n };\n\n pair[aGutterSize] = getGutterSize(\n gutterSize,\n i - 1 === 0,\n false,\n gutterAlign\n );\n pair[bGutterSize] = getGutterSize(\n gutterSize,\n false,\n i === ids.length - 1,\n gutterAlign\n );\n\n // if the parent has a reverse flex-direction, switch the pair elements.\n if (\n parentFlexDirection === 'row-reverse' ||\n parentFlexDirection === 'column-reverse'\n ) {\n var temp = pair.a;\n pair.a = pair.b;\n pair.b = temp;\n }\n }\n\n // Determine the size of the current element. IE8 is supported by\n // staticly assigning sizes without draggable gutters. Assigns a string\n // to `size`.\n //\n // Create gutter elements for each pair.\n if (i > 0) {\n var gutterElement = gutter(i, direction, element.element);\n setGutterSize(gutterElement, gutterSize, i);\n\n // Save bound event listener for removal later\n pair[gutterStartDragging] = startDragging.bind(pair);\n\n // Attach bound event listener\n gutterElement[addEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n gutterElement[addEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n\n parent.insertBefore(gutterElement, element.element);\n\n pair.gutter = gutterElement;\n }\n\n setElementSize(\n element.element,\n element.size,\n getGutterSize(\n gutterSize,\n i === 0,\n i === ids.length - 1,\n gutterAlign\n ),\n i\n );\n\n // After the first iteration, and we have a pair object, append it to the\n // list of pairs.\n if (i > 0) {\n pairs.push(pair);\n }\n\n return element\n });\n\n function adjustToMin(element) {\n var isLast = element.i === pairs.length;\n var pair = isLast ? pairs[element.i - 1] : pairs[element.i];\n\n calculateSizes.call(pair);\n\n var size = isLast\n ? pair.size - element.minSize - pair[bGutterSize]\n : element.minSize + pair[aGutterSize];\n\n adjust.call(pair, size);\n }\n\n elements.forEach(function (element) {\n var computedSize = element.element[getBoundingClientRect]()[dimension];\n\n if (computedSize < element.minSize) {\n if (expandToMin) {\n adjustToMin(element);\n } else {\n // eslint-disable-next-line no-param-reassign\n element.minSize = computedSize;\n }\n }\n });\n\n function setSizes(newSizes) {\n var trimmed = trimToMin(newSizes);\n trimmed.forEach(function (newSize, i) {\n if (i > 0) {\n var pair = pairs[i - 1];\n\n var a = elements[pair.a];\n var b = elements[pair.b];\n\n a.size = trimmed[i - 1];\n b.size = newSize;\n\n setElementSize(a.element, a.size, pair[aGutterSize], a.i);\n setElementSize(b.element, b.size, pair[bGutterSize], b.i);\n }\n });\n }\n\n function destroy(preserveStyles, preserveGutter) {\n pairs.forEach(function (pair) {\n if (preserveGutter !== true) {\n pair.parent.removeChild(pair.gutter);\n } else {\n pair.gutter[removeEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n pair.gutter[removeEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n }\n\n if (preserveStyles !== true) {\n var style = elementStyle(\n dimension,\n pair.a.size,\n pair[aGutterSize]\n );\n\n Object.keys(style).forEach(function (prop) {\n elements[pair.a].element.style[prop] = '';\n elements[pair.b].element.style[prop] = '';\n });\n }\n });\n }\n\n return {\n setSizes: setSizes,\n getSizes: getSizes,\n collapse: function collapse(i) {\n adjustToMin(elements[i]);\n },\n destroy: destroy,\n parent: parent,\n pairs: pairs,\n }\n};\n\nexport default Split;\n","import Split from 'split.js';\nexport const SplitGroup = (view, options, entries) => {\n var _a;\n return `\n
        {\n Split([].slice.call(el.children), Object.assign({ snapOffset: 0 }, options));\n })}>\n ${entries.join('')}\n
        \n`;\n};\n","import { Path } from '@mcschema/core';\nimport { App, Previews } from '../App';\nimport { Octicon } from '../components/Octicon';\nimport { locale } from '../Locales';\nimport { Tracker } from '../Tracker';\nexport const suffixInjector = {\n base() { },\n choice({ switchNode }, path, mounter) {\n return switchNode.hook(this, path, mounter);\n },\n object({}, path, mounter) {\n if (Previews.biome_noise.active(path)) {\n return setPreview(Previews.biome_noise, path, mounter);\n }\n if (Previews.noise_settings.active(path)) {\n return setPreview(Previews.noise_settings, path, mounter);\n }\n if (Previews.decorator.active(path)) {\n return setPreview(Previews.decorator, path, mounter);\n }\n },\n string({}, path, mounter) {\n if (path.endsWith(new Path(['biome']))\n && path.pop().pop().endsWith(new Path(['generator', 'biome_source', 'biomes']))) {\n const biomePreview = Previews.biome_noise;\n const biome = path.get();\n const id = mounter.onChange(el => {\n biomePreview.setBiomeColor(biome, el.value);\n });\n return ``;\n }\n }\n};\nfunction setPreview(preview, path, mounter) {\n const id = mounter.onClick(() => {\n Tracker.setPreview(preview.getName());\n preview.path = path;\n App.preview.set(preview);\n });\n return ``;\n}\n","import { relativePath } from '@mcschema/core';\nexport const getFilterKey = {\n base: () => null,\n object({ filter, getActiveFields }, path, origin, depth = 0) {\n if (depth > 2)\n return null;\n if (filter) {\n const filtered = relativePath(path, filter);\n if (filtered && filtered.pop().equals(origin))\n return filtered.last();\n }\n const activeFields = getActiveFields(path);\n for (const k of Object.keys(activeFields)) {\n const filtered = activeFields[k].hook(this, path.push(k), origin, depth += 1);\n if (filtered)\n return filtered;\n }\n return null;\n }\n};\n","import { getFilterKey } from './getFilterKey';\nexport const canFlatten = {\n base: () => false,\n object({ node, getActiveFields }, path) {\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n const visibleEntries = Object.entries(getActiveFields(path))\n .filter(([k, v]) => filterKey !== k && v.enabled(path));\n if (visibleEntries.length !== 1)\n return false;\n const nestedPath = path.push(visibleEntries[0][0]);\n if (visibleEntries[0][1].type(nestedPath) !== 'object')\n return false;\n return visibleEntries[0][1].hook(getFilterKey, nestedPath, nestedPath) === null;\n }\n};\n","import { ModelPath, Path, DataModel, MapNode, StringNode, relativePath } from '@mcschema/core';\nimport { locale, segmentedLocale } from '../Locales';\nimport { hexId, htmlEncode } from '../Utils';\nimport { suffixInjector } from './suffixInjector';\nimport { Octicon } from '../components/Octicon';\nimport { App } from '../App';\nimport { getFilterKey } from './getFilterKey';\nimport { canFlatten } from './canFlatten';\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(StringNode(), StringNode()), { historyMax: 0 });\n/**\n * Renders the node and handles events to update the model\n * @returns string HTML representation of this node using the given data\n */\nexport const renderHtml = {\n base() {\n return ['', '', ''];\n },\n boolean({ node }, path, value, mounter) {\n const onFalse = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === false ? undefined : false);\n });\n const onTrue = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === true ? undefined : true);\n });\n return ['', `${htmlEncode(locale('false'))}\n ${htmlEncode(locale('true'))}`, ''];\n },\n choice({ choices, config, switchNode }, path, value, mounter) {\n const choice = switchNode.activeCase(path, true);\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path;\n const pathWithChoiceContext = (config === null || config === void 0 ? void 0 : config.choiceContext) ? new Path([], [config.choiceContext]) : (config === null || config === void 0 ? void 0 : config.context) ? new Path([], [config.context]) : path;\n const [prefix, suffix, body] = choice.node.hook(this, pathWithContext, value, mounter);\n if (choices.length === 1) {\n return [prefix, suffix, body];\n }\n const inputId = mounter.register(el => {\n el.value = choice.type;\n el.addEventListener('change', () => {\n var _a;\n const c = (_a = choices.find(c => c.type === el.value)) !== null && _a !== void 0 ? _a : choice;\n path.model.set(path, c.change ? c.change(value) : c.node.default());\n });\n });\n const inject = ``;\n return [prefix, inject + suffix, body];\n },\n list({ children }, path, value, mounter) {\n const onAdd = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [children.default(), ...value]);\n });\n const onAddBottom = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [...value, children.default()]);\n });\n const suffix = ``;\n let body = '';\n if (Array.isArray(value)) {\n body = value.map((childValue, index) => {\n const removeId = mounter.onClick(el => path.model.set(path.push(index), undefined));\n const childPath = path.push(index).contextPush('entry');\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = children.hook(this, childPath, childValue, mounter);\n return `
        \n
        \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
        \n ${cBody ? `
        ${cBody}
        ` : ''}\n
        `;\n }).join('');\n if (value.length > 2) {\n body += `
        \n
        \n \n
        \n
        `;\n }\n }\n return ['', suffix, body];\n },\n map({ keys, children, config }, path, value, mounter) {\n var _a, _b, _c;\n const keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]));\n const onAdd = mounter.onClick(el => {\n const key = keyPath.get();\n path.model.set(path.push(key), children.default());\n });\n let suffix = '';\n const blockState = (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map' ? App.blockStateRegistry[relativePath(path, config.validation.params.id).get()] : null);\n if (!blockState || blockState.properties) {\n const keyRendered = (blockState\n ? StringNode(null, { enum: Object.keys((_b = blockState.properties) !== null && _b !== void 0 ? _b : {}) })\n : keys).hook(this, keyPath, (_c = keyPath.get()) !== null && _c !== void 0 ? _c : '', mounter);\n suffix = keyRendered[1] + ``;\n }\n let body = '';\n if (typeof value === 'object' && value !== undefined) {\n body = Object.keys(value)\n .map(key => {\n const removeId = mounter.onClick(el => path.model.set(path.push(key), undefined));\n const childPath = path.modelPush(key);\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = (blockState\n ? StringNode(null, blockState.properties && { enum: blockState.properties[key] })\n : children).hook(this, childPath, value[key], mounter);\n return `
        \n
        \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
        \n ${cBody ? `
        ${cBody}
        ` : ''}\n
        `;\n })\n .join('');\n }\n return ['', suffix, body];\n },\n number({ integer, config }, path, value, mounter) {\n var _a;\n const onChange = mounter.onChange(el => {\n const value = el.value;\n let parsed = (config === null || config === void 0 ? void 0 : config.color) ? parseInt(value.slice(1), 16)\n : integer ? parseInt(value) : parseFloat(value);\n path.model.set(path, parsed);\n });\n if (config === null || config === void 0 ? void 0 : config.color) {\n const hex = ((_a = value === null || value === void 0 ? void 0 : value.toString(16).padStart(6, '0')) !== null && _a !== void 0 ? _a : '000000');\n return ['', ``, ''];\n }\n return ['', ``, ''];\n },\n object({ node, getActiveFields, getChildModelPath }, path, value, mounter) {\n var _a;\n let prefix = '';\n if (node.optional()) {\n if (value === undefined) {\n prefix = ``;\n }\n else {\n prefix = ``;\n }\n }\n let suffix = '';\n let body = '';\n if (typeof value === 'object' && value !== undefined && (!(node.optional() && value === undefined))) {\n const activeFields = getActiveFields(path);\n const activeKeys = Object.keys(activeFields);\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n if (filterKey && !(activeFields[filterKey].hidden && activeFields[filterKey].hidden())) {\n prefix += error(path.push(filterKey), mounter);\n prefix += help(path.push(filterKey), mounter);\n suffix += activeFields[filterKey].hook(this, path.push(filterKey), value[filterKey], mounter)[1];\n }\n const visibleKeys = (App.treeMinimized.get()\n ? activeKeys.filter(k => value[k] !== undefined)\n : activeKeys)\n .filter(k => filterKey !== k)\n .filter(k => activeFields[k].enabled(path));\n if (node.hook(canFlatten, path)) {\n const newValue = (_a = value[visibleKeys[0]]) !== null && _a !== void 0 ? _a : {};\n body = activeFields[visibleKeys[0]].hook(this, path.push(visibleKeys[0]), newValue, mounter)[2];\n }\n else {\n body = visibleKeys.map(k => {\n var _a;\n const field = activeFields[k];\n const childPath = getChildModelPath(path, k);\n const context = childPath.getContext().join('.');\n const fieldSettings = App.settings.fields.find(f => (f === null || f === void 0 ? void 0 : f.path) && context.endsWith(f.path));\n if ((field.hidden && field.hidden()) || (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.hidden))\n return '';\n const category = field.category(childPath);\n const [cPrefix, cSuffix, cBody] = field.hook(this, childPath, value[k], mounter);\n if (k === 'Properties' && cSuffix === '')\n return '';\n return `
        \n
        \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n ${cPrefix}\n \n ${cSuffix}\n
        \n ${cBody ? `
        ${cBody}
        ` : ''}\n
        `;\n })\n .join('');\n }\n }\n suffix += node.hook(suffixInjector, path, mounter) || '';\n return ['', prefix + suffix, body];\n },\n string(params, path, value, mounter) {\n const inputId = mounter.register(el => {\n el.value = value !== null && value !== void 0 ? value : '';\n el.addEventListener('change', evt => {\n const newValue = el.value;\n path.model.set(path, newValue.length === 0 ? undefined : newValue);\n evt.stopPropagation();\n });\n });\n const suffix = params.node.hook(suffixInjector, path, mounter) || '';\n return ['', rawString(params, path, inputId) + suffix, ''];\n }\n};\nfunction isEnum(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\n}\nfunction isValidator(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\n}\nfunction rawString({ node, getValues, config }, path, inputId) {\n const values = getValues();\n if (isEnum(config) && !config.additional) {\n const contextPath = typeof config.enum === 'string' ?\n new Path(path.getArray(), [config.enum]) : path;\n return selectRaw(node, contextPath, values, inputId);\n }\n if (config && isValidator(config)\n && config.validator === 'resource'\n && typeof config.params.pool === 'string'\n && values.length > 0) {\n const contextPath = new Path(path.getArray(), [config.params.pool]);\n if (segmentedLocale(contextPath.contextPush(values[0]).getContext())) {\n return selectRaw(node, contextPath, values, inputId);\n }\n }\n const datalistId = hexId();\n return `\n ${values.length === 0 ? '' :\n `\n ${values.map(v => ``}`;\n}\nfunction selectRaw(node, contextPath, values, inputId) {\n return ``;\n}\nfunction hashString(str) {\n var hash = 0, i, chr;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0;\n }\n return hash;\n}\nfunction pathLocale(path, params) {\n var _a, _b;\n return (_b = (_a = segmentedLocale(path.getContext(), params)) !== null && _a !== void 0 ? _a : path.getContext()[path.getContext().length - 1]) !== null && _b !== void 0 ? _b : '';\n}\nfunction error(p, mounter) {\n const errors = p.model.errors.get(p, true);\n if (errors.length === 0)\n return '';\n return popupIcon('node-error', 'issue_opened', htmlEncode(locale(errors[0].error, errors[0].params)), mounter);\n}\nfunction help(path, mounter) {\n const message = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (message === undefined)\n return '';\n return popupIcon('node-help', 'info', htmlEncode(message), mounter);\n}\nconst popupIcon = (type, icon, popup, mounter) => {\n const onClick = mounter.onClick(el => {\n el.getElementsByTagName('span')[0].classList.add('show');\n document.body.addEventListener('click', () => {\n el.getElementsByTagName('span')[0].classList.remove('show');\n }, { capture: true, once: true });\n });\n return `
        \n ${popup}${Octicon[icon]}\n
        `;\n};\nconst contextMenu = (path, mounter) => {\n const id = mounter.register(el => {\n const openMenu = () => {\n var _a;\n const popup = document.createElement('div');\n popup.classList.add('node-menu');\n const helpMessage = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (helpMessage)\n popup.insertAdjacentHTML('beforeend', `${helpMessage}`);\n const context = path.getContext().join('.');\n popup.insertAdjacentHTML('beforeend', `\n
        \n ${Octicon.clippy}\n Context: \n ${context}\n
        `);\n (_a = popup.querySelector('.menu-item .btn')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {\n const inputEl = document.createElement('input');\n inputEl.value = context;\n el.appendChild(inputEl);\n inputEl.select();\n document.execCommand('copy');\n el.removeChild(inputEl);\n });\n el.appendChild(popup);\n document.body.addEventListener('click', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n document.body.addEventListener('contextmenu', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n };\n el.addEventListener('contextmenu', evt => {\n openMenu();\n evt.preventDefault();\n });\n let timer = null;\n el.addEventListener('touchstart', () => {\n timer = setTimeout(() => {\n openMenu();\n timer = null;\n }, 800);\n });\n el.addEventListener('touchend', () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n });\n });\n return `data-id=\"${id}\"`;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ModelPath } from '@mcschema/core';\nimport { App, checkVersion, Previews } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { renderHtml } from '../../hooks/renderHtml';\nimport config from '../../../config.json';\nimport { fetchPreset } from '../../DataFetcher';\nexport const TreePanel = (view, model) => {\n const getContent = () => {\n if (App.loaded.get()) {\n const path = new ModelPath(model);\n const rendered = model.schema.hook(renderHtml, path, model.data, view);\n const category = model.schema.category(path);\n if (rendered[1]) {\n return `
        \n
        ${rendered[1]}
        \n
        ${rendered[2]}
        \n
        `;\n }\n return rendered[2];\n }\n return '
        ';\n };\n const tree = view.register(el => {\n App.loaded.watchRun((value) => {\n if (!value) {\n // If loading is taking more than 100 ms, show spinner\n new Promise(r => setTimeout(r, 100)).then(() => {\n if (!App.loaded.get()) {\n view.mount(el, getContent(), false);\n }\n });\n }\n else {\n view.mount(el, getContent(), false);\n }\n });\n App.treeMinimized.watch(() => {\n view.mount(el, getContent(), false);\n });\n model.addListener({\n invalidated() {\n view.mount(el, getContent(), false);\n }\n });\n Previews.biome_noise.biomeColors.watch(() => {\n view.mount(el, getContent(), false);\n }, 'tree-panel');\n });\n const m = App.model.get();\n const registry = ((m === null || m === void 0 ? void 0 : m.category) ? (m === null || m === void 0 ? void 0 : m.category) + '/' : '') + (m === null || m === void 0 ? void 0 : m.schema);\n let presetList;\n const presetListId = view.register(el => presetList = el);\n const getPresets = (query) => {\n var _a, _b;\n const terms = (query !== null && query !== void 0 ? query : '').trim().split(' ');\n const results = ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : [])\n .map(r => r.slice(10))\n .filter(e => terms.every(t => e.includes(t)));\n return results.map(r => `
        __awaiter(void 0, void 0, void 0, function* () {\n App.schemasLoaded.set(false);\n const preset = yield fetchPreset(config.versions.find(v => v.id === App.version.get()), m === null || m === void 0 ? void 0 : m.path, r);\n model.reset(preset);\n App.schemasLoaded.set(true);\n Tracker.loadPreset((m === null || m === void 0 ? void 0 : m.path) + '/' + r);\n }))}\">${r}
        `).join('');\n };\n const presetControl = view.register(el => {\n App.schemasLoaded.watch(v => {\n var _a, _b;\n if (!v)\n return;\n const enabled = ((m === null || m === void 0 ? void 0 : m.path) && checkVersion(App.version.get(), '1.16'));\n el.classList.toggle('disabled', !enabled || ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : []).length === 0);\n if (enabled) {\n view.mount(presetList, getPresets(), false);\n }\n }, 'tree-panel');\n });\n return `
        \n
        \n
        \n
        {\n var _a, _b;\n toggleMenu(el);\n (_b = (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.select();\n })}\">\n ${Octicon.archive}\n
        \n
        \n
        \n ${Octicon.search} {\n view.mount(presetList, getPresets(el.value), false);\n })}\">\n
        \n
        \n
        \n
        \n
        \n
        \n ${Octicon.tag}\n App.version.watch(v => el.textContent = v, 'tree-controls'))}\">\n ${App.version.get()}\n \n
        \n
        \n ${config.versions\n .filter(v => { var _a; return checkVersion(v.id, (_a = App.model.get().minVersion) !== null && _a !== void 0 ? _a : '1.15'); })\n .reverse()\n .map(v => `\n
        {\n Tracker.setVersion(v.id);\n App.version.set(v.id);\n })}\">\n ${v.id}\n
        \n `).join('')}\n
        \n
        \n
        \n
        \n ${Octicon.kebab_horizontal}\n
        \n
        \n
        {\n Tracker.reset();\n model.reset(model.schema.default());\n })}\">\n ${Octicon.history}\n
        \n
        {\n el.addEventListener('click', () => {\n const value = !App.treeMinimized.get();\n App.treeMinimized.set(value);\n Tracker.toggleMinimize(value);\n });\n App.treeMinimized.watchRun(value => {\n view.mount(el, `${Octicon[value ? 'unfold' : 'fold']}`, false);\n });\n })}\">
        \n
        { Tracker.undo(); model.undo(); })}\">\n ${Octicon.arrow_left}\n
        \n
        { Tracker.redo(); model.redo(); })}\">\n ${Octicon.arrow_right}\n
        \n
        \n
        \n
        \n
        \n
        `;\n};\n","export const transformOutput = {\n base({}, _, value) {\n return value;\n },\n choice({ switchNode }, path, value) {\n return switchNode.hook(this, path, value);\n },\n list({ children }, path, value) {\n if (!Array.isArray(value))\n return value;\n return value.map((obj, index) => children.hook(this, path.push(index), obj));\n },\n map({ children }, path, value) {\n if (value === undefined)\n return undefined;\n let res = {};\n Object.keys(value).forEach(f => res[f] = children.hook(this, path.push(f), value[f]));\n return res;\n },\n object({ getActiveFields }, path, value) {\n if (value === undefined || value === null || typeof value !== 'object') {\n return value;\n }\n let res = {};\n const activeFields = getActiveFields(path);\n Object.keys(activeFields)\n .filter(k => activeFields[k].enabled(path))\n .forEach(f => {\n res[f] = activeFields[f].hook(this, path.push(f), value[f]);\n });\n return res;\n }\n};\n","import { ModelPath } from '@mcschema/core';\nimport { Tracker } from '../../Tracker';\nimport { transformOutput } from '../../hooks/transformOutput';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { App } from '../../App';\nexport const SourcePanel = (view, model) => {\n const updateContent = (el) => {\n const data = model.schema.hook(transformOutput, new ModelPath(model), model.data);\n App.jsonOutput.set(JSON.stringify(data, null, 2));\n el.value = App.jsonOutput.get();\n };\n const source = view.register(el => {\n updateContent(el);\n model.addListener({\n invalidated() {\n App.jsonError.set(null);\n updateContent(el);\n }\n });\n el.addEventListener('change', () => {\n const rawSource = el.value;\n try {\n model.reset(JSON.parse(rawSource));\n App.jsonError.set(null);\n }\n catch (err) {\n App.jsonError.set(err.message);\n }\n });\n });\n const copySource = (el) => {\n var _a;\n (_a = el.closest('.panel')) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('textarea')[0].select();\n document.execCommand('copy');\n Tracker.copy();\n };\n const downloadSource = (el) => {\n const fileContents = encodeURIComponent(App.jsonOutput.get() + '\\n');\n const downloadAnchor = el.lastElementChild;\n downloadAnchor.setAttribute('href', 'data:text/json;charset=utf-8,' + fileContents);\n downloadAnchor.setAttribute(\"download\", \"data.json\");\n downloadAnchor.click();\n Tracker.download();\n };\n const shareSource = (el) => {\n var _a;\n const shareInput = (_a = el.closest('.panel-controls')) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n const data = btoa(JSON.stringify(JSON.parse(App.jsonOutput.get())));\n const url = window.location.origin + window.location.pathname + '?q=' + data;\n shareInput.value = url;\n shareInput.style.display = 'inline-block';\n document.body.addEventListener('click', evt => {\n shareInput.style.display = 'none';\n }, { capture: true, once: true });\n shareInput.select();\n document.execCommand('copy');\n Tracker.share();\n };\n return `
        \n
        \n \n
        \n ${Octicon.clippy}\n \n
        \n
        \n
        \n ${Octicon.kebab_horizontal}\n
        \n
        \n
        \n ${Octicon.download}\n \n
        \n
        \n ${Octicon.link}\n
        \n
        \n
        \n
        \n \n
        `;\n};\n","import { App } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { Octicon } from '../Octicon';\nexport const PreviewPanel = (view, model) => {\n const panel = view.register(el => {\n const canvas = el.querySelector('canvas');\n const redraw = () => {\n const preview = App.preview.get();\n if (preview && preview.path && preview.path.withModel(model).get()) {\n const ctx = canvas.getContext('2d');\n const newState = preview.path.withModel(model).get();\n preview.state = JSON.parse(JSON.stringify(newState));\n const [width, height] = preview.getSize();\n canvas.width = width;\n canvas.height = height;\n const img = ctx.createImageData(width, height);\n preview.draw(model, img);\n ctx.putImageData(img, 0, 0);\n }\n else {\n App.preview.set(null);\n }\n };\n const updatePreview = () => {\n var _a, _b;\n redraw();\n view.mount(el.querySelector('.panel-controls'), `\n ${(_b = (_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.menu(view, redraw)) !== null && _b !== void 0 ? _b : ''}\n
        {\n Tracker.hidePreview();\n App.preview.set(null);\n })}\">\n ${Octicon.x}\n
        `, false);\n };\n model.addListener({\n invalidated: redraw\n });\n App.preview.watchRun((value) => {\n if (value) {\n value.redraw = redraw;\n updatePreview();\n }\n }, 'preview-panel');\n let dragStart;\n el.addEventListener('mousedown', evt => {\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mousemove', evt => {\n var _a, _b;\n if (dragStart === undefined)\n return;\n if ((_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.onDrag) {\n const [width, height] = App.preview.get().getSize();\n const dx = (evt.offsetX - dragStart[0]) * width / canvas.clientWidth;\n const dy = (evt.offsetY - dragStart[1]) * height / canvas.clientHeight;\n if (!(dx === 0 && dy === 0)) {\n (_b = App.preview.get()) === null || _b === void 0 ? void 0 : _b.onDrag(dx, dy);\n redraw();\n }\n }\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mouseup', evt => {\n dragStart = undefined;\n });\n });\n return `
        \n
        \n \n
        `;\n};\n","import { relativePath } from '@mcschema/core';\nimport { App } from '../App';\nimport { getFilterKey } from './getFilterKey';\nimport { walk } from './walk';\nexport const customValidation = walk({\n base() { },\n map({ config }, path, value) {\n var _a, _b, _c;\n if (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map') {\n const block = relativePath(path, config.validation.params.id).get();\n const errors = path.getModel().errors;\n const requiredProps = (_c = ((_b = App.blockStateRegistry[block]) !== null && _b !== void 0 ? _b : {}).properties) !== null && _c !== void 0 ? _c : {};\n const existingKeys = Object.keys(value !== null && value !== void 0 ? value : {});\n Object.keys(requiredProps).forEach(p => {\n if (!existingKeys.includes(p)) {\n if (path.last() === 'Properties') {\n errors.add(path, 'error.block_state.missing_property', p);\n }\n }\n else if (!requiredProps[p].includes(value[p])) {\n errors.add(path.push(p), 'error.invalid_enum_option', value[p]);\n }\n });\n }\n },\n object({ node, getActiveFields }, path, value) {\n let activeFields = getActiveFields(path);\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n const visibleKeys = Object.keys(activeFields)\n .filter(k => filterKey !== k)\n .filter(k => activeFields[k].enabled(path));\n if (visibleKeys.length === 1 && activeFields[visibleKeys[0]].type(path.push(visibleKeys[0])) === 'object') {\n if (activeFields[visibleKeys[0]].optional() && JSON.stringify(value[visibleKeys[0]]) === '{}') {\n path.push(visibleKeys[0]).set(undefined);\n }\n }\n }\n});\n","export const walk = (hook) => (Object.assign(Object.assign({}, hook), { choice(params, path, value, ...args) {\n var _a;\n ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n params.switchNode.hook(this, path, value, ...args);\n },\n list(params, path, value, ...args) {\n var _a;\n ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (!Array.isArray(value))\n return;\n value.forEach((e, i) => params.children.hook(this, path.push(i), e, ...args));\n },\n map(params, path, value, ...args) {\n var _a;\n ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (typeof value !== 'object')\n return;\n Object.keys(value).forEach(f => params.children.hook(this, path.push(f), value[f], ...args));\n },\n object(params, path, value, ...args) {\n var _a;\n ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (value === null || typeof value !== 'object')\n return;\n const activeFields = params.getActiveFields(path);\n Object.keys(activeFields)\n .filter(f => activeFields[f].enabled(path))\n .forEach(f => {\n activeFields[f].hook(this, path.push(f), value[f], ...args);\n });\n } }));\n","import { App, checkVersion, Models } from '../App';\nimport { Header } from '../components/Header';\nimport { SplitGroup } from '../components/SplitGroup';\nimport { Errors } from '../components/Errors';\nimport { TreePanel } from '../components/panels/TreePanel';\nimport { SourcePanel } from '../components/panels/SourcePanel';\nimport { PreviewPanel } from '../components/panels/PreviewPanel';\nimport { customValidation } from '../hooks/customValidation';\nimport { ModelPath, Path } from '@mcschema/core';\nexport const Generator = (view) => {\n const model = Models[App.model.get().id];\n model.listeners = [];\n const getSideContent = () => {\n return App.preview.get() ?\n SplitGroup(view, { direction: 'vertical', sizes: [60, 40] }, [\n SourcePanel(view, model),\n PreviewPanel(view, model)\n ])\n : SourcePanel(view, model);\n };\n const validatePreview = () => {\n var _a;\n const preview = App.preview.get();\n const path = (_a = preview === null || preview === void 0 ? void 0 : preview.path) === null || _a === void 0 ? void 0 : _a.withModel(model);\n if (!(path && path.get() && (preview === null || preview === void 0 ? void 0 : preview.active(path)))) {\n App.preview.set(null);\n }\n };\n model.addListener({\n invalidated: () => {\n validatePreview();\n model.schema.hook(customValidation, new ModelPath(model, new Path()), model.data, model.errors);\n }\n });\n App.schemasLoaded.watch((value) => {\n if (value) {\n model.validate();\n model.invalidate();\n validatePreview();\n }\n }, 'generator');\n App.localesLoaded.watch((value) => {\n if (value && App.schemasLoaded.get()) {\n model.invalidate();\n }\n }, 'generator');\n App.version.watchRun((value) => {\n const minVersion = App.model.get().minVersion;\n if (minVersion && !checkVersion(value, minVersion)) {\n App.version.set(minVersion);\n }\n }, 'generator');\n const sideContent = view.register(el => {\n App.preview.watch((value, oldValue) => {\n if (!value || !oldValue) {\n view.mount(el, getSideContent(), false);\n }\n }, 'generator');\n });\n const homeLink = typeof App.model.get().category === 'string' ? `/${App.model.get().category}/` : undefined;\n return `${Header(view, `${App.model.get().name} Generator`, homeLink)}\n
        \n ${SplitGroup(view, { direction: \"horizontal\", sizes: [66, 34] }, [\n TreePanel(view, model),\n `
        ${getSideContent()}
        `\n ])}\n
        \n ${Errors(view, model)}`;\n};\n","import { App } from '../App';\nimport { locale } from '../Locales';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { htmlEncode } from '../Utils';\nimport { Tracker } from '../Tracker';\nexport const Errors = (view, model) => {\n const getContent = () => {\n if (App.jsonError.get()) {\n return `
        \n
        \n ${htmlEncode(App.jsonError.get())}\n
        \n
        \n
        \n ${Octicon.issue_opened}\n
        `;\n }\n if (model.errors.count() === 0)\n return '';\n return `${App.errorsVisible.get() ? `\n
        \n ${model.errors.getAll().map(e => `\n
        \n ${e.path.toString()}\n -\n ${htmlEncode(locale(e.error, e.params))}\n
        \n `).join('')}\n
        \n ` : ''}\n ${Toggle(view, [[true, 'chevron_down'], [false, 'issue_opened']], App.errorsVisible, Tracker.toggleErrors)}`;\n };\n const errors = view.register(el => {\n model.addListener({\n errors() {\n view.mount(el, getContent(), false);\n }\n });\n App.jsonError.watch(() => {\n view.mount(el, getContent(), false);\n });\n App.errorsVisible.watch(() => {\n view.mount(el, getContent(), false);\n }, 'errors');\n });\n return `\n
        \n ${getContent()}\n
        `;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { App, checkVersion, Models } from './App';\nimport { View } from './views/View';\nimport { Home } from './views/Home';\nimport { NotFound } from './views/NotFound';\nimport { FieldSettings } from './views/FieldSettings';\nimport { Generator } from './views/Generator';\nimport { locale } from './Locales';\nimport { Tracker } from './Tracker';\nimport config from '../config.json';\nconst categories = config.models.filter(m => m.category === true);\nconst router = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n const urlParts = location.pathname.split('/').filter(e => e);\n const urlParams = new URLSearchParams(location.search);\n const target = document.getElementById('app');\n let title = locale('title.home');\n let renderer = (view) => '';\n let panel = 'home';\n if (urlParts.length === 0) {\n App.model.set({ id: '', name: 'Data Pack', category: true, minVersion: '1.15' });\n renderer = Home;\n }\n else if (urlParts[0] === 'settings' && urlParts[1] === 'fields') {\n panel = 'settings';\n renderer = FieldSettings;\n }\n else if (urlParts.length === 1 && categories.map(m => m.id).includes(urlParts[0])) {\n App.model.set(categories.find(m => m.id === urlParts[0]));\n renderer = Home;\n }\n else {\n panel = 'tree';\n const model = (_a = config.models.find(m => m.id === urlParts.join('/'))) !== null && _a !== void 0 ? _a : null;\n App.model.set(model);\n if (model) {\n if (urlParams.has('q')) {\n try {\n const data = atob((_b = urlParams.get('q')) !== null && _b !== void 0 ? _b : '');\n Models[model.id].reset(JSON.parse(data));\n }\n catch (e) { }\n }\n renderer = Generator;\n title = locale('title.generator', [locale(model.id)]);\n }\n else {\n renderer = NotFound;\n }\n }\n const versions = config.versions\n .filter(v => { var _a; return checkVersion(v.id, (_a = App.model.get()) === null || _a === void 0 ? void 0 : _a.minVersion); })\n .map(v => v.id).join(', ');\n document.title = `${title} Minecraft ${versions}`;\n App.mobilePanel.set(panel);\n const view = new View();\n view.mount(target, renderer(view), true);\n});\nwindow.addEventListener(\"popstate\", router);\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n document.body.addEventListener(\"click\", e => {\n if (e.target instanceof Element\n && e.target.hasAttribute('data-link')\n && e.target.hasAttribute('href')) {\n e.preventDefault();\n const target = e.target.getAttribute('href');\n Tracker.pageview(target);\n history.pushState(null, '', target);\n router();\n }\n });\n router();\n});\n"],"sourceRoot":""} \ No newline at end of file diff --git a/locales/de.json b/locales/de.json new file mode 100644 index 00000000..0fcda4db --- /dev/null +++ b/locales/de.json @@ -0,0 +1 @@ +{"advancement.criteria":"Kriterium","advancement.display":"Darstellung","advancement.display.announce_to_chat":"Im Chat bekanntgeben","advancement.display.background":"Hintergrund","advancement.display.description":"Beschreibung","advancement.display.frame":"Rahmen","advancement.display.frame.challenge":"Herausforderung","advancement.display.frame.goal":"Ziel","advancement.display.frame.task":"Aufgabe","advancement.display.help":"Wenn vorhanden, wird der Fortschritt in einem Fortschrittstab angezeigt.","advancement.display.hidden":"Versteckt","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon-Gegenstands-ID","advancement.display.icon.nbt":"Icon-Gegenstandsdaten","advancement.display.show_toast":"Toast anzeigen","advancement.display.title":"Titel","advancement.parent":"Vorheriger Fortschritt","advancement.rewards":"Belohnungen","advancement.rewards.experience":"Erfahrungspunkte","advancement.rewards.function":"Funktion","advancement.rewards.loot":"Beutetabellen","advancement.rewards.recipes":"Rezepte","advancement_trigger.bee_nest_destroyed":"Bienennest zerstört","advancement_trigger.bred_animals":"Tiere gepaart","advancement_trigger.brewed_potion":"Tränke gebraut","advancement_trigger.changed_dimension":"Dimension gewechselt","advancement_trigger.channeled_lightning":"Blitze Entladen","advancement_trigger.construct_beacon":"Leuchtfeuer gebaut","advancement_trigger.consume_item":"Gegenstand konsumiert","advancement_trigger.cured_zombie_villager":"Dorfbewohnerzombie geheilt","advancement_trigger.effects_changed":"Statuseffekte verändert","advancement_trigger.enchanted_item":"Gegenstand verzaubert","advancement_trigger.enter_block":"Block betreten","advancement_trigger.entity_hurt_player":"Spieler verletzt","advancement_trigger.entity_killed_player":"Spieler getötet","advancement_trigger.filled_bucket":"Eimer gefüllt","advancement_trigger.fishing_rod_hooked":"Etwas geangelt","advancement_trigger.hero_of_the_village":"Held des Dorfes","advancement_trigger.impossible":"Unmöglich","advancement_trigger.inventory_changed":"Inventar verändert","advancement_trigger.item_durability_changed":"Gegenstandshaltbarkeit verändert","advancement_trigger.item_used_on_block":"Gegenstand auf Block angewendet","advancement_trigger.killed_by_crossbow":"Durch Armbrust getötet","advancement_trigger.levitation":"Schwebekraft","advancement_trigger.location":"Ort betreten","advancement_trigger.nether_travel":"Nether-Reise","advancement_trigger.placed_block":"Block platziert","advancement_trigger.player_generates_container_loot":"Spieler generiert Beute für Behälter","advancement_trigger.player_hurt_entity":"Spieler verletzt Objekt","advancement_trigger.player_killed_entity":"Spieler tötet Objekt","advancement_trigger.recipe_unlocked":"Rezept freigeschaltet","advancement_trigger.safely_harvest_honey":"Sichere Honiggewinnung","advancement_trigger.shot_crossbow":"Armbrust abgefeuert","advancement_trigger.slept_in_bed":"In Bett geschlafen","advancement_trigger.slide_down_block":"Block herunterrutschen","advancement_trigger.summoned_entity":"Objekt beschworen","advancement_trigger.tame_animal":"Tier gezähmt","advancement_trigger.target_hit":"Ziel getroffen","advancement_trigger.thrown_item_picked_up_by_entity":"Objekt hebt fallengelassensen Gegenstand auf","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Enderauge verwendet","advancement_trigger.used_totem":"Totem verwendet","advancement_trigger.villager_trade":"Mit Dorfbewohner gehandelt","advancement_trigger.voluntary_exile":"Freiwilliges Exil","attribute.generic_armor":"Rüstung","attribute.generic_armor_toughness":"Rüstungshärte","attribute.generic_attack_damage":"Angriffsschaden","attribute.generic_attack_knockback":"Angriffsrückstoß","attribute.generic_attack_speed":"Angriffsgeschwindigkeit","attribute.generic_flying_speed":"Fluggeschwindigkeit","attribute.generic_follow_range":"Verfolgungsreichweite","attribute.generic_knockback_resistance":"Rückstoßwiderstand","attribute.generic_luck":"Glück","attribute.generic_max_health":"Maximale Gesundheit","attribute.generic_movement_speed":"Laufgeschwindigkeit","attribute.horse.jump_strength":"Sprungkraft","attribute.zombie.spawn_reinforcements":"Unterstützung rufen","attribute_modifier.amount":"Menge","attribute_modifier.attribute":"Attribut","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Basiswert multiplizieren","attribute_modifier.operation.multiply_total":"Gesamtwert multiplizieren","attribute_modifier.slot":"Slots","badge.experimental":"Experimentell","badge.unstable":"Unsicher","biome.carvers":"Borer","biome.carvers.air":"Luft","biome.carvers.liquid":"Flüssigkeit","biome.category":"Kategorie","biome.creature_spawn_probability":"Spawnwahrscheinlichkeit des Wesens","biome.depth":"Tiefe","biome.downfall":"Niederschlag","biome.effects":"Effekte","biome.effects.additions_sound":"Zusätzliches Geräusch","biome.effects.additions_sound.sound":"Geräusch","biome.effects.additions_sound.tick_chance":"Wahrscheinlichkeit per Tick","biome.effects.ambient_sound":"Ungebungsgeräusch","biome.effects.fog_color":"Nebelfarbe","biome.effects.foliage_color":"Blattfarbe","biome.effects.grass_color":"Grasfarbe","biome.effects.grass_color_modifier":"Grasfabmodifikator","biome.effects.grass_color_modifier.dark_forest":"Dichter Wald","biome.effects.grass_color_modifier.none":"Keiner","biome.effects.grass_color_modifier.swamp":"Sumpf","biome.effects.mood_sound":"Stimmungsgeräusch","biome.effects.mood_sound.block_search_extent":"Blocksuchentfernung","biome.effects.mood_sound.offset":"Verschiebung","biome.effects.mood_sound.sound":"Geräusch","biome.effects.mood_sound.tick_delay":"Verzögerung in Ticks","biome.effects.music":"Musik","biome.effects.music.max_delay":"Maximale Verzögerung","biome.effects.music.min_delay":"Minimale Verzögerung","biome.effects.music.replace_current_music":"Aktuelle Musik ersetzen","biome.effects.music.sound":"Geräusch","biome.effects.particle":"Partikel","biome.effects.particle.options":"Optionen","biome.effects.particle.options.type":"Partikelart","biome.effects.particle.probability":"Wahrscheinlichkeit","biome.effects.sky_color":"Himmelsfarbe","biome.effects.water_color":"Wasserfarbe","biome.effects.water_fog_color":"Wassernebelfarbe","biome.features":"Merkmale","biome.features.entry":"Schritt %0%","biome.features.entry.entry":"Merkmal","biome.player_spawn_friendly":"Weltspawn möglich","biome.player_spawn_friendly.help":"Wenn „true“, wird der Weltspawn in diesem Biom bevorzugt.","biome.precipitation":"Witterung","biome.precipitation.none":"Keine","biome.precipitation.rain":"Regen","biome.precipitation.snow":"Schnee","biome.scale":"Skalierung","biome.spawn_costs":"Spawnkosten","biome.spawn_costs.charge":"Ladung","biome.spawn_costs.energy_budget":"Energiebudget","biome.spawners":"Spawner","biome.spawners.ambient":"Atmosphäre","biome.spawners.creature":"Kreatur","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Maximale Anzahl","biome.spawners.entry.minCount":"Minimale Anzahl","biome.spawners.entry.type":"Typ","biome.spawners.entry.weight":"Gewichtung","biome.spawners.misc":"Verschiedene","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Wasseratmosphäre","biome.spawners.water_creature":"Wasserkreatur","biome.starts":"Strukturanfänge","biome.starts.entry":"Struktur","biome.starts.help":"Liste konfigurierter Strukturmerkmale","biome.surface_builder":"Oberflächengestalter","biome.temperature":"Temperatur","biome.temperature_modifier":"Temperaturmodifikator","biome.temperature_modifier.frozen":"Gefroren","biome.temperature_modifier.none":"Keiner","block.block":"Block-ID","block.nbt":"Blockdaten","block.state":"Blockzustand","block.tag":"Block-Aliasdaten","block_placer.column_placer.extra_size":"Extra Größe","block_placer.column_placer.min_size":"Minimale Größe","block_placer.type":"Typ","block_state.Name":"Name","block_state.Properties":"Eigenschaften","block_state_provider.rotated_block_provider.state":"Zustand","block_state_provider.simple_state_provider.state":"Zustand","block_state_provider.type":"Typ","block_state_provider.weighted_state_provider.entries":"Einträge","block_state_provider.weighted_state_provider.entries.entry.data":"Zustand","block_state_provider.weighted_state_provider.entries.entry.weight":"Gewichtung","carver.config":"Konfiguration","carver.config.probability":"Wahrscheinlichkeit","carver.type":"Typ","children":"Kinder","children.entry":"Eintrag","condition.alternative.terms":"Bedingungen","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Blockzustand","condition.condition":"Bedingung","condition.damage_source":"Schadensquelle","condition.entity_properties.entity":"Objekt","condition.entity_scores.entity":"Objekt","condition.entity_scores.scores":"Punktestände","condition.entry":"Prädikat","condition.inverted.term":"Bedingung","condition.item":"Gegenstand","condition.killed_by_player.inverse":"Invertiert","condition.list":"Mehrere","condition.location":"Ort","condition.location_check.offsetX":"X-Verschiebung","condition.location_check.offsetY":"Y-Verschiebung","condition.location_check.offsetZ":"Z-Verschiebung","condition.object":"Einfach","condition.random_chance.chance":"Wahrscheinlichkeit","condition.random_chance_with_looting.chance":"Wahrscheinlichkeit","condition.random_chance_with_looting.looting_multiplier":"Plüderungsmultiplikator","condition.reference.name":"Prädikatname","condition.table_bonus.chances":"Wahrscheinlichkeiten","condition.table_bonus.chances.entry":"Wahrscheinlichkeit","condition.table_bonus.enchantment":"Verzauberung","condition.time_check.period":"Zeitraum","condition.time_check.period.help":"Wenn vorhanden, wird der Restwert von der Zeit geteilt durch diesen Wert gebildet. Wenn beispielsweise dieser Wert auf 24000 gesetzt wird, wird der Zeitwert auf Tagen operieren.","condition.time_check.value":"Wert","condition.weather_check.raining":"Regen","condition.weather_check.thundering":"Gewitter","conditions":"Bedingungen","conditions.entry":"Bedingung","conditions.list":"Bedingungen","conditions.object":"Veraltet","copy_source.block_entity":"Blockobjekt","copy_source.killer":"Mörder","copy_source.killer_player":"Mörderspieler","copy_source.this":"Selbst","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Anzahl Bienen","criterion.bred_animals.child":"Kind","criterion.bred_animals.parent":"Mutter","criterion.bred_animals.partner":"Vater","criterion.brewed_potion.potion":"Trank","criterion.changed_dimension.from":"Von","criterion.changed_dimension.to":"Nach","criterion.channeled_lightning.victims":"Getroffene","criterion.channeled_lightning.victims.entry":"Objekt","criterion.conditions":"Bedingungen","criterion.construct_beacon.beacon_level":"Pyramidenhöhe","criterion.consume_item.item":"Gegenstand","criterion.cured_zombie_villager.villager":"Dorfbewohner","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Statuseffekte","criterion.enchanted_item.item":"Gegenstand","criterion.enchanted_item.levels":"Erfahrungslevel","criterion.enter_block.block":"Block","criterion.enter_block.state":"Zustände","criterion.entity_hurt_player.damage":"Schaden","criterion.entity_killed_player.entity":"Quellobjekt","criterion.entity_killed_player.killing_blow":"Todesschlag","criterion.filled_bucket.item":"Gegenstand","criterion.fishing_rod_hooked.entity":"Gezogenes Objekt","criterion.fishing_rod_hooked.item":"Gegenstand","criterion.hero_of_the_village.location":"Ort","criterion.inventory_changed.items":"Gegenstände","criterion.inventory_changed.items.entry":"Gegenstand","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Leere Slots","criterion.inventory_changed.slots.full":"Volle Slots","criterion.inventory_changed.slots.occupied":"Belegte Slots","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Haltbarkeit","criterion.item_durability_changed.item":"Gegenstand","criterion.item_used_on_block.item":"Gegenstand","criterion.item_used_on_block.location":"Ort","criterion.killed_by_crossbow.unique_entity_types":"Anzahl einzigartiger Objekttypen","criterion.killed_by_crossbow.victims":"Getroffene","criterion.killed_by_crossbow.victims.entry":"Objekt","criterion.levitation.distance":"Distanz","criterion.levitation.duration":"Dauer","criterion.location.location":"Ort","criterion.nether_travel.distance":"Distanz","criterion.nether_travel.entered":"Startort","criterion.nether_travel.exited":"Zielort","criterion.placed_block.block":"Block","criterion.placed_block.item":"Gegenstand","criterion.placed_block.location":"Ort","criterion.placed_block.state":"Zustände","criterion.player":"Spieler","criterion.player_generates_container_loot.loot_table":"Beutetabelle","criterion.player_hurt_entity.damage":"Schaden","criterion.player_hurt_entity.entity":"Opferobjekt","criterion.player_killed_entity.entity":"Opferobjekt","criterion.player_killed_entity.killing_blow":"Todesschlag","criterion.recipe_unlocked.recipe":"Rezept","criterion.rod":"Angel","criterion.shot_crossbow.item":"Gegenstand","criterion.slept_in_bed.location":"Ort","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Objekt","criterion.tame_animal.entity":"Tier","criterion.target_hit.projectile":"Geschoss","criterion.target_hit.shooter":"Schütze","criterion.target_hit.signal_strength":"Signalstärke","criterion.thrown_item_picked_up_by_entity.entity":"Objekt","criterion.thrown_item_picked_up_by_entity.item":"Gegenstand","criterion.trigger":"Auslöser","criterion.used_ender_eye.distance":"Distanz","criterion.used_totem.item":"Totem-Gegenstand","criterion.villager_trade.item":"Gekaufter Gegenstand","criterion.villager_trade.villager":"Dorfbewohner","criterion.voluntary_exile.location":"Ort","damage.blocked":"Geblocked","damage.dealt":"Schaden zugefügt","damage.source_entity":"Schadensverursacherobjekt","damage.taken":"Schaden genommen","damage.type":"Schadensart","damage_source.bypasses_armor":"Rüstung umgehen","damage_source.bypasses_invulnerability":"Leere","damage_source.bypasses_magic":"Hunger","damage_source.direct_entity":"Direktes Schadensquellobjekt","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Feuer","damage_source.is_lightning":"Blitzschlag","damage_source.is_magic":"Magie","damage_source.is_projectile":"Geschoss","damage_source.source_entity":"Schadensverurscherobjekt","decorator.carving_mask.step":"Generierungsschritt","decorator.config":"Konfiguration","decorator.count.count":"Anzahl","decorator.count_extra.count":"Anzahl","decorator.count_extra.extra_chance":"Zusätzliche Wahrscheinlichkeit","decorator.count_extra.extra_count":"Zusätzliche Anzahl","decorator.count_multilayer.count":"Anzahl","decorator.count_noise.above_noise":"Oberhalb des Rauschens","decorator.count_noise.below_noise":"Unterhalb des Rauschens","decorator.count_noise.noise_level":"Rauschlevel","decorator.count_noise_biased.noise_factor":"Rauschfaktor","decorator.count_noise_biased.noise_offset":"Rauschverschiebung","decorator.count_noise_biased.noise_to_count_ratio":"Verhältnis von Rauschen zu Anzahl","decorator.decorated.inner":"Innerer","decorator.decorated.outer":"Äußérer","decorator.depth_average.baseline":"Grundlinie","decorator.depth_average.spread":"Ausbreitung","decorator.glowstone.count":"Anzahl","decorator.type":"Typ","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biomquelle","dimension.overworld":"Oberwelt","dimension.the_end":"Das Ende","dimension.the_nether":"Der Nether","dimension.type":"Dimensionstyp","dimension.type.object":"Benutzerdefiniert","dimension.type.string":"Vorlage","dimension_type.ambient_light":"Umgebungslicht","dimension_type.ambient_light.help":"Wert zwischen 0 und 1.","dimension_type.bed_works":"Bett funktioniert","dimension_type.coordinate_scale":"Koordinatenskalierung","dimension_type.effects":"Effekte","dimension_type.effects.overworld":"Oberwelt","dimension_type.effects.the_end":"Das Ende","dimension_type.effects.the_nether":"Der Nether","dimension_type.fixed_time":"Feste Zeit","dimension_type.fixed_time.help":"Wenn dieser Wert gesetzt ist, ist die Zeit an diesem Wert für diese Dimension angehalten und die Sonne bzw. der Mond bleiben an derselben Stelle.","dimension_type.has_ceiling":"Hat Decke","dimension_type.has_raids":"Hat Überfälle","dimension_type.has_skylight":"Hat Tageslicht","dimension_type.infiniburn":"Dauerbrenner","dimension_type.logical_height":"Logische Höhe","dimension_type.name":"Name","dimension_type.natural":"Natürlich","dimension_type.natural.help":"Wenn „true“, erzeugen Nether-Portale zombifizierte Piglins. Wenn „false“, rotieren Kompasse und Uhren zufällig.","dimension_type.piglin_safe":"Piglinsicher","dimension_type.respawn_anchor_works":"Seelenanker funktioniert","dimension_type.ultrawarm":"Superwarm","dimension_type.ultrawarm.help":"Wenn „true“, verdampft Wasser und Schwämme trocknen.","distance.absolute":"Absolut","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Wasseraffinität","enchantment.bane_of_arthropods":"Nemesis der Gliederfüßer","enchantment.binding_curse":"Fluch der Bindung","enchantment.blast_protection":"Explosionsschutz","enchantment.channeling":"Entladung","enchantment.depth_strider":"Wasserläufer","enchantment.efficiency":"Effizienz","enchantment.enchantment":"Verzauberung","enchantment.feather_falling":"Federfall","enchantment.fire_aspect":"Verbrennung","enchantment.fire_protection":"Feuerschutz","enchantment.flame":"Flamme","enchantment.fortune":"Glück","enchantment.frost_walker":"Eisläufer","enchantment.impaling":"Harpune","enchantment.infinity":"Unendlichkeit","enchantment.knockback":"Rückstoß","enchantment.levels":"Level","enchantment.looting":"Plünderung","enchantment.loyalty":"Treue","enchantment.luck_of_the_sea":"Glück des Meeres","enchantment.lure":"Köder","enchantment.mending":"Reparatur","enchantment.multishot":"Mehrfachschuss","enchantment.piercing":"Durchschuss","enchantment.power":"Stärke","enchantment.projectile_protection":"Schusssicher","enchantment.protection":"Schutz","enchantment.punch":"Schlag","enchantment.quick_charge":"Schnellladen","enchantment.respiration":"Atmung","enchantment.riptide":"Sog","enchantment.sharpness":"Schärfe","enchantment.silk_touch":"Behutsamkeit","enchantment.smite":"Bann","enchantment.sweeping":"Schwungkraft","enchantment.thorns":"Dornen","enchantment.unbreaking":"Haltbarkeit","enchantment.vanishing_curse":"Fluch des Verschwindens","entity.distance":"Distanz","entity.effects":"Statuseffekte","entity.equipment":"Ausrüstung","entity.fishing_hook":"Angelhaken","entity.fishing_hook.in_open_water":"In offenem Gewässer","entity.flags":"Markierungen","entity.isBaby":"Baby","entity.isOnFire":"Brennt","entity.isSneaking":"Schleicht","entity.isSprinting":"Rennt","entity.isSwimming":"Schwimmt","entity.location":"Ort","entity.nbt":"NBT-Daten","entity.player":"Spieler","entity.targeted_entity":"Ausgewältes Objekt","entity.team":"Team","entity.type":"Objekt","entity.vehicle":"Gefährt","entity_source.killer":"Mörder","entity_source.killer_player":"Mörderspieler","entity_source.this":"Selbst","entry":"Eintrag","error":"Fehler","error.expected_boolean":"Wahrheitswer erwartet","error.expected_integer":"Ganzzahl erwartet","error.expected_json":"JSON erwartet","error.expected_list":"Array erwartet","error.expected_number":"Zahl erwartet","error.expected_object":"Objekt erwartet","error.expected_range":"Wertebereich erwartet","error.expected_string":"Zeichenkette erwartet","error.expected_uniform_int":"Gleichmäßige Verteilung erwartet","error.invalid_binomial":"Binomialverteilung wird in diesem Wertebereich nicht unterstützt","error.invalid_empty_list":"Array darf nicht leer sein","error.invalid_empty_string":"Zeichenkette darf nicht leer sein","error.invalid_enum_option":"Ungültige Option „%0%“","error.invalid_exact":"Dieser Wertebereich unterstützt keine Konstante","error.invalid_number_range.between":"Zahl zwischen %0% und %1% erwartet","error.invalid_pattern":"Zeichenkette ist ungültig: %0%","error.recipe.invalid_key":"Schlüssel darf nur ein einzelnes Zeichen sein","error.separation_smaller_spacing":"Aufteilung muss kleiner als Abstand sein","false":"Falsch","feature.bamboo.probability":"Wahrscheinlichkeit","feature.basalt_columns.height":"Höhe","feature.basalt_columns.reach":"Reichweite","feature.block_pile.state_provider":"Zustanderzeuger","feature.config":"Konfiguration","feature.decorated.decorator":"Dekorator","feature.decorated.feature":"Merkmal","feature.delta_feature.contents":"Inhalte","feature.delta_feature.rim":"Rand","feature.delta_feature.rim_size":"Randgröße","feature.delta_feature.size":"Größe","feature.disk.half_height":"Halbe Höhe","feature.disk.radius":"Radius","feature.disk.state":"Zustand","feature.disk.targets":"Ziele","feature.disk.targets.entry":"Zustand","feature.emerald_ore.state":"Zustand","feature.emerald_ore.target":"Ziel","feature.end_gateway.exact":"Exakt","feature.end_gateway.exit":"Ausgang","feature.end_spike.crystal_beam_target":"Kristallstrahlziel","feature.end_spike.crystal_invulnerable":"Endkristall Unzerstörbar","feature.end_spike.spikes":"Zacken","feature.end_spike.spikes.entry":"Zacken","feature.end_spike.spikes.entry.centerX":"X Mitte","feature.end_spike.spikes.entry.centerZ":"Z Mitte","feature.end_spike.spikes.entry.guarded":"Eisengitterkäfig","feature.end_spike.spikes.entry.height":"Höhe","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Höhe","feature.fill_layer.state":"Zustand","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Blackplatzierer","feature.flower.can_replace":"Kann Ersetzen","feature.flower.need_water":"Benötigt Wasser","feature.flower.project":"Projizieren","feature.flower.state_provider":"Zustandserzeuger","feature.flower.tries":"Versuche","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X Ausbreitung","feature.flower.yspread":"Y Ausbreitung","feature.flower.zspread":"Z Ausbreitung","feature.forest_rock.state":"Zustand","feature.huge_brown_mushroom.cap_provider":"Schirmerzeuger","feature.huge_brown_mushroom.foliage_radius":"Schirmradius","feature.huge_brown_mushroom.stem_provider":"Stielerzeuger","feature.huge_fungus.decor_state":"Dekoration","feature.huge_fungus.hat_state":"Schirm","feature.huge_fungus.planted":"Gepflanzt","feature.huge_fungus.stem_state":"Stiel","feature.huge_fungus.valid_base_block":"Erlaubter Untergrund","feature.huge_red_mushroom.cap_provider":"Schirmerzeuger","feature.huge_red_mushroom.foliage_radius":"Schirmradius","feature.huge_red_mushroom.stem_provider":"Stielerzeuger","feature.ice_patch.half_height":"Halbe Höhe","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"Zustand","feature.ice_patch.targets":"Ziele","feature.ice_patch.targets.entry":"Zustand","feature.iceberg.state":"Zustand","feature.lake.state":"Zustand","feature.nether_forest_vegetation.state_provider":"Zustanderzeuger","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"Zustand","feature.netherrack_replace_blobs.target":"Ziel","feature.no_surface_ore.size":"Größe","feature.no_surface_ore.state":"Zustand","feature.no_surface_ore.target":"Ziel","feature.object":"Benutzerdefiniert","feature.ore.size":"Größe","feature.random_boolean_selector.feature_false":"Merkmal 1","feature.random_boolean_selector.feature_true":"Merkmal 2","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Blockplatzierer","feature.random_patch.can_replace":"Kann Ersetzen","feature.random_patch.need_water":"Benötigt Wasser","feature.random_patch.project":"Projizieren","feature.random_patch.state_provider":"Zustanderzeuger","feature.random_patch.tries":"Versuche","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X Ausbreitung","feature.random_patch.yspread":"Y Ausbreitung","feature.random_patch.zspread":"Z Ausbreitung","feature.random_selector.default":"Standard","feature.random_selector.features":"Merkmale","feature.random_selector.features.entry":"Merkmal","feature.random_selector.features.entry.chance":"Wahrscheinlichkeit","feature.random_selector.features.entry.feature":"Merkmal","feature.sea_pickle.count":"Anzahl","feature.seegrass.probability":"Wahrscheinlichkeit","feature.simple_block.place_in":"Innerhalb platzieren","feature.simple_block.place_in.entry":"Zustand","feature.simple_block.place_on":"Platzieren auf","feature.simple_block.place_on.entry":"Zustand","feature.simple_block.place_under":"Unterhalb platzieren","feature.simple_block.place_under.entry":"Zustand","feature.simple_block.to_place":"Zu platzieren","feature.simple_random_selector.features":"Merkmale","feature.simple_random_selector.features.entry":"Merkmal","feature.spring_feature.hole_count":"Menge Löcher","feature.spring_feature.required_block_below":"Benötigt block unterhalb","feature.spring_feature.rock_count":"Menge Fels","feature.spring_feature.state":"Zustand","feature.spring_feature.valid_blocks":"Erlaubte Blöcke","feature.string":"Referenz","feature.tree.decorators":"Dekoratoren","feature.tree.decorators.entry":"Baumdekorator","feature.tree.foliage_placer":"Blattplatzierer","feature.tree.heightmap":"Höhenfeld","feature.tree.ignore_vines":"Ranken ignorieren","feature.tree.leaves_provider":"Blattblockerzeuger","feature.tree.max_water_depth":"Maximale Wassertiefe","feature.tree.minimum_size":"Minimale Größe","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Untere Größe","feature.tree.minimum_size.middle_size":"Mittlere Größe","feature.tree.minimum_size.min_clipped_height":"Minimale Größe","feature.tree.minimum_size.type":"Minimale Größe","feature.tree.minimum_size.upper_limit":"Obere Grenze","feature.tree.minimum_size.upper_size":"Obere Größe","feature.tree.trunk_placer":"Stammplatzierer","feature.tree.trunk_provider":"Stammblockerzeuger","feature.type":"Typ","fluid.fluid":"Flüssigkeits-ID","fluid.state":"Flüssigkeitszustand","fluid.tag":"Flüssigkeitsaliasdaten","fluid_state.Name":"Name","fluid_state.Properties":"Eigenschaften","foliage_placer.crown_height":"Kronenhöhe","foliage_placer.height":"Höhe","foliage_placer.offset":"Verschiebung","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Stammhöhe","foliage_placer.type":"Typ","function.apply_bonus.enchantment":"Verzauberung","function.apply_bonus.formula":"Formel","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial mit Bonusmenge","function.apply_bonus.formula.ore_drops":"Erzdrops","function.apply_bonus.formula.uniform_bonus_count":"Gleichmäßige Verteilung mit Bonusmenge","function.apply_bonus.parameters":"Parameter","function.apply_bonus.parameters.bonusMultiplier":"Muliplikator","function.apply_bonus.parameters.extra":"Bonusmenge","function.apply_bonus.parameters.probability":"Wahrscheinlichkeit","function.copy_name.source":"Quelle","function.copy_nbt.ops":"NBT-Operationen","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Quelle","function.copy_state.block":"Block","function.copy_state.properties":"Eigenschaften","function.copy_state.properties.entry":"Eigenschaft","function.enchant_randomly.enchantments":"Optionale Verzauberungen","function.enchant_randomly.enchantments.entry":"Verzauberung","function.enchant_with_levels.levels":"Level","function.enchant_with_levels.treasure":"Schatz","function.exploration_map.decoration":"Dekoration","function.exploration_map.destination":"Ziel","function.exploration_map.search_radius":"Suchradius (Chunks)","function.exploration_map.skip_existing_chunks":"Bereits generierte Chunks ignorieren","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Objekt","function.function":"Funktion","function.limit_count.limit":"Grenze","function.looting_enchant.count":"Anzahl","function.looting_enchant.limit":"Grenze","function.set_attributes.modifiers":"Modifikatoren","function.set_attributes.modifiers.entry":"Modifikator","function.set_contents.entries":"Inhalte","function.set_contents.entries.entry":"Eintrag","function.set_count.count":"Anzahl","function.set_damage.damage":"Schaden","function.set_data.data":"Daten","function.set_loot_table.name":"Beutetabellenname","function.set_loot_table.seed":"Seed","function.set_lore.entity":"Objekt","function.set_lore.lore":"Beschreibung","function.set_lore.lore.entry":"Zeile","function.set_lore.replace":"Ersetzen","function.set_name.entity":"Objekt","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Statuseffekte","function.set_stew_effect.effects.entry":"Statuseffekt","function.set_stew_effect.effects.entry.duration":"Wirkungsdauer","function.set_stew_effect.effects.entry.type":"Effekt","functions":"Funktionen","functions.entry":"Funktion","gamemode.adventure":"Abenteuer","gamemode.creative":"Kreativ","gamemode.spectator":"Zuschauer","gamemode.survival":"Überleben","generation_step.air":"Luft","generation_step.liquid":"Flüssigkeit","generator.biome_source.altitude_noise":"Höhenrauschen","generator.biome_source.biome":"Biom","generator.biome_source.biomes":"Biome","generator.biome_source.humidity_noise":"Feuchtigkeitsrauschen","generator.biome_source.large_biomes":"Große Biome","generator.biome_source.legacy_biome_init_layer":"Veraltete Biominitierungsschicht","generator.biome_source.preset":"Biomvorlage","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Skalierung","generator.biome_source.seed":"Biom-Seed","generator.biome_source.temperature_noise":"Temperaturrauschen","generator.biome_source.type":"Biomquelle","generator.biome_source.weirdness_noise":"Merkwürdigkeitsrauschen","generator.seed":"Dimensions-Seed","generator.settings":"Generatoreneinstellungen","generator.settings.biome":"Biom","generator.settings.lakes":"Seen","generator.settings.layers":"Schichten","generator.settings.layers.entry":"Schicht","generator.settings.layers.entry.block":"Block-ID","generator.settings.layers.entry.height":"Höhe","generator.settings.object":"Benutzerdefiniert","generator.settings.presets.amplified":"Zerküftet","generator.settings.presets.caves":"Höhlen","generator.settings.presets.end":"Ende","generator.settings.presets.floating_islands":"Schwebende Inseln","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Oberwelt","generator.settings.string":"Vorlage","generator.settings.structures":"Strukturen","generator.settings.structures.stronghold":"Festung","generator.settings.structures.stronghold.count":"Menge","generator.settings.structures.stronghold.distance":"Distanz","generator.settings.structures.stronghold.spread":"Ausbreitung","generator.settings.structures.structures":"Strukturen","generator.type":"Generatortyp","generator_biome.biome":"Biom","generator_biome.parameters":"Parameter","generator_biome.parameters.altitude":"Höhenlage","generator_biome.parameters.help":"Diese Parameter entscheiden die Platzierung des Bioms. Jedes Biom braucht eine einzigartige Kombination. Biome mit ähnlichen Werten generieren näher beieinander.","generator_biome.parameters.humidity":"Feuchtigkeit","generator_biome.parameters.offset":"Versatz","generator_biome.parameters.temperature":"Temperatur","generator_biome.parameters.weirdness":"Merkwürdigkeit","generator_biome_noise.amplitudes":"Amplituden","generator_biome_noise.amplitudes.entry":"Oktave %0%","generator_biome_noise.firstOctave":"Erste Oktave","generator_structure.salt":"Salt","generator_structure.separation":"Aufteilung","generator_structure.separation.help":"Die minimale Distanz in Chunks zwischen zwei Strukturen. Muss kleiner als Abstand sein.","generator_structure.spacing":"Abstand","generator_structure.spacing.help":"Die durchschnittliche Distanz swischen zwei Strukturen dieses Typs.","heightmap_type.MOTION_BLOCKING":"Bewegungsblokierend","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Bewegungsblockierend (Keine Blätter)","heightmap_type.OCEAN_FLOOR":"Ozeangrund","heightmap_type.OCEAN_FLOOR_WG":"Ozeangrund (Weltgenerierung)","heightmap_type.WORLD_SURFACE":"Weltoberfläsche","heightmap_type.WORLD_SURFACE_WG":"Weltoberfläsche (Weltgenerierung)","hide_source":"Quelltext verstecken","item.count":"Menge","item.durability":"Haltbarkeit","item.enchantments":"Verzauberungen","item.enchantments.entry":"Verzauberung","item.item":"Gegenstands-ID","item.nbt":"Gegenstandsdaten","item.potion":"Trank","item.tag":"Gegenstandsaliasdaten","key.advancements":"Fortschritte","key.attack":"Angreifen/Abbauen","key.back":"Rückwärts","key.chat":"Chat","key.command":"Befehlszeile öffnen","key.drop":"Gegenstand fallen lassen","key.forward":"Vorwärts","key.fullscreen":"Vollbild wechseln","key.hotbar.1":"Schnellzugriff 1","key.hotbar.2":"Schnellzugriff 2","key.hotbar.3":"Schnellzugriff 3","key.hotbar.4":"Schnellzugriff 4","key.hotbar.5":"Schnellzugriff 5","key.hotbar.6":"Schnellzugriff 6","key.hotbar.7":"Schnellzugriff 7","key.hotbar.8":"Schnellzugriff 8","key.hotbar.9":"Schnellzugriff 9","key.inventory":"Inventar öffnen/schließen","key.jump":"Springen","key.left":"Links","key.loadToolbarActivator":"Schnellzugriffsleiste laden","key.pickItem":"Block auswählen","key.playerlist":"Spieler auflisten","key.right":"Rechts","key.saveToolbarActivator":"Schnellzugriffsleiste speichern","key.screenshot":"Screenshot","key.smoothCamera":"Kameraverhalten wechseln","key.sneak":"Schleichen","key.spectatorOutlines":"Spieler hervorheben (Zuschauer)","key.sprint":"Sprinten","key.swapOffhand":"Gegenstand mit Zweithand tauschen","key.togglePerspective":"Perspektive wechseln","key.use":"Benutzen/Platzieren","location.biome":"Biom","location.block":"Block","location.dimension":"Dimension","location.feature":"Merkmal","location.fluid":"Flüssigkeit","location.light":"Licht","location.light.light":"Sichtbares Lichtlevel","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Verraucht","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Blockeigenschaften","loot_condition_type.damage_source_properties":"Schadensquelle","loot_condition_type.entity_properties":"Objekteigenschaften","loot_condition_type.entity_scores":"Objektpunktestände","loot_condition_type.inverted":"Invertiert","loot_condition_type.killed_by_player":"Getötet","loot_condition_type.location_check":"Ort","loot_condition_type.match_tool":"Werkzeugeigenschaften","loot_condition_type.random_chance":"Zufällig","loot_condition_type.random_chance_with_looting":"Zufällig mit Plünderung","loot_condition_type.reference":"Referenz","loot_condition_type.survives_explosion":"Überlebt Explosion","loot_condition_type.table_bonus":"Tabellenbonus","loot_condition_type.time_check":"Zeit","loot_condition_type.weather_check":"Wetter","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Beutetabellenname","loot_entry.quality":"Qualität","loot_entry.tag.expand":"Erweitern","loot_entry.tag.expand.help":"Wenn „false“ werden alle Gegenstände aus den Aliasdaten verwendet. Wenn „false“ wird ein Gegenstand aus den Aliasdaten zufällig ausgewählt.","loot_entry.tag.name":"Name des Gegenstandsaliases","loot_entry.type":"Typ","loot_entry.weight":"Gewichtung","loot_function_type.apply_bonus":"Bonus anwenden","loot_function_type.copy_name":"Namen kopieren","loot_function_type.copy_nbt":"NBT-Daten kopieren","loot_function_type.copy_state":"Blockzustände kopieren","loot_function_type.enchant_randomly":"Zufällig verzaubern","loot_function_type.enchant_with_levels":"Mit Leveln verzaubern","loot_function_type.exploration_map":"Entdeckerkarteneigenschaften","loot_function_type.explosion_decay":"Explosionsverfall","loot_function_type.fill_player_head":"Spielerkopf erzeugen","loot_function_type.furnace_smelt":"Ofen schmelzen","loot_function_type.limit_count":"Stapelgröße limitieren","loot_function_type.looting_enchant":"Plünderungsverzauberung","loot_function_type.set_attributes":"Attribute setzen","loot_function_type.set_contents":"Inhalte setzen","loot_function_type.set_count":"Anzahl setzen","loot_function_type.set_damage":"Schaden setzen","loot_function_type.set_data":"Daten setzen","loot_function_type.set_loot_table":"Beutetabelle setzen","loot_function_type.set_lore":"Gegenstandsbeschreibung setzen","loot_function_type.set_name":"Name setzen","loot_function_type.set_nbt":"NBT setzen","loot_function_type.set_stew_effect":"Suppeneffekt setzen","loot_pool.bonus_rolls":"Bonusausschüttungen","loot_pool.entries":"Einträge","loot_pool.entries.entry":"Eintrag","loot_pool.rolls":"Ausschüttungen","loot_pool.rolls.help":"Wie oft ein Eintrag aus diesem Beutetopf ausgewält wird.","loot_pool_entry_type.alternatives":"Alternativen","loot_pool_entry_type.alternatives.help":"Wält den ersten Eintrag aus der Liste aus, dessen Bedingung erfüllt ist.","loot_pool_entry_type.dynamic":"Dynamisch","loot_pool_entry_type.dynamic.help":"Erzeugt blockspezifischen Loot.","loot_pool_entry_type.empty":"Leer","loot_pool_entry_type.empty.help":"Ein leerer Eintrag. Kann verwendet werden, um einen Beutetopf zu einer gewissen Wahrscheinlichkeit nichts ausschütten zu lassen.","loot_pool_entry_type.group":"Gruppe","loot_pool_entry_type.group.help":"Grupiert mehrere Einträge und führt alle Einträge aus, wenn die eigene Bedingung erfüllt ist.","loot_pool_entry_type.item":"Gegenstand","loot_pool_entry_type.item.help":"Ein Eintrag mit einem einzelnen Gegenstand.","loot_pool_entry_type.loot_table":"Beutetabelle","loot_pool_entry_type.loot_table.help":"Ein Eintrag, der eine andere Beutetabelle ausschüttet.","loot_pool_entry_type.sequence":"Sequenz","loot_pool_entry_type.sequence.help":"Schüttet alle Kindeinträge aus, bis die Bedingung eines Eintrages fehlschlägt.","loot_pool_entry_type.tag":"Gegenstandsaliasdaten","loot_pool_entry_type.tag.help":"Ein Eintrag, der aus einem Gegenstandsaliasdatum Gegenstände ausschüttet.","loot_table.pools":"Beutetöpfe","loot_table.pools.entry":"Beutetopf","luck_based":"Glücksbasiert","nbt_operation.op":"Operation","nbt_operation.op.append":"Anhängen","nbt_operation.op.merge":"Zusammenfügen","nbt_operation.op.replace":"Ersetzen","nbt_operation.source":"Quelle","nbt_operation.target":"Ziel","noise_settings.bedrock_floor_position":"Grundgestein-Bodenpositionierung","noise_settings.bedrock_floor_position.help":"Position des Grundgesteinbodens. Höhere Zahlen versetzen ihn nach oben.","noise_settings.bedrock_roof_position":"Grundgestein-Deckenpositionierung","noise_settings.bedrock_roof_position.help":"Positionierung der Grundgesteindecke relativ zur Höhe der Dimension. Höhere Zahlen versetzen die Decke nach unten.","noise_settings.biome":"Biom","noise_settings.default_block":"Standardblock","noise_settings.default_fluid":"Standardflüssigkeit","noise_settings.disable_mob_generation":"Mobgenerieung deaktivieren","noise_settings.disable_mob_generation.help":"Wenn „true“, werden keine Kreaturen während der Weltgenerierung erzeugt.","noise_settings.name":"Name","noise_settings.noise":"Rauscheinstellungen","noise_settings.noise.amplified":"Zerklüftet","noise_settings.noise.bottom_slide":"Untere Schicht","noise_settings.noise.bottom_slide.offset":"Verschiebung der unteren Schicht","noise_settings.noise.bottom_slide.size":"Größe der unteren Schicht","noise_settings.noise.bottom_slide.target":"Ziel der unteren Schicht","noise_settings.noise.density_factor":"Dichtigkeitsfaktor","noise_settings.noise.density_offset":"Dichtigkeitsverschiebung","noise_settings.noise.height":"Höhe","noise_settings.noise.island_noise_override":"Insel-Rauschüberschreibung","noise_settings.noise.island_noise_override.help":"Wenn „true“, wird das Terrain wie im Ende mit einer größeren Insel in der Mitte und mehr Inseln weiter weg generiert.","noise_settings.noise.random_density_offset":"Zufällige Dichtigkeitsverschiebung","noise_settings.noise.sampling":"Abtastung","noise_settings.noise.sampling.xz_factor":"XZ-Faktor","noise_settings.noise.sampling.xz_scale":"XZ-Skalierung","noise_settings.noise.sampling.y_factor":"Y-Faktor","noise_settings.noise.sampling.y_scale":"Y-Skalierung","noise_settings.noise.simplex_surface_noise":"Simplex-Oberflächenrauschen","noise_settings.noise.size_horizontal":"Horizontale Größe","noise_settings.noise.size_vertical":"Vertikale Größe","noise_settings.noise.top_slide":"Obere Schicht","noise_settings.noise.top_slide.offset":"Verschiebung der oberen Schicht","noise_settings.noise.top_slide.size":"Größe der oberen Schicht","noise_settings.noise.top_slide.target":"Ziel der oberen Schicht","noise_settings.sea_level":"Meeresspiegel","noise_settings.structures":"Strukturen","noise_settings.structures.stronghold":"Festung","noise_settings.structures.stronghold.count":"Anzahl","noise_settings.structures.stronghold.distance":"Distanz","noise_settings.structures.stronghold.spread":"Ausbreitung","noise_settings.structures.structures":"Strukturen","player.advancements":"Fortschritte","player.advancements.entry":"Fortschritt","player.gamemode":"Spielmodus","player.level":"Erfahrungslevel","player.recipes":"Rezepte","player.stats":"Statistiken","player.stats.entry":"Statistik","pos_rule_test.always_true":"Immer „true“","pos_rule_test.axis":"Achse","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Achsenangepasste lineare Position","pos_rule_test.linear_pos":"Lineare Position","pos_rule_test.max_chance":"Maximale Wahrscheinlichkeit","pos_rule_test.max_dist":"Maximale Distanz","pos_rule_test.min_chance":"Minimale Wahrscheinlichkeit","pos_rule_test.min_dist":"Minimale Distanz","pos_rule_test.predicate_type":"Typ","processor.block_age.mossiness":"Moosigkeit","processor.block_ignore.blocks":"Blöcke","processor.block_ignore.blocks.entry":"Zustand","processor.block_rot.integrity":"Integrität","processor.gravity.heightmap":"Höhenfeld","processor.gravity.offset":"Verschiebung","processor.processor_type":"Typ","processor.rule.rules":"Regeln","processor.rule.rules.entry":"Regel","processor_list.processors":"Prozessoren","processor_list.processors.entry":"Prozessor","processor_rule.input_predicate":"Eingabenprädikat","processor_rule.location_predicate":"Ortsprädikat","processor_rule.output_nbt":"Ausgabe-NBT","processor_rule.output_state":"Ausgabeprädikat","processor_rule.position_predicate":"Positionsprädikat","processors.object":"Benutzerdefiniert","processors.string":"Referenz","range.binomial":"Binomialverteilung","range.max":"Maximum","range.min":"Minimum","range.n":"n","range.number":"Exakte Zahl","range.object":"Wertebereich","range.p":"p","range.uniform":"Gleichmäßige Verteilung","requirements":"Vorraussetzungen","rule_test.always_true":"Immer  „true“","rule_test.block":"Block","rule_test.block_match":"Blockvergleich","rule_test.block_state":"Zustand","rule_test.blockstate_match":"Blockzustandsvergleich","rule_test.predicate_type":"Typ","rule_test.probability":"Wahrscheinlichkeit","rule_test.random_block_match":"Zufälliger Blockvergleich","rule_test.random_blockstate_match":"Zufälliger Blockzustandsvergleich","rule_test.tag":"Aliasdaten","rule_test.tag_match":"Aliasdatenvergleich","slot.chest":"Truhe","slot.feet":"Schuhe","slot.head":"Kopfbedeckung","slot.legs":"Hose","slot.mainhand":"Haupthand","slot.offhand":"Nebenhand","statistic.stat":"Statistik","statistic.type":"Typ","statistic.type.broken":"Zerstört","statistic.type.crafted":"Hergestellt","statistic.type.custom":"Sonstige","statistic.type.dropped":"Fallen gelassen","statistic.type.killed":"Getötet","statistic.type.killedByTeam":"Von Team getötet","statistic.type.killed_by":"Getötet von","statistic.type.mined":"Abgebaut","statistic.type.picked_up":"Aufgehoben","statistic.type.teamkill":"Team getötet","statistic.type.used":"Verwendet","statistic.value":"Wert","status_effect.ambient":"Pastellfarben","status_effect.amplifier":"Stärke","status_effect.duration":"Wirkungsdauer","status_effect.visible":"Sichtbar","structure_feature.biome_temp":"Biomtemperatur","structure_feature.biome_temp.cold":"Kalt","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Anhäufungswahrscheinlichkeit","structure_feature.config":"Konfiguration","structure_feature.is_beached":"Gestranded","structure_feature.large_probability":"Große Wahrscheinlichkeit","structure_feature.portal_type":"Portalart","structure_feature.portal_type.desert":"Wüste","structure_feature.portal_type.jungle":"Dschungel","structure_feature.portal_type.mountain":"Berg","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ozean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Sumpf","structure_feature.probability":"Wahrscheinlichkeit","structure_feature.size":"Größe","structure_feature.start_pool":"Anfangstopf","structure_feature.type":"Typ","structure_feature.type.mesa":"Tafelberge","structure_feature.type.normal":"Normal","surface_builder.config":"Konfiguration","surface_builder.top_material":"Oberes Material","surface_builder.type":"Typ","surface_builder.under_material":"Unteres Material","surface_builder.underwater_material":"Unterwassermaterial","table.type":"Typ","table.type.block":"Block","table.type.chest":"Truhe","table.type.empty":"Leer","table.type.entity":"Objekt","table.type.fishing":"Angeln","table.type.generic":"Sonstiges","tag.replace":"Ersetzen","tag.values":"Werte","template_element.element_type":"Typ","template_element.elements":"Elemente","template_element.feature":"Merkmal","template_element.location":"Ort","template_element.processors":"Prozessoren","template_element.projection":"Projektion","template_element.projection.rigid":"Reichhaltig","template_element.projection.terrain_matching":"Terrainanpassung","template_pool.elements":"Elemente","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Gewichtung","template_pool.fallback":"Rückfall","template_pool.name":"Name","text_component":"JSON-Text","text_component.boolean":"Wahrheitswert","text_component.list":"Array","text_component.number":"Zahl","text_component.object":"Objekt","text_component.string":"Zeichenkette","text_component_object.block":"Block","text_component_object.bold":"Fett","text_component_object.clickEvent":"Klickevent","text_component_object.clickEvent.action":"Aktion","text_component_object.clickEvent.action.change_page":"Seite wechseln","text_component_object.clickEvent.action.copy_to_clipboard":"In die Zwichenablage kopieren","text_component_object.clickEvent.action.open_file":"Datei öffnen","text_component_object.clickEvent.action.open_url":"Link folgen","text_component_object.clickEvent.action.run_command":"Befehl ausführen","text_component_object.clickEvent.action.suggest_command":"Befehl vorschlagen","text_component_object.clickEvent.value":"Wert","text_component_object.color":"Farbe","text_component_object.entity":"Objekt","text_component_object.extra":"Zusatz","text_component_object.font":"Schriftart","text_component_object.hoverEvent":"Tooltip","text_component_object.hoverEvent.action":"Aktion","text_component_object.hoverEvent.action.show_entity":"Objekt-Tooltip","text_component_object.hoverEvent.action.show_item":"Gegenstandstooltip","text_component_object.hoverEvent.action.show_text":"JSON-Text-Tooltip","text_component_object.hoverEvent.contents":"Inhalte","text_component_object.hoverEvent.value":"Wert","text_component_object.insertion":"Einfügung","text_component_object.interpret":"Interpretieren","text_component_object.italic":"Kursiv","text_component_object.keybind":"Tastenkombination","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Verschleiert","text_component_object.score":"Punktestand","text_component_object.score.name":"Name","text_component_object.score.objective":"Ziel","text_component_object.score.value":"Wert","text_component_object.selector":"Zielauswahl","text_component_object.storage":"NBT-Speicher","text_component_object.strikethrough":"Durchgestrichen","text_component_object.text":"Normaler Text","text_component_object.translate":"Übersetzbarer Text","text_component_object.underlined":"Unterstrichen","text_component_object.with":"Ersetzuingstexte für Übersetzung","tree_decorator.alter_ground.provider":"Zustandserzeuger","tree_decorator.beehive.probability":"Wahrscheinlichkeit","tree_decorator.cocoa.probability":"Wahrscheinlichkeit","tree_decorator.type":"Typ","true":"Wahr","trunk_placer.base_height":"Basishöhe","trunk_placer.height_rand_a":"Zufallshöhe A","trunk_placer.height_rand_b":"Zufallshöhe B","trunk_placer.type":"Typ","uniform_int.base":"Basis","uniform_int.number":"Exakte Zahl","uniform_int.object":"Zahl aus gleichmäßiger Verteilung","uniform_int.spread":"Ausbreitung","unset":"Zurücksetzen","world.bonus_chest":"Bonustruhe generieren","world.generate_features":"Merkmale generieren","world.seed":"Seed","world_settings.bonus_chest":"Bonustruhe erzeugen","world_settings.dimensions":"Dimensionen","world_settings.generate_features":"Merkmale generieren","world_settings.seed":"Weltseed","worldgen.warning":"Dieses Feature ist extrem experimentell. Es kann sich jederzeit in zukünftigen Versionen ändern. Spielabstürze beim Erstellen von Welten sind nicht ausgeschlossen.","worldgen/biome_source.checkerboard":"Schachbrettmuster","worldgen/biome_source.checkerboard.help":"Biome generieren in einem Schachbrettmuster.","worldgen/biome_source.fixed":"Festgesetzt","worldgen/biome_source.fixed.help":"Ein Biom für die ganze Welt.","worldgen/biome_source.multi_noise":"Mehrfachrauschen","worldgen/biome_source.multi_noise.help":"Rauschbasierte Chunkgenerierung mit konfigurierbaren Parametern.","worldgen/biome_source.the_end":"Das Ende","worldgen/biome_source.the_end.help":"Biomverteilung für das Ende.","worldgen/biome_source.vanilla_layered":"Vanilla Geschichtet","worldgen/biome_source.vanilla_layered.help":"Schichtenmodellbasierte Biomgenerierung für die Oberwelt.","worldgen/block_placer_type.column_placer":"Säule","worldgen/block_placer_type.double_plant_placer":"2-Block-Pflanze","worldgen/block_placer_type.simple_block_placer":"Einfach","worldgen/block_state_provider_type.forest_flower_provider":"Blumenwald","worldgen/block_state_provider_type.plain_flower_provider":"Ebenenblumen","worldgen/block_state_provider_type.rotated_block_provider":"Rotierter Block","worldgen/block_state_provider_type.simple_state_provider":"Einfacher Zustand","worldgen/block_state_provider_type.weighted_state_provider":"Gewichteter Zustand","worldgen/carver.canyon":"Schlucht","worldgen/carver.cave":"Höhle","worldgen/carver.nether_cave":"Netherhöhle","worldgen/carver.underwater_canyon":"Unterwasserschlucht","worldgen/carver.underwater_cave":"Unterwasser Höhle","worldgen/chunk_generator.debug":"Debug-Welt","worldgen/chunk_generator.flat":"Superflach","worldgen/chunk_generator.noise":"Standard","worldgen/feature_size_type.three_layers_feature_size":"Drei Schichten","worldgen/feature_size_type.two_layers_feature_size":"Zwei Schichten","worldgen/foliage_placer_type.acacia_foliage_placer":"Akazie","worldgen/foliage_placer_type.blob_foliage_placer":"Kugel","worldgen/foliage_placer_type.bush_foliage_placer":"Busch","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Schwarzeiche","worldgen/foliage_placer_type.fancy_foliage_placer":"Verzweigt","worldgen/foliage_placer_type.jungle_foliage_placer":"Dschungel","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Riesenkiefer","worldgen/foliage_placer_type.pine_foliage_placer":"Kiefer","worldgen/foliage_placer_type.spruce_foliage_placer":"Fichte","worldgen/structure_pool_element.empty_pool_element":"Leer","worldgen/structure_pool_element.feature_pool_element":"Merkmal","worldgen/structure_pool_element.legacy_single_pool_element":"Veraltetes „Einfach“","worldgen/structure_pool_element.list_pool_element":"Liste","worldgen/structure_pool_element.single_pool_element":"Einfach","worldgen/structure_processor.blackstone_replace":"Schwarzsteinersetzung","worldgen/structure_processor.block_age":"Blockalter","worldgen/structure_processor.block_ignore":"Blöcke ignorieren","worldgen/structure_processor.block_rot":"Blockverfall","worldgen/structure_processor.gravity":"Schwerkraft","worldgen/structure_processor.jigsaw_replacement":"Verbundblock Ersetzung","worldgen/structure_processor.lava_submerged_block":"Unter Lava liegender Block","worldgen/structure_processor.nop":"Nichts","worldgen/structure_processor.rule":"Regel","worldgen/tree_decorator_type.alter_ground":"Bodenveränderung","worldgen/tree_decorator_type.beehive":"Bienennest","worldgen/tree_decorator_type.cocoa":"Kakao","worldgen/tree_decorator_type.leave_vine":"Blattranken","worldgen/tree_decorator_type.trunk_vine":"Stammranken","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Schwarzeiche","worldgen/trunk_placer_type.fancy_trunk_placer":"Verzweigt","worldgen/trunk_placer_type.forking_trunk_placer":"Akazie","worldgen/trunk_placer_type.giant_trunk_placer":"Riesig","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Riesendschungel","worldgen/trunk_placer_type.straight_trunk_placer":"Gerade","worldgen/template-pool":"Vorlagenauswahl","worldgen/surface-builder":"Oberflächengestalter","worldgen/structure-feature":"Strukturmekrmal","worldgen/processor-list":"Prozessorliste","worldgen/noise-settings":"Rauscheinstellungen","worldgen/feature":"Merkmal","worldgen/carver":"Borer","worldgen/biome":"Biom","preview":"Visualisieren","title.home":"Datenpaketgeneratoren","title.generator":"%0%-Generator","share":"Teilen","reset":"Zurücksetzen","predicate":"Prädikat","loot-table":"Beutetabelle","language":"Sprache","download":"Herunterladen","dimension-type":"Dimensionstyp","copy":"Kopieren","advancement":"Fortschritt"} \ No newline at end of file diff --git a/locales/en.json b/locales/en.json new file mode 100644 index 00000000..fba006b1 --- /dev/null +++ b/locales/en.json @@ -0,0 +1 @@ +{"advancement.criteria":"Criteria","advancement.display":"Display","advancement.display.announce_to_chat":"Announce To Chat","advancement.display.background":"Background","advancement.display.description":"Description","advancement.display.frame":"Frame","advancement.display.frame.challenge":"Challenge","advancement.display.frame.goal":"Goal","advancement.display.frame.task":"Task","advancement.display.help":"If present, advancement will be visible in the advancement tabs.","advancement.display.hidden":"Hidden","advancement.display.icon":"Icon","advancement.display.icon.item":"Icon Item","advancement.display.icon.nbt":"Icon NBT","advancement.display.show_toast":"Show Toast","advancement.display.title":"Title","advancement.parent":"Parent Advancement","advancement.rewards":"Rewards","advancement.rewards.experience":"Experience","advancement.rewards.function":"Function","advancement.rewards.loot":"Loot Tables","advancement.rewards.recipes":"Recipes","advancement_trigger.bee_nest_destroyed":"Bee Nest Destroyed","advancement_trigger.bred_animals":"Bred Animals","advancement_trigger.brewed_potion":"Brewed Potion","advancement_trigger.changed_dimension":"Changed Dimension","advancement_trigger.channeled_lightning":"Channeled Lightning","advancement_trigger.construct_beacon":"Construct Beacon","advancement_trigger.consume_item":"Consume Item","advancement_trigger.cured_zombie_villager":"Cured Zombie Villager","advancement_trigger.effects_changed":"Effects Changed","advancement_trigger.enchanted_item":"Enchanted Item","advancement_trigger.enter_block":"Enter Block","advancement_trigger.entity_hurt_player":"Entity Hurt Player","advancement_trigger.entity_killed_player":"Entity Killed Player","advancement_trigger.filled_bucket":"Filled Bucket","advancement_trigger.fishing_rod_hooked":"Fishing Rod Hooked","advancement_trigger.hero_of_the_village":"Hero Of The Village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventory Changed","advancement_trigger.item_durability_changed":"Item Durability Changed","advancement_trigger.item_used_on_block":"Item Used On Block","advancement_trigger.killed_by_crossbow":"Killed By Crossbow","advancement_trigger.levitation":"Levitation","advancement_trigger.location":"Location","advancement_trigger.nether_travel":"Nether Travel","advancement_trigger.placed_block":"Placed Block","advancement_trigger.player_generates_container_loot":"Player Generates Container Loot","advancement_trigger.player_hurt_entity":"Player Hurt Entity","advancement_trigger.player_killed_entity":"Player Killed Entity","advancement_trigger.recipe_unlocked":"Recipe Unlocked","advancement_trigger.safely_harvest_honey":"Safely Harvest Honey","advancement_trigger.shot_crossbow":"Shot Crossbow","advancement_trigger.slept_in_bed":"Slept In Bed","advancement_trigger.slide_down_block":"Slide Down Block","advancement_trigger.summoned_entity":"Summoned Entity","advancement_trigger.tame_animal":"Tame Animal","advancement_trigger.target_hit":"Target Hit","advancement_trigger.thrown_item_picked_up_by_entity":"Thrown Item Picked Up By Entity","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Used Ender Eye","advancement_trigger.used_totem":"Used Totem","advancement_trigger.villager_trade":"Villager Trade","advancement_trigger.voluntary_exile":"Voluntary Exile","attribute.generic_armor":"Armor","attribute.generic_armor_toughness":"Armor Toughness","attribute.generic_attack_damage":"Attack Damage","attribute.generic_attack_knockback":"Attack Knockback","attribute.generic_attack_speed":"Attack Speed","attribute.generic_flying_speed":"Flying Speed","attribute.generic_follow_range":"Follow Range","attribute.generic_knockback_resistance":"Knockback Resistance","attribute.generic_luck":"Luck","attribute.generic_max_health":"Max Health","attribute.generic_movement_speed":"Movement Speed","attribute.horse.jump_strength":"Jump Strength","attribute.zombie.spawn_reinforcements":"Spawn Reinforcements","attribute_modifier.amount":"Amount","attribute_modifier.attribute":"Attribute","attribute_modifier.name":"Name","attribute_modifier.operation":"Operation","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiply Base","attribute_modifier.operation.multiply_total":"Multiply Total","attribute_modifier.slot":"Slots","attribute_modifier.slot.list":"Multiple","attribute_modifier.slot.string":"Single","badge.experimental":"Experimental","badge.unstable":"Unstable","biome.carvers":"Carvers","biome.carvers.air":"Air","biome.carvers.liquid":"Liquid","biome.category":"Category","biome.creature_spawn_probability":"Creature Spawn Probability","biome.depth":"Depth","biome.depth.help":"Raises or lowers the terrain. Positive values are considered land and negative are oceans.","biome.downfall":"Downfall","biome.effects":"Effects","biome.effects.additions_sound":"Additions Sound","biome.effects.additions_sound.sound":"Sound","biome.effects.additions_sound.tick_chance":"Tick Chance","biome.effects.ambient_sound":"Ambient Sound","biome.effects.fog_color":"Fog Color","biome.effects.foliage_color":"Foliage Color","biome.effects.grass_color":"Grass Color","biome.effects.grass_color_modifier":"Grass Color Modifier","biome.effects.grass_color_modifier.dark_forest":"Dark Forest","biome.effects.grass_color_modifier.none":"None","biome.effects.grass_color_modifier.swamp":"Swamp","biome.effects.mood_sound":"Mood Sound","biome.effects.mood_sound.block_search_extent":"Block Search Extent","biome.effects.mood_sound.offset":"Offset","biome.effects.mood_sound.sound":"Sound","biome.effects.mood_sound.tick_delay":"Tick Delay","biome.effects.music":"Music","biome.effects.music.max_delay":"Max Delay","biome.effects.music.min_delay":"Min Delay","biome.effects.music.replace_current_music":"Replace Current Music","biome.effects.music.sound":"Sound","biome.effects.particle":"Particle","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Particle Type","biome.effects.particle.probability":"Probability","biome.effects.sky_color":"Sky Color","biome.effects.water_color":"Water Color","biome.effects.water_fog_color":"Water Fog Color","biome.features":"Features","biome.features.entry":"Step %0%","biome.features.entry.entry":"Feature","biome.player_spawn_friendly":"Player Spawn Friendly","biome.player_spawn_friendly.help":"If true, the world spawn will be preferred in this biome.","biome.precipitation":"Precipitation","biome.precipitation.none":"None","biome.precipitation.rain":"Rain","biome.precipitation.snow":"Snow","biome.scale":"Scale","biome.scale.help":"Vertically stretches the terrain. Lower values produce flatter terrain.","biome.spawn_costs":"Spawn Costs","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Energy Budget","biome.spawners":"Spawners","biome.spawners.ambient":"Ambient","biome.spawners.creature":"Creature","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Max Count","biome.spawners.entry.minCount":"Min Count","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Weight","biome.spawners.misc":"Miscellaneous","biome.spawners.monster":"Monster","biome.spawners.water_ambient":"Water Ambient","biome.spawners.water_creature":"Water Creature","biome.starts":"Structure Starts","biome.starts.entry":"Structure","biome.starts.help":"List of configured structure features.","biome.surface_builder":"Surface Builder","biome.temperature":"Temperature","biome.temperature_modifier":"Temperature Modifier","biome.temperature_modifier.frozen":"Frozen","biome.temperature_modifier.none":"None","block.block":"Block ID","block.nbt":"NBT","block.state":"Block State","block.tag":"Block Tag","block_placer.column_placer.extra_size":"Extra Size","block_placer.column_placer.min_size":"Min Size","block_placer.type":"Type","block_state.Name":"Name","block_state.Properties":"Properties","block_state_provider.rotated_block_provider.state":"State","block_state_provider.simple_state_provider.state":"State","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entries","block_state_provider.weighted_state_provider.entries.entry.data":"State","block_state_provider.weighted_state_provider.entries.entry.weight":"Weight","carver.config":"Config","carver.config.canyon.bottom_inclusive":"Bottom Inclusive","carver.config.canyon.top_inclusive":"Top Inclusive","carver.config.canyon.y_scale":"Y Scale","carver.config.canyon.distanceFactor":"Distance Factor","carver.config.canyon.vertical_rotation":"Vertical Rotation","carver.config.canyon.thickness":"Thickness","carver.config.canyon.width_smoothness":"Width Smoothness","carver.config.canyon.horizontal_radius_factor":"Horizontal Radius Factor","carver.config.canyon.vertical_radius_default_factor":"Vertical Radius Default Factor","carver.config.canyon.vertical_radius_center_factor":"Vertical Radius Center Factor","carver.config.debug_settings":"Debug Settings","carver.config.debug_settings.debug_mode":"Debug Mode","carver.config.debug_settings.air_state":"Air State","carver.config.probability":"Probability","carver.type":"Type","children":"Children","children.entry":"Entry","condition.alternative.terms":"Terms","condition.block_state_property.block":"Block","condition.block_state_property.properties":"Block State","condition.condition":"Condition","condition.damage_source":"Damage Source","condition.entity_properties.entity":"Entity","condition.entity_scores.entity":"Entity","condition.entity_scores.scores":"Scores","condition.entry":"Predicate","condition.inverted.term":"Term","condition.item":"Item","condition.killed_by_player.inverse":"Inverted","condition.list":"Multiple","condition.location":"Location","condition.location_check.offsetX":"X Offset","condition.location_check.offsetY":"Y Offset","condition.location_check.offsetZ":"Z Offset","condition.object":"Single","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Looting Multiplier","condition.reference.name":"Predicate Name","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantment","condition.time_check.period":"Period","condition.time_check.period.help":"If present, time will be modulo-divided by this value. For example, if set to 24000, value will operate on a time period of days.","condition.time_check.value":"Value","condition.value_check.range":"Range","condition.value_check.value":"Value","condition.weather_check.raining":"Raining","condition.weather_check.thundering":"Thundering","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Block Entity","copy_source.direct_killer":"Direct Killer","copy_source.killer":"Killer","copy_source.killer_player":"Killer Player","copy_source.this":"This","criterion.bee_nest_destroyed.block":"Block","criterion.bee_nest_destroyed.num_bees_inside":"Number of Bees Inside","criterion.bred_animals.child":"Child","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"From","criterion.changed_dimension.to":"To","criterion.channeled_lightning.victims":"Victims","criterion.channeled_lightning.victims.entry":"Entity","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Pyramid Level","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Villager","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effects","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"XP Level","criterion.enter_block.block":"Block","criterion.enter_block.state":"States","criterion.entity_hurt_player.damage":"Damage","criterion.entity_killed_player.entity":"Source Entity","criterion.entity_killed_player.killing_blow":"Killing Blow","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Pulled Entity","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Location","criterion.inventory_changed.items":"Items","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots Empty","criterion.inventory_changed.slots.full":"Slots Full","criterion.inventory_changed.slots.occupied":"Slots Occupied","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durability","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Location","criterion.killed_by_crossbow.unique_entity_types":"Amount of Unique Entity Types","criterion.killed_by_crossbow.victims":"Victims","criterion.killed_by_crossbow.victims.entry":"Entity","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Duration","criterion.location.location":"Location","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Entered Location","criterion.nether_travel.exited":"Exited Location","criterion.placed_block.block":"Block","criterion.placed_block.item":"Item","criterion.placed_block.location":"Location","criterion.placed_block.state":"States","criterion.player":"Player","criterion.player_generates_container_loot.loot_table":"Loot Table","criterion.player_hurt_entity.damage":"Damage","criterion.player_hurt_entity.entity":"Victim Entity","criterion.player_killed_entity.entity":"Victim Entity","criterion.player_killed_entity.killing_blow":"Killing Blow","criterion.recipe_unlocked.recipe":"Recipe","criterion.rod":"Rod","criterion.safely_harvest_honey.block":"Block","criterion.safely_harvest_honey.item":"Item","criterion.shot_crossbow.item":"Item","criterion.slept_in_bed.location":"Location","criterion.slide_down_block.block":"Block","criterion.summoned_entity.entity":"Entity","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Shooter","criterion.target_hit.signal_strength":"Signal Strength","criterion.thrown_item_picked_up_by_entity.entity":"Entity","criterion.thrown_item_picked_up_by_entity.item":"Item","criterion.trigger":"Trigger","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem Item","criterion.villager_trade.item":"Purchased Item","criterion.villager_trade.villager":"Villager","criterion.voluntary_exile.location":"Location","damage.blocked":"Blocked","damage.dealt":"Damage Dealt","damage.source_entity":"Source Entity","damage.taken":"Damage Taken","damage.type":"Damage Type","damage_source.bypasses_armor":"Bypass Armor","damage_source.bypasses_invulnerability":"Void","damage_source.bypasses_magic":"Starvation","damage_source.direct_entity":"Direct Entity","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Fire","damage_source.is_lightning":"Lightning","damage_source.is_magic":"Magic","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Source Entity","decorator.carving_mask.step":"Generation Step","decorator.config":"Config","decorator.count.count":"Count","decorator.count_extra.count":"Count","decorator.count_extra.extra_chance":"Extra Chance","decorator.count_extra.extra_count":"Extra Count","decorator.count_multilayer.count":"Count","decorator.count_noise.above_noise":"Above Noise","decorator.count_noise.below_noise":"Below Noise","decorator.count_noise.noise_level":"Noise Level","decorator.count_noise_biased.noise_factor":"Noise Factor","decorator.count_noise_biased.noise_offset":"Noise Offset","decorator.count_noise_biased.noise_to_count_ratio":"Noise To Count Ratio","decorator.decorated.inner":"Inner","decorator.decorated.outer":"Outer","decorator.depth_average.baseline":"Baseline","decorator.depth_average.spread":"Spread","decorator.glowstone.count":"Count","decorator.range.bottom_inclusive":"Bottom Inclusive","decorator.range.top_inclusive":"Top Inclusive","decorator.range_biased_to_bottom.bottom_inclusive":"Bottom Inclusive","decorator.range_biased_to_bottom.top_inclusive":"Top Inclusive","decorator.range_biased_to_bottom.cutoff":"Cutoff","decorator.range_very_biased_to_bottom.bottom_inclusive":"Bottom Inclusive","decorator.range_very_biased_to_bottom.top_inclusive":"Top Inclusive","decorator.range_very_biased_to_bottom.cutoff":"Cutoff","decorator.type":"Type","dimension":"Dimension","dimension.generator":"Generator","dimension.generator.biome_source":"Biome Source","dimension.overworld":"Overworld","dimension.the_end":"The End","dimension.the_nether":"The Nether","dimension.type":"Dimension Type","dimension.type.object":"Custom","dimension.type.string":"Preset","dimension_type.ambient_light":"Ambient Light","dimension_type.ambient_light.help":"How much ambient light there is. Should be a value between 0.0 and 1.0.","dimension_type.bed_works":"Bed Works","dimension_type.bed_works.help":"If true, players can use beds to set their spawn and advance time. If false, beds will blow up when used.","dimension_type.coordinate_scale":"Coordinate Scale","dimension_type.coordinate_scale.help":"Multiplier applied to coordinates when traveling between dimensions using a nether portal or /execute in.","dimension_type.effects":"Effects","dimension_type.effects.help":"Sky effects","dimension_type.effects.overworld":"Overworld","dimension_type.effects.the_end":"The End","dimension_type.effects.the_nether":"The Nether","dimension_type.fixed_time":"Fixed Time","dimension_type.fixed_time.help":"Setting this value will keep the sun in a fixed position.","dimension_type.has_ceiling":"Has Ceiling","dimension_type.has_ceiling.help":"Affects the weather, map items and respawning rules.","dimension_type.has_raids":"Has Raids","dimension_type.has_raids.help":"If true, players with the Bad Omen effect can cause a raid.","dimension_type.has_skylight":"Has Skylight","dimension_type.has_skylight.help":"Affects the weather, lighting engine and respawning rules.","dimension_type.height":"Height","dimension_type.height.help":"The total height in which blocks can exist. Max Y = Min Y + Height.","dimension_type.infiniburn":"Infiniburn","dimension_type.infiniburn.help":"Block tag defining what blocks keep fire infinitely burning.","dimension_type.logical_height":"Logical Height","dimension_type.logical_height.help":"Portals can't spawn and chorus fruit can't teleport players above this height.","dimension_type.min_y":"Min Y","dimension_type.min_y.help":"The minimum height in which blocks can exist.","dimension_type.name":"Name","dimension_type.natural":"Natural","dimension_type.natural.help":"If true, portals will spawn zombified piglins. If false, compasses and clocks spin randomly.","dimension_type.piglin_safe":"Piglin Safe","dimension_type.piglin_safe.help":"If false, piglins will shake and convert to zombified piglins.","dimension_type.respawn_anchor_works":"Respawn Anchor Works","dimension_type.respawn_anchor_works.help":"If true, players can charge and use respawn anchors to set their spawn. If false, respawn anchors will blow up when used.","dimension_type.ultrawarm":"Ultrawarm","dimension_type.ultrawarm.help":"If true, water will evaporate and sponges will dry.","distance.absolute":"Absolute","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Aqua Affinity","enchantment.bane_of_arthropods":"Bane of Arthropods","enchantment.binding_curse":"Curse of Binding","enchantment.blast_protection":"Blast Protection","enchantment.channeling":"Channeling","enchantment.depth_strider":"Depth Strider","enchantment.efficiency":"Efficiency","enchantment.enchantment":"Enchantment","enchantment.feather_falling":"Feather Falling","enchantment.fire_aspect":"Fire Aspect","enchantment.fire_protection":"Fire Protection","enchantment.flame":"Flame","enchantment.fortune":"Fortune","enchantment.frost_walker":"Frost Walker","enchantment.impaling":"Impaling","enchantment.infinity":"Infinity","enchantment.knockback":"Knockback","enchantment.levels":"Levels","enchantment.looting":"Looting","enchantment.loyalty":"Loyalty","enchantment.luck_of_the_sea":"Luck of the Sea","enchantment.lure":"Lure","enchantment.mending":"Mending","enchantment.multishot":"Multishot","enchantment.piercing":"Piercing","enchantment.power":"Power","enchantment.projectile_protection":"Projectile Protection","enchantment.protection":"Protection","enchantment.punch":"Punch","enchantment.quick_charge":"Quick Charge","enchantment.respiration":"Respiration","enchantment.riptide":"Riptide","enchantment.sharpness":"Sharpness","enchantment.silk_touch":"Silk Touch","enchantment.smite":"Smite","enchantment.sweeping":"Sweeping Edge","enchantment.thorns":"Thorns","enchantment.unbreaking":"Unbreaking","enchantment.vanishing_curse":"Curse of Vanishing","entity.distance":"Distance","entity.effects":"Effects","entity.equipment":"Equipment","entity.fishing_hook":"Fishing Hook","entity.fishing_hook.in_open_water":"In Open Water","entity.flags":"Flags","entity.isBaby":"Baby","entity.isOnFire":"On Fire","entity.isSneaking":"Sneaking","entity.isSprinting":"Sprinting","entity.isSwimming":"Swimming","entity.location":"Location","entity.nbt":"NBT","entity.player":"Player","entity.targeted_entity":"Targeted Entity","entity.team":"Team","entity.type":"Entity","entity.vehicle":"Vehicle","entity_source.direct_killer":"Direct Killer","entity_source.killer":"Killer","entity_source.killer_player":"Killer Player","entity_source.this":"This","entry":"Entry","error":"Error","error.expected_boolean":"Expected a boolean","error.expected_integer":"Expected an integer","error.expected_json":"Expected JSON","error.expected_list":"Expected an array","error.expected_number":"Expected a number","error.expected_object":"Expected an object","error.expected_range":"Expected a range","error.expected_string":"Expected a string","error.expected_uniform_int":"Expected a uniform int","error.height_multiple":"Height has to be multiple of %0%","error.invalid_binomial":"Range cannot use the binomial type","error.invalid_empty_list":"Array cannot be empty","error.invalid_empty_string":"String cannot be empty","error.invalid_enum_option":"Invalid option \"%0%\"","error.invalid_exact":"Range cannot use the constant type","error.invalid_pattern":"String is not valid: %0%","error.invalid_list_range.exact":"Expected a list with length %1%","error.invalid_list_range.larger":"List length %0% is larger than maximum %1%","error.invalid_list_range.smaller":"List length %0% is smaller than minimum %1%","error.invalid_number_range.between":"Expected a number between %1% and %2%","error.invalid_number_range.larger":"Value %0% is larger than maximum %1%","error.invalid_number_range.smaller":"Value %0% is smaller than minimum %1%","error.logical_height":"Logical height cannot be higher than height","error.min_y_multiple":"Min Y has to be a multiple of %0%","error.min_y_plus_height":"Min Y + height cannot be higher than %0%","error.recipe.invalid_key":"only single character is allowed as a key","error.separation_smaller_spacing":"Separation has to be smaller than spacing","false":"False","feature.bamboo.probability":"Probability","feature.basalt_columns.height":"Height","feature.basalt_columns.reach":"Reach","feature.block_pile.state_provider":"State Provider","feature.config":"Config","feature.decorated.decorator":"Decorator","feature.decorated.feature":"Feature","feature.delta_feature.contents":"Contents","feature.delta_feature.rim":"Rim","feature.delta_feature.rim_size":"Rim Size","feature.delta_feature.size":"Size","feature.disk.half_height":"Half Height","feature.disk.radius":"Radius","feature.disk.state":"State","feature.disk.targets":"Targets","feature.disk.targets.entry":"State","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"Far Dripstone Chance","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"Chance of a dripstone column at the max distance from the center.","feature.dripstone_cluster.density":"Density","feature.dripstone_cluster.dripstone_block_layer_thickness":"Block Layer Thickness","feature.dripstone_cluster.floor_to_ceiling_search_range":"Search Range","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.dripstone_cluster.height":"Height","feature.dripstone_cluster.height_deviation":"Height Deviation","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column":"Column Chance Distance","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column.help":"Max distance from the center affecting the chance of dripstone columns.","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"Height Bias Distance","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"Max distance from the center affecting the height bias.","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"Max Height Difference","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"Max height difference between the stalagmite and stalactite.","feature.dripstone_cluster.radius":"Radius","feature.dripstone_cluster.wetness":"Wetness","feature.dripstone_cluster.wetness_deviation":"Wetness Deviation","feature.dripstone_cluster.wetness_mean":"Wetness Mean","feature.emerald_ore.state":"State","feature.emerald_ore.target":"Target","feature.end_gateway.exact":"Exact","feature.end_gateway.exit":"Exit","feature.end_spike.crystal_beam_target":"Crystal Beam Target","feature.end_spike.crystal_invulnerable":"Crystal Invulnerable","feature.end_spike.spikes":"Spikes","feature.end_spike.spikes.entry":"Spike","feature.end_spike.spikes.entry.centerX":"Center X","feature.end_spike.spikes.entry.centerZ":"Center Z","feature.end_spike.spikes.entry.guarded":"Guarded","feature.end_spike.spikes.entry.height":"Height","feature.end_spike.spikes.entry.radius":"Radius","feature.fill_layer.height":"Height","feature.fill_layer.state":"State","feature.flower.blacklist":"Blacklist","feature.flower.block_placer":"Block Placer","feature.flower.can_replace":"Can Replace","feature.flower.need_water":"Need Water","feature.flower.project":"Project","feature.flower.state_provider":"State Provider","feature.flower.tries":"Tries","feature.flower.whitelist":"Whitelist","feature.flower.xspread":"X Spread","feature.flower.yspread":"Y Spread","feature.flower.zspread":"Z Spread","feature.forest_rock.state":"State","feature.glow_lichen.can_be_placed_on":"Can Be Placed On","feature.glow_lichen.can_be_placed_on.entry":"Block State","feature.glow_lichen.can_place_on_ceiling":"Can Place On Ceiling","feature.glow_lichen.can_place_on_floor":"Can Place On Floor","feature.glow_lichen.can_place_on_wall":"Can Place On Wall","feature.glow_lichen.chance_of_spreading":"Chance Of Spreading","feature.glow_lichen.search_range":"Search Range","feature.huge_brown_mushroom.cap_provider":"Cap Provider","feature.huge_brown_mushroom.foliage_radius":"Foliage Radius","feature.huge_brown_mushroom.stem_provider":"Stem Provider","feature.huge_fungus.decor_state":"Decoration","feature.huge_fungus.hat_state":"Hat","feature.huge_fungus.planted":"Planted","feature.huge_fungus.stem_state":"Stem","feature.huge_fungus.valid_base_block":"Valid Base","feature.huge_red_mushroom.cap_provider":"Cap Provider","feature.huge_red_mushroom.foliage_radius":"Foliage Radius","feature.huge_red_mushroom.stem_provider":"Stem Provider","feature.ice_patch.half_height":"Half Height","feature.ice_patch.radius":"Radius","feature.ice_patch.state":"State","feature.ice_patch.targets":"Targets","feature.ice_patch.targets.entry":"State","feature.iceberg.state":"State","feature.lake.state":"State","feature.large_dripstone.column_radius":"Column Radius","feature.large_dripstone.floor_to_ceiling_search_range":"Search Range","feature.large_dripstone.floor_to_ceiling_search_range.help":"Floor to ceiling search range.","feature.large_dripstone.height_scale":"Height Scale","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"Radius to Cave Height Ratio","feature.large_dripstone.min_bluntness_for_wind":"Min Bluntness for Wind","feature.large_dripstone.min_radius_for_wind":"Min Radius for Wind","feature.large_dripstone.stalactite_bluntness":"Stalactite Bluntness","feature.large_dripstone.stalagmite_bluntness":"Stalagmite Bluntness","feature.large_dripstone.wind_speed":"Wind Speed","feature.nether_forest_vegetation.state_provider":"State Provider","feature.netherrack_replace_blobs.radius":"Radius","feature.netherrack_replace_blobs.state":"State","feature.netherrack_replace_blobs.target":"Target","feature.no_surface_ore.size":"Size","feature.no_surface_ore.state":"State","feature.no_surface_ore.target":"Target","feature.object":"Custom","feature.ore.discard_chance_on_air_exposure":"Discard Chance On Air Exposure","feature.ore.size":"Size","feature.ore.targets":"Targets","feature.ore.targets.entry.target":"Target","feature.ore.targets.entry.state":"State","feature.scattered_ore.discard_chance_on_air_exposure":"Discard Chance On Air Exposure","feature.scattered_ore.size":"Size","feature.scattered_ore.targets":"Targets","feature.scattered_ore.targets.entry.target":"Target","feature.scattered_ore.targets.entry.state":"State","feature.random_boolean_selector.feature_false":"Feature 1","feature.random_boolean_selector.feature_true":"Feature 2","feature.random_patch.blacklist":"Blacklist","feature.random_patch.block_placer":"Block Placer","feature.random_patch.can_replace":"Can Replace","feature.random_patch.need_water":"Need Water","feature.random_patch.project":"Project","feature.random_patch.state_provider":"State Provider","feature.random_patch.tries":"Tries","feature.random_patch.whitelist":"Whitelist","feature.random_patch.xspread":"X Spread","feature.random_patch.yspread":"Y Spread","feature.random_patch.zspread":"Z Spread","feature.random_selector.default":"Default","feature.random_selector.features":"Features","feature.random_selector.features.entry":"Feature","feature.random_selector.features.entry.chance":"Chance","feature.random_selector.features.entry.feature":"Feature","feature.sea_pickle.count":"Count","feature.seegrass.probability":"Probability","feature.simple_block.place_in":"Place In","feature.simple_block.place_in.entry":"State","feature.simple_block.place_on":"Place On","feature.simple_block.place_on.entry":"State","feature.simple_block.place_under":"Place Under","feature.simple_block.place_under.entry":"State","feature.simple_block.to_place":"To Place","feature.simple_random_selector.features":"Features","feature.simple_random_selector.features.entry":"Feature","feature.small_dripstone.chance_of_taller_dripstone":"Chance of Taller Dripstone","feature.small_dripstone.empty_space_search_radius":"Empty Space Search Radius","feature.small_dripstone.max_offset_from_origin":"Max Offset from Origin","feature.small_dripstone.max_placements":"Max Placements","feature.spring_feature.hole_count":"Hole Count","feature.spring_feature.required_block_below":"Required Block Below","feature.spring_feature.rock_count":"Rock Count","feature.spring_feature.state":"State","feature.spring_feature.valid_blocks":"Valid Blocks","feature.string":"Reference","feature.tree.decorators":"Decorators","feature.tree.decorators.entry":"Tree Decorator","feature.tree.foliage_placer":"Foliage Placer","feature.tree.heightmap":"Heightmap","feature.tree.ignore_vines":"Ignore Vines","feature.tree.leaves_provider":"Leaves Provider","feature.tree.max_water_depth":"Max Water Depth","feature.tree.minimum_size":"Minimum Size","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Lower Size","feature.tree.minimum_size.middle_size":"Middle Size","feature.tree.minimum_size.min_clipped_height":"Min Clipped Height","feature.tree.minimum_size.type":"Minimum Size","feature.tree.minimum_size.upper_limit":"Upper Limit","feature.tree.minimum_size.upper_size":"Upper Size","feature.tree.trunk_placer":"Trunk Placer","feature.tree.trunk_provider":"Trunk Provider","feature.type":"Type","float_provider.base":"Base","float_provider.deviation":"Deviation","float_provider.mean":"Mean","float_provider.min":"Min","float_provider.max":"Max","float_provider.plateau":"Plateau","float_provider.spread":"Spread","float_provider.type.number":"Constant","float_provider.type.constant":"Constant+","float_provider.type.uniform":"Uniform","float_provider.type.clamped_normal":"Clamped Normal","float_provider.type.trapezoid":"Trapezoid","float_provider.value":"Value","fluid.fluid":"Fluid ID","fluid.state":"Fluid State","fluid.tag":"Fluid Tag","fluid_state.Name":"Name","fluid_state.Properties":"Properties","foliage_placer.crown_height":"Crown Height","foliage_placer.height":"Height","foliage_placer.offset":"Offset","foliage_placer.radius":"Radius","foliage_placer.trunk_height":"Trunk Height","foliage_placer.type":"Type","function.apply_bonus.enchantment":"Enchantment","function.apply_bonus.formula":"Formula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial with Bonus Count","function.apply_bonus.formula.ore_drops":"Ore Drops","function.apply_bonus.formula.uniform_bonus_count":"Uniform Bonus Count","function.apply_bonus.parameters":"Parameters","function.apply_bonus.parameters.bonusMultiplier":"Multiplier","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probability","function.copy_name.source":"Source","function.copy_nbt.ops":"NBT Operations","function.copy_nbt.ops.entry":"Operation","function.copy_nbt.source":"Source","function.copy_state.block":"Block","function.copy_state.properties":"Properties","function.copy_state.properties.entry":"Property","function.enchant_randomly.enchantments":"Optional Enchantments","function.enchant_randomly.enchantments.entry":"Enchantment","function.enchant_with_levels.levels":"Levels","function.enchant_with_levels.treasure":"Treasure","function.exploration_map.decoration":"Decoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Search Radius (Chunks)","function.exploration_map.skip_existing_chunks":"Skip Existing Chunks","function.exploration_map.zoom":"Zoom","function.fill_player_head.entity":"Entity","function.function":"Function","function.limit_count.limit":"Limit","function.list":"Multiple","function.looting_enchant.count":"Count","function.looting_enchant.limit":"Limit","function.object":"Single","function.set_attributes.modifiers":"Modifiers","function.set_attributes.modifiers.entry":"Modifier","function.set_banner_pattern.append":"Append","function.set_banner_pattern.patterns":"Patterns","function.set_contents.entries":"Contents","function.set_contents.entries.entry":"Entry","function.set_count.add":"Add","function.set_count.add.help":"If true, change will be relative to current item count","function.set_count.count":"Count","function.set_damage.add":"Add","function.set_damage.add.help":"If true, change will be relative to current damage","function.set_damage.damage":"Damage","function.set_data.data":"Data","function.set_enchantments.add":"Add","function.set_enchantments.add.help":"If true, change will be relative to current level","function.set_enchantments.enchantments":"Enchantments","function.set_loot_table.name":"Loot Table Name","function.set_loot_table.seed":"Seed","function.set_lore.entity":"Entity","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Line","function.set_lore.replace":"Replace","function.set_name.entity":"Entity","function.set_name.name":"Name","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Effects","function.set_stew_effect.effects.entry":"Effect","function.set_stew_effect.effects.entry.duration":"Duration","function.set_stew_effect.effects.entry.type":"Type","functions":"Functions","functions.entry":"Function","gamemode.adventure":"Adventure","gamemode.creative":"Creative","gamemode.spectator":"Spectator","gamemode.survival":"Survival","generation_step.air":"Air","generation_step.liquid":"Liquid","generator.biome_source.altitude_noise":"Altitude Noise","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.humidity_noise":"Humidity Noise","generator.biome_source.large_biomes":"Large Biomes","generator.biome_source.legacy_biome_init_layer":"Legacy Biome Init Layer","generator.biome_source.preset":"Biomes Preset","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Scale","generator.biome_source.seed":"Biomes Seed","generator.biome_source.temperature_noise":"Temperature Noise","generator.biome_source.type":"Biome Source","generator.biome_source.weirdness_noise":"Weirdness Noise","generator.seed":"Dimension Seed","generator.settings":"Generator Settings","generator.settings.biome":"Biome","generator.settings.lakes":"Lakes","generator.settings.layers":"Layers","generator.settings.layers.entry":"Layer","generator.settings.layers.entry.block":"Block ID","generator.settings.layers.entry.height":"Height","generator.settings.object":"Custom","generator.settings.presets.amplified":"Amplified","generator.settings.presets.caves":"Caves","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Floating Islands","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Overworld","generator.settings.string":"Preset","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Stronghold","generator.settings.structures.stronghold.count":"Count","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Spread","generator.settings.structures.structures":"Structures","generator.type":"Generator Type","generator_biome.biome":"Biome","generator_biome.parameters":"Parameters","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"These parameters determine the placement of the biome. Every biome must have a unique combination of them. Biomes with similar values will generate next to each other.","generator_biome.parameters.humidity":"Humidity","generator_biome.parameters.offset":"Offset","generator_biome.parameters.temperature":"Temperature","generator_biome.parameters.weirdness":"Weirdness","generator_biome_noise.amplitudes":"Amplitudes","generator_biome_noise.amplitudes.entry":"Octave %0%","generator_biome_noise.firstOctave":"First Octave","generator_structure.salt":"Salt","generator_structure.separation":"Separation","generator_structure.separation.help":"The minumum distance in chunks between two structures of this type.","generator_structure.spacing":"Spacing","generator_structure.spacing.help":"The average distance in chunks between two structures of this type.","heightmap_type.MOTION_BLOCKING":"Motion Blocking","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Motion Blocking (No Leaves)","heightmap_type.OCEAN_FLOOR":"Ocean Floor","heightmap_type.OCEAN_FLOOR_WG":"Ocean Floor (World Gen)","heightmap_type.WORLD_SURFACE":"World Surface","heightmap_type.WORLD_SURFACE_WG":"World Surface (World Gen)","hide_source":"Hide Source","item.count":"Count","item.durability":"Durability","item.enchantments":"Enchantments","item.enchantments.entry":"Enchantment","item.item":"Item ID","item.nbt":"NBT","item.potion":"Potion","item.tag":"Item Tag","key.advancements":"Advancements","key.attack":"Attack/Destroy","key.back":"Walk Backwards","key.chat":"Open Chat","key.command":"Open Command","key.drop":"Drop Selected Item","key.forward":"Walk Forwards","key.fullscreen":"Toggle Fullscreen","key.hotbar.1":"Hotbar Slot 1","key.hotbar.2":"Hotbar Slot 2","key.hotbar.3":"Hotbar Slot 3","key.hotbar.4":"Hotbar Slot 4","key.hotbar.5":"Hotbar Slot 5","key.hotbar.6":"Hotbar Slot 6","key.hotbar.7":"Hotbar Slot 7","key.hotbar.8":"Hotbar Slot 8","key.hotbar.9":"Hotbar Slot 9","key.inventory":"Open/Close Inventory","key.jump":"Jump","key.left":"Strafe Left","key.loadToolbarActivator":"Load Toolbar Activator","key.pickItem":"Pick Block","key.playerlist":"List Players","key.right":"Strafe Right","key.saveToolbarActivator":"Save Toolbar Activator","key.screenshot":"Take Screenshot","key.smoothCamera":"Toggle Cinematic Camera","key.sneak":"Sneak","key.spectatorOutlines":"Highlight Players (Spectators)","key.sprint":"Sprint","key.swapOffhand":"Swap Item With Offhand","key.togglePerspective":"Toggle Perspective","key.use":"Use Item/Place Block","location.biome":"Biome","location.block":"Block","location.dimension":"Dimension","location.feature":"Feature","location.fluid":"Fluid","location.light":"Light","location.light.light":"Visible Light Level","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Smokey","loot_condition_type.alternative":"Alternative","loot_condition_type.block_state_property":"Block State Properties","loot_condition_type.damage_source_properties":"Damage Source Properties","loot_condition_type.entity_properties":"Entity Properties","loot_condition_type.entity_scores":"Entity Scores","loot_condition_type.inverted":"Inverted","loot_condition_type.killed_by_player":"Killed by Player","loot_condition_type.location_check":"Location Check","loot_condition_type.match_tool":"Match Tool","loot_condition_type.random_chance":"Random Chance","loot_condition_type.random_chance_with_looting":"Random Chance with Looting","loot_condition_type.reference":"Reference","loot_condition_type.survives_explosion":"Survives Explosion","loot_condition_type.table_bonus":"Table Bonus","loot_condition_type.time_check":"Time Check","loot_condition_type.value_check":"Value Check","loot_condition_type.weather_check":"Weather Check","loot_entry.dynamic.name":"Name","loot_entry.item.name":"Name","loot_entry.loot_table.name":"Loot Table Name","loot_entry.quality":"Quality","loot_entry.tag.expand":"Expand","loot_entry.tag.expand.help":"If false, entry will return all contents of tag, otherwise entry will behave as multiple item entries.","loot_entry.tag.name":"Item Tag Name","loot_entry.type":"Type","loot_entry.weight":"Weight","loot_function_type.apply_bonus":"Apply Bonus","loot_function_type.copy_name":"Copy Name","loot_function_type.copy_nbt":"Copy NBT","loot_function_type.copy_state":"Copy Block States","loot_function_type.enchant_randomly":"Enchant Randomly","loot_function_type.enchant_with_levels":"Enchant With Levels","loot_function_type.exploration_map":"Exploration Map Properties","loot_function_type.explosion_decay":"Explosion Decay","loot_function_type.fill_player_head":"Fill Player Head","loot_function_type.furnace_smelt":"Furnace Smelt","loot_function_type.limit_count":"Limit Count","loot_function_type.looting_enchant":"Looting Enchant","loot_function_type.set_attributes":"Set Attributes","loot_function_type.set_banner_pattern":"Set Banner Pattern","loot_function_type.set_contents":"Set Contents","loot_function_type.set_count":"Set Count","loot_function_type.set_damage":"Set Damage","loot_function_type.set_data":"Set Data","loot_function_type.set_enchantments":"Set Enchantments","loot_function_type.set_loot_table":"Set Loot Table","loot_function_type.set_lore":"Set Lore","loot_function_type.set_name":"Set Name","loot_function_type.set_nbt":"Set NBT","loot_function_type.set_stew_effect":"Set Stew Effect","loot_pool.bonus_rolls":"Bonus Rolls","loot_pool.entries":"Entries","loot_pool.entries.entry":"Entry","loot_pool.rolls":"Rolls","loot_pool.rolls.help":"The amount of entries that are randomly chosen.","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Tests conditions of the child entries and executes the first that can run.","loot_pool_entry_type.dynamic":"Dynamic","loot_pool_entry_type.dynamic.help":"Gets block specific drops.","loot_pool_entry_type.empty":"Empty","loot_pool_entry_type.empty.help":"Adds nothing to the pool.","loot_pool_entry_type.group":"Group","loot_pool_entry_type.group.help":"Executes all child entries when own conditions pass.","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adds a single item.","loot_pool_entry_type.loot_table":"Loot Table","loot_pool_entry_type.loot_table.help":"Adds the contents of another loot table.","loot_pool_entry_type.sequence":"Sequence","loot_pool_entry_type.sequence.help":"Executes child entries until the first one that can't run due to conditions.","loot_pool_entry_type.tag":"Item Tag","loot_pool_entry_type.tag.help":"Adds the contents of an item tag.","loot_table.pools":"Pools","loot_table.pools.entry":"Pool","loot_table.type":"Type","luck_based":"Luck-based","nbt_operation.op":"Operation","nbt_operation.op.append":"Append","nbt_operation.op.merge":"Merge","nbt_operation.op.replace":"Replace","nbt_operation.source":"Source","nbt_operation.target":"Target","nbt_provider.source":"Source","nbt_provider.target":"Target","nbt_provider.type":"Type","nbt_provider.type.context":"Context+","nbt_provider.type.storage":"Storage","nbt_provider.type.string":"Context","noise_settings.aquifers_enabled":"Aquifers Enabled","noise_settings.bedrock_floor_position":"Bedrock Floor Position","noise_settings.bedrock_floor_position.help":"Position of the bedrock floor. Higher numbers move the floor up.","noise_settings.bedrock_roof_position":"Bedrock Roof Position","noise_settings.bedrock_roof_position.help":"Relative position of the bedrock roof starting at the world height. Higher numbers move the roof down.","noise_settings.biome":"Biome","noise_settings.deepslate_enabled":"Deepslate Enabled","noise_settings.default_block":"Default Block","noise_settings.default_fluid":"Default Fluid","noise_settings.disable_mob_generation":"Disable Mob Generation","noise_settings.disable_mob_generation.help":"If true, mobs will not spawn during generation.","noise_settings.name":"Name","noise_settings.noise":"Noise Options","noise_settings.noise_caves_enabled":"Noise Caves Enabled","noise_settings.noise.amplified":"Amplified","noise_settings.noise.bottom_slide":"Bottom Slide","noise_settings.noise.bottom_slide.help":"Adds or removes terrain at the bottom of the world. Does nothing when size is 0.","noise_settings.noise.bottom_slide.offset":"Offset","noise_settings.noise.bottom_slide.offset.help":"Defines an range of 'Offset * Size Vertical * 4' blocks at the bottom of the world where the density is set to the target.","noise_settings.noise.bottom_slide.size":"Size","noise_settings.noise.bottom_slide.size.help":"Defines a range of 'Size * Size Vertical * 4' blocks where the existing density and target are interpolated.","noise_settings.noise.bottom_slide.target":"Target","noise_settings.noise.bottom_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.noise.density_factor":"Density Factor","noise_settings.noise.density_factor.help":"Determines how much the height influences the terrain. Positive values produce land at the bottom. Values close to 0 produce uniform cave-like terrain.","noise_settings.noise.density_offset":"Density Offset","noise_settings.noise.density_offset.help":"Affects the average terrain height. A value of 0 produces terrain land height at half the height. Positive values raise the height.","noise_settings.noise.height":"Height","noise_settings.noise.height.help":"The total height where blocks can generate. Max Y = Min Y + Height.","noise_settings.noise.island_noise_override":"Island Noise Override","noise_settings.noise.island_noise_override.help":"If true, terrain will be shaped like islands similar to the end.","noise_settings.noise.min_y":"Min Y","noise_settings.noise.min_y.help":"The minimum height where blocks start generating.","noise_settings.noise.random_density_offset":"Random Density Offset","noise_settings.noise.sampling":"Sampling","noise_settings.noise.sampling.xz_factor":"XZ Factor","noise_settings.noise.sampling.xz_scale":"XZ Scale","noise_settings.noise.sampling.y_factor":"Y Factor","noise_settings.noise.sampling.y_scale":"Y Scale","noise_settings.noise.simplex_surface_noise":"Simplex Surface Noise","noise_settings.noise.size_horizontal":"Size Horizontal","noise_settings.noise.size_vertical":"Size Vertical","noise_settings.noise.top_slide":"Top Slide","noise_settings.noise.top_slide.help":"Adds or removes terrain at the top of the world. Does nothing when size is 0.","noise_settings.noise.top_slide.offset":"Offset","noise_settings.noise.top_slide.offset.help":"Defines an range of 'Offset * Size Vertical * 4' blocks at the top of the world where the density is set to the target.","noise_settings.noise.top_slide.size":"Size","noise_settings.noise.top_slide.size.help":"Defines a range of 'Size * Size Vertical * 4' blocks where the existing density and target are interpolated.","noise_settings.noise.top_slide.target":"Target","noise_settings.noise.top_slide.target.help":"The target density. Positive values add terrain and negative values remove terrain.","noise_settings.sea_level":"Sea Level","noise_settings.structures":"Structures","noise_settings.structures.stronghold":"Stronghold","noise_settings.structures.stronghold.count":"Count","noise_settings.structures.stronghold.distance":"Distance","noise_settings.structures.stronghold.spread":"Spread","noise_settings.structures.structures":"Structures","number_provider.max":"Max","number_provider.min":"Min","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"Scale","number_provider.score":"Objective","number_provider.target":"Target","number_provider.type":"Type","number_provider.type.binomial":"Binomial","number_provider.type.constant":"Constant+","number_provider.type.number":"Constant","number_provider.type.object":"Uniform","number_provider.type.score":"Score","number_provider.type.uniform":"Uniform+","number_provider.value":"Number","player.advancements":"Advancements","player.advancements.entry":"Advancement","player.gamemode":"Game Mode","player.level":"XP Level","player.recipes":"Recipes","player.stats":"Statistics","player.stats.entry":"Statistic","pos_rule_test.always_true":"Always True","pos_rule_test.axis":"Axis","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Axis Aligned Linear Pos","pos_rule_test.linear_pos":"Linear Pos","pos_rule_test.max_chance":"Max Chance","pos_rule_test.max_dist":"Max Dist","pos_rule_test.min_chance":"Min Chance","pos_rule_test.min_dist":"Min Dist","pos_rule_test.predicate_type":"Type","processor.block_age.mossiness":"Mossiness","processor.block_ignore.blocks":"Blocks","processor.block_ignore.blocks.entry":"State","processor.block_rot.integrity":"Integrity","processor.gravity.heightmap":"Heightmap","processor.gravity.offset":"Offset","processor.processor_type":"Type","processor.rule.rules":"Rules","processor.rule.rules.entry":"Rule","processor_list.processors":"Processors","processor_list.processors.entry":"Processor","processor_rule.input_predicate":"Input Predicate","processor_rule.location_predicate":"Location Predicate","processor_rule.output_nbt":"Output NBT","processor_rule.output_state":"Output State","processor_rule.position_predicate":"Position Predicate","processors.object":"Custom","processors.string":"Reference","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"N","range.number":"Exact","range.object":"Range","range.p":"P","range.type":"Type","range.uniform":"Uniform","requirements":"Requirements","rule_test.always_true":"Always True","rule_test.block":"Block","rule_test.block_match":"Block Match","rule_test.block_state":"State","rule_test.blockstate_match":"Block State Match","rule_test.predicate_type":"Type","rule_test.probability":"Probability","rule_test.random_block_match":"Random Block Match","rule_test.random_blockstate_match":"Random Block State Match","rule_test.tag":"Tag","rule_test.tag_match":"Tag Match","score_provider.name":"Name","score_provider.target":"Target","score_provider.type":"Type","score_provider.type.context":"Context+","score_provider.type.fixed":"Fixed","score_provider.type.string":"Context","slot.chest":"Chest","slot.feet":"Feet","slot.head":"Head","slot.legs":"Legs","slot.mainhand":"Mainhand","slot.offhand":"Offhand","statistic.stat":"Statistic","statistic.type":"Type","statistic.type.broken":"Broken","statistic.type.crafted":"Crafted","statistic.type.custom":"Custom","statistic.type.dropped":"Dropped","statistic.type.killed":"Killed","statistic.type.killedByTeam":"Killed By Team","statistic.type.killed_by":"Killed By","statistic.type.mined":"Mined","statistic.type.picked_up":"Picked Up","statistic.type.teamkill":"Killed Team","statistic.type.used":"Used","statistic.value":"Value","status_effect.ambient":"Ambient","status_effect.amplifier":"Amplifier","status_effect.duration":"Duration","status_effect.visible":"Visible","structure_feature.biome_temp":"Biome Temperature","structure_feature.biome_temp.cold":"Cold","structure_feature.biome_temp.warm":"Warm","structure_feature.cluster_probability":"Cluster Probability","structure_feature.config":"Config","structure_feature.is_beached":"Is Beached","structure_feature.large_probability":"Large Probability","structure_feature.portal_type":"Portal Type","structure_feature.portal_type.desert":"Desert","structure_feature.portal_type.jungle":"Jungle","structure_feature.portal_type.mountain":"Mountain","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standard","structure_feature.portal_type.swamp":"Swamp","structure_feature.probability":"Probability","structure_feature.size":"Size","structure_feature.start_pool":"Start Pool","structure_feature.type":"Type","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normal","surface_builder.config":"Config","surface_builder.top_material":"Top Material","surface_builder.type":"Type","surface_builder.under_material":"Under Material","surface_builder.underwater_material":"Underwater Material","table.type":"Type","table.type.block":"Block","table.type.chest":"Chest","table.type.empty":"Empty","table.type.entity":"Entity","table.type.fishing":"Fishing","table.type.generic":"Generic","tag.replace":"Replace","tag.values":"Values","template_element.element_type":"Type","template_element.elements":"Elements","template_element.feature":"Feature","template_element.location":"Location","template_element.processors":"Processors","template_element.projection":"Projection","template_element.projection.rigid":"Rigid","template_element.projection.terrain_matching":"Terrain Matching","template_pool.elements":"Elements","template_pool.elements.entry":"Element","template_pool.elements.entry.element":"Element","template_pool.elements.entry.weight":"Weight","template_pool.fallback":"Fallback","template_pool.name":"Name","text_component":"Text Component","text_component.boolean":"Boolean","text_component.list":"Array","text_component.number":"Number","text_component.object":"Object","text_component.object.text":"Plain Text","text_component.object.translation":"Translated Text","text_component.object.score":"Score Value","text_component.object.selector":"Entity Name","text_component.object.keybind":"Keybind","text_component.object.nbt":"NBT Value","text_component.string":"String","text_component_object.block":"Block","text_component_object.bold":"Bold","text_component_object.clickEvent":"Click Event","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Change Page","text_component_object.clickEvent.action.copy_to_clipboard":"Copy To Clipboard","text_component_object.clickEvent.action.open_file":"Open File","text_component_object.clickEvent.action.open_url":"Open Url","text_component_object.clickEvent.action.run_command":"Run Command","text_component_object.clickEvent.action.suggest_command":"Suggest Command","text_component_object.clickEvent.value":"Value","text_component_object.color":"Color","text_component_object.entity":"Entity","text_component_object.extra":"Extra","text_component_object.font":"Font","text_component_object.hoverEvent":"Hover Event","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Show Entity","text_component_object.hoverEvent.action.show_item":"Show Item","text_component_object.hoverEvent.action.show_text":"Show Text","text_component_object.hoverEvent.contents":"Contents","text_component_object.hoverEvent.value":"Value","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpret","text_component_object.italic":"Italic","text_component_object.keybind":"Keybind","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Obfuscated","text_component_object.score":"Score","text_component_object.score.name":"Name","text_component_object.score.objective":"Objective","text_component_object.score.value":"Value","text_component_object.selector":"Selector","text_component_object.storage":"Storage","text_component_object.strikethrough":"Strikethrough","text_component_object.text":"Text","text_component_object.translate":"Translate","text_component_object.underlined":"Underlined","text_component_object.with":"With","tree_decorator.alter_ground.provider":"State Provider","tree_decorator.beehive.probability":"Probability","tree_decorator.cocoa.probability":"Probability","tree_decorator.type":"Type","true":"True","trunk_placer.base_height":"Base Height","trunk_placer.height_rand_a":"Height Random A","trunk_placer.height_rand_b":"Height Random B","trunk_placer.type":"Type","uniform_int.base":"Base","uniform_int.number":"Constant","uniform_int.object":"Uniform","uniform_int.spread":"Spread","unset":"Unset","update.pack_format":"Update the pack_format to %0%","vertical_anchor.absolute":"Absolute","vertical_anchor.above_bottom":"Above Bottom","vertical_anchor.below_top":"Below Top","world.bonus_chest":"Spawn Bonus Chest","world.generate_features":"Generate Features","world.seed":"Seed","world_settings.bonus_chest":"Spawn Bonus Chest","world_settings.dimensions":"Dimensions","world_settings.generate_features":"Generate Features","world_settings.seed":"World Seed","worldgen.warning":"This feature is highly experimental and unstable. It can change in future versions. Expect the game to crash when creating worlds.","worldgen/biome_source.checkerboard":"Checkerboard","worldgen/biome_source.checkerboard.help":"Biomes generate in a checkerboard chunk pattern.","worldgen/biome_source.fixed":"Fixed","worldgen/biome_source.fixed.help":"One biome for the whole world.","worldgen/biome_source.multi_noise":"Multi Noise","worldgen/biome_source.multi_noise.help":"Custom biome distribution with configurable parameters.","worldgen/biome_source.the_end":"The End","worldgen/biome_source.the_end.help":"Biome distribution for the End.","worldgen/biome_source.vanilla_layered":"Vanilla Layered","worldgen/biome_source.vanilla_layered.help":"Biome distribution for the Overworld.","worldgen/block_placer_type.column_placer":"Column","worldgen/block_placer_type.double_plant_placer":"Double Plant","worldgen/block_placer_type.simple_block_placer":"Simple","worldgen/block_state_provider_type.forest_flower_provider":"Flower Forest","worldgen/block_state_provider_type.plain_flower_provider":"Plain Flower","worldgen/block_state_provider_type.rotated_block_provider":"Rotated Block","worldgen/block_state_provider_type.simple_state_provider":"Simple State","worldgen/block_state_provider_type.weighted_state_provider":"Weighted State","worldgen/carver.canyon":"Canyon","worldgen/carver.cave":"Cave","worldgen/carver.nether_cave":"Nether Cave","worldgen/carver.underwater_canyon":"Underwater Canyon","worldgen/carver.underwater_cave":"Underwater Cave","worldgen/chunk_generator.debug":"Debug World","worldgen/chunk_generator.flat":"Superflat","worldgen/chunk_generator.noise":"Default","worldgen/feature_size_type.three_layers_feature_size":"Three Layers","worldgen/feature_size_type.two_layers_feature_size":"Two Layers","worldgen/foliage_placer_type.acacia_foliage_placer":"Acacia","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Bush","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Dark Oak","worldgen/foliage_placer_type.fancy_foliage_placer":"Fancy","worldgen/foliage_placer_type.jungle_foliage_placer":"Jungle","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega Pine","worldgen/foliage_placer_type.pine_foliage_placer":"Pine","worldgen/foliage_placer_type.spruce_foliage_placer":"Spruce","worldgen/structure_pool_element.empty_pool_element":"Empty","worldgen/structure_pool_element.feature_pool_element":"Feature","worldgen/structure_pool_element.legacy_single_pool_element":"Legacy Single","worldgen/structure_pool_element.list_pool_element":"List","worldgen/structure_pool_element.single_pool_element":"Single","worldgen/structure_processor.blackstone_replace":"Blackstone Replace","worldgen/structure_processor.block_age":"Block Age","worldgen/structure_processor.block_ignore":"Block Ignore","worldgen/structure_processor.block_rot":"Block Rot","worldgen/structure_processor.gravity":"Gravity","worldgen/structure_processor.jigsaw_replacement":"Jigsaw Replacement","worldgen/structure_processor.lava_submerged_block":"Lava Submerged Block","worldgen/structure_processor.nop":"Nothing","worldgen/structure_processor.rule":"Rule","worldgen/tree_decorator_type.alter_ground":"Alter Ground","worldgen/tree_decorator_type.beehive":"Beehive","worldgen/tree_decorator_type.cocoa":"Cocoa","worldgen/tree_decorator_type.leave_vine":"Leave Vine","worldgen/tree_decorator_type.trunk_vine":"Trunk Vine","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Dark Oak","worldgen/trunk_placer_type.fancy_trunk_placer":"Fancy","worldgen/trunk_placer_type.forking_trunk_placer":"Forking","worldgen/trunk_placer_type.giant_trunk_placer":"Giant","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega Jungle","worldgen/trunk_placer_type.straight_trunk_placer":"Straight","advancement":"Advancement","button.add":"Add","button.collapse":"Collapse","button.expand":"Expand","button.remove":"Remove","copy":"Copy","dimension-type":"Dimension Type","download":"Download","error.block_state.missing_property":"Missing block property \"%0%\"","fields":"Fields","github":"GitHub","home":"Home","item-modifier":"Item Modifier","language":"Language","loot-table":"Loot Table","maximize":"Maximize","minimize":"Minimize","not_found.description":"The page you were looking for does not exist.","predicate":"Predicate","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","title.generator":"%0% Generator","title.home":"Data Pack Generators","presets":"Presets","preview":"Visualize","preview.show_density":"Show Density","preview.scale":"Scale","preview.depth":"Depth","preview.width":"Width","undo":"Undo","world":"World Settings","worldgen/biome":"Biome","worldgen/carver":"Carver","worldgen/feature":"Feature","worldgen/noise-settings":"Noise Settings","worldgen/processor-list":"Processor List","worldgen/structure-feature":"Structure Feature","worldgen/surface-builder":"Surface Builder","worldgen/template-pool":"Template Pool"} \ No newline at end of file diff --git a/locales/fr.json b/locales/fr.json new file mode 100644 index 00000000..d4a9c843 --- /dev/null +++ b/locales/fr.json @@ -0,0 +1 @@ +{"advancement.criteria":"Critères","advancement.display":"Affichage","advancement.display.announce_to_chat":"Annoncer dans le chat","advancement.display.background":"Fond","advancement.display.description":"Description","advancement.display.frame":"Cadre","advancement.display.frame.challenge":"Défi","advancement.display.frame.goal":"But","advancement.display.frame.task":"Tâche","advancement.display.help":"Si présent, le progrès sera visible dans le menu des progrès","advancement.display.hidden":"Caché","advancement.display.icon":"Icône","advancement.display.icon.item":"Objet de l'icône","advancement.display.icon.nbt":"Données NBT de l'icône","advancement.display.show_toast":"Afficher un toast","advancement.display.title":"Titre","advancement.parent":"Progrès parent","advancement.rewards":"Récompenses","advancement.rewards.experience":"Expérience","advancement.rewards.function":"Fonction","advancement.rewards.loot":"Tables de butin","advancement.rewards.recipes":"Recettes","advancement_trigger.bee_nest_destroyed":"Détruire une ruche","advancement_trigger.bred_animals":"Faire se reproduire des animaux","advancement_trigger.brewed_potion":"Préparer une potion","advancement_trigger.changed_dimension":"Changer de dimension","advancement_trigger.channeled_lightning":"Canaliser la foudre","advancement_trigger.construct_beacon":"Construire une balise","advancement_trigger.consume_item":"Consommer un objet","advancement_trigger.cured_zombie_villager":"Soigner un villageois zombie","advancement_trigger.effects_changed":"Effets changés","advancement_trigger.enchanted_item":"Enchanter un objet","advancement_trigger.enter_block":"Entrer dans un bloc","advancement_trigger.entity_hurt_player":"Prendre des dégâts","advancement_trigger.entity_killed_player":"Se faire tuer par une entité","advancement_trigger.filled_bucket":"Remplire un seau","advancement_trigger.fishing_rod_hooked":"Tirer une canne à pêche","advancement_trigger.hero_of_the_village":"Héros du village","advancement_trigger.impossible":"Impossible","advancement_trigger.inventory_changed":"Inventaire changé","advancement_trigger.item_durability_changed":"Durabilité d'un objet changée","advancement_trigger.item_used_on_block":"Interagir avec un bloc","advancement_trigger.killed_by_crossbow":"Etre tué par arbalète","advancement_trigger.levitation":"Lévitation","advancement_trigger.location":"Position","advancement_trigger.nether_travel":"Transport par le Nether","advancement_trigger.placed_block":"Placer un bloc","advancement_trigger.player_generates_container_loot":"Générer le butin d'un récipient","advancement_trigger.player_hurt_entity":"Endommager une entité","advancement_trigger.player_killed_entity":"Tuer une entité","advancement_trigger.recipe_unlocked":"Débloquer une recette","advancement_trigger.safely_harvest_honey":"Récolter du miel en sécurité","advancement_trigger.shot_crossbow":"Tirer avec une arbalète","advancement_trigger.slept_in_bed":"Dormir dans un lit","advancement_trigger.slide_down_block":"Glisser le long d'un bloc","advancement_trigger.summoned_entity":"Faire apparaître une entité","advancement_trigger.tame_animal":"Dompter une entité","advancement_trigger.target_hit":"Cible touchée","advancement_trigger.thrown_item_picked_up_by_entity":"Objet jeté puis ramassé par une entité","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Utiliser un oeil du néant","advancement_trigger.used_totem":"Utiliser un totem","advancement_trigger.villager_trade":"Commercer avec un villageois","advancement_trigger.voluntary_exile":"Exil volontaire","attribute.generic_armor":"Armure","attribute.generic_armor_toughness":"Robustesse de l'armure","attribute.generic_attack_damage":"Dégâts","attribute.generic_attack_knockback":"Recul","attribute.generic_attack_speed":"Vitesse d'attaque","attribute.generic_flying_speed":"Vitesse de vol","attribute.generic_follow_range":"Rayon de suivi","attribute.generic_knockback_resistance":"Résistance au recul","attribute.generic_luck":"Chance","attribute.generic_max_health":"Vie maximale","attribute.generic_movement_speed":"Vitesse de déplacement","attribute.horse.jump_strength":"Puissance de saut","attribute.zombie.spawn_reinforcements":"Probabilité d'apparition de renforcements","attribute_modifier.amount":"Quantité","attribute_modifier.attribute":"Attribut","attribute_modifier.name":"Nom","attribute_modifier.operation":"Opération","attribute_modifier.operation.addition":"Addition","attribute_modifier.operation.multiply_base":"Multiplier la base","attribute_modifier.operation.multiply_total":"Multiplier le total","attribute_modifier.slot":"Case","attribute_modifier.slot.list":"Plusieurs","attribute_modifier.slot.string":"Un seul","badge.experimental":"Expérimental","badge.unstable":"Instable","biome.carvers":"Grottes","biome.carvers.air":"Air","biome.carvers.liquid":"Liquide","biome.category":"Catégorie","biome.creature_spawn_probability":"Probabilité d'apparition de créatures","biome.depth":"Profondeur","biome.depth.help":"Élever ou abaisser le terrain. Les valeurs positives sont considérées comme le sol et négatives comme les océans.","biome.downfall":"Chute","biome.effects":"Effets","biome.effects.additions_sound":"Sons supplémentaires","biome.effects.additions_sound.sound":"Son","biome.effects.ambient_sound":"Son ambient","biome.effects.fog_color":"Couleur du brouillard","biome.effects.foliage_color":"Couleur du feuillage","biome.effects.grass_color":"Couleur de l'herbe","biome.effects.grass_color_modifier.dark_forest":"Forêt Noire","biome.effects.grass_color_modifier.none":"Aucun","biome.effects.grass_color_modifier.swamp":"Marais","biome.effects.mood_sound":"Son d'ambiance","biome.effects.mood_sound.offset":"Décalage","biome.effects.mood_sound.sound":"Son","biome.effects.mood_sound.tick_delay":"Retard de tick","biome.effects.music":"Musique","biome.effects.music.max_delay":"Délai maximal","biome.effects.music.min_delay":"Délai minimal","biome.effects.music.replace_current_music":"Remplacer la musique courante","biome.effects.music.sound":"Son","biome.effects.particle":"Particule","biome.effects.particle.options":"Options","biome.effects.particle.options.type":"Type de particule","biome.effects.particle.probability":"Probabilité","biome.effects.sky_color":"Couleur du ciel","biome.effects.water_color":"Couleur de l'eau","biome.effects.water_fog_color":"Couleur du brouillard de l'eau","biome.features":"Caractéristiques","biome.features.entry":"Etape %0%","biome.features.entry.entry":"Fonctionnalité","biome.player_spawn_friendly":"Apparition du joueur possible","biome.player_spawn_friendly.help":"Si vrai, le point d'apparition du monde sera de préférence dans ce biome.","biome.precipitation":"Précipitation","biome.precipitation.none":"Aucun","biome.precipitation.rain":"Pluie","biome.precipitation.snow":"Neige","biome.scale":"Échelle","biome.scale.help":"Étend verticalement le terrain. De petites valeurs produisent un terrain plat.","biome.spawn_costs":"Coûts d'apparition","biome.spawn_costs.charge":"Charge","biome.spawn_costs.energy_budget":"Budget énergétique","biome.spawners":"Générateurs","biome.spawners.ambient":"Ambiant","biome.spawners.creature":"Créature","biome.spawners.entry":"Apparition","biome.spawners.entry.maxCount":"Nombre maximal","biome.spawners.entry.minCount":"Nombre minimal","biome.spawners.entry.type":"Type","biome.spawners.entry.weight":"Poids","biome.spawners.misc":"Divers","biome.spawners.monster":"Monstre","biome.spawners.water_ambient":"Eau ambiante","biome.spawners.water_creature":"Créatures aquatiques","biome.starts":"Début de la structure","biome.starts.entry":"Structure","biome.starts.help":"Liste des caractéristiques des structures configurées.","biome.surface_builder":"Générateur de la surface","biome.temperature":"Température","biome.temperature_modifier":"Modificateur de la température","biome.temperature_modifier.frozen":"Congelé","biome.temperature_modifier.none":"Aucun","block.block":"ID du bloc","block.nbt":"Données NBT","block.state":"Etat du bloc","block.tag":"Tag de blocs","block_placer.column_placer.extra_size":"Taille supplémentaire","block_placer.column_placer.min_size":"Taille minimale","block_placer.type":"Type","block_state.Name":"Nom","block_state.Properties":"Propriétés","block_state_provider.rotated_block_provider.state":"État","block_state_provider.simple_state_provider.state":"État","block_state_provider.type":"Type","block_state_provider.weighted_state_provider.entries":"Entrées","block_state_provider.weighted_state_provider.entries.entry.data":"État","block_state_provider.weighted_state_provider.entries.entry.weight":"Poids","carver.config":"Configuration","carver.config.probability":"Probabilité","carver.type":"Type","children":"Enfants","children.entry":"Entrée","condition.alternative.terms":"Termes","condition.block_state_property.block":"Bloc","condition.block_state_property.properties":"Etat de bloc","condition.condition":"Condition","condition.damage_source":"Source de dégâts","condition.entity_properties.entity":"Entité","condition.entity_scores.entity":"Entité","condition.entity_scores.scores":"Scores","condition.entry":"Prédicat","condition.inverted.term":"Terme","condition.item":"Objet","condition.killed_by_player.inverse":"Inversé","condition.list":"Multiples","condition.location":"Position","condition.location_check.offsetX":"Décalage sur l'axe X","condition.location_check.offsetY":"Décalage sur l'axe Y","condition.location_check.offsetZ":"Décalage sur l'axe Z","condition.object":"Simple","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Multiplicateur butin","condition.reference.name":"Nom du prédicat","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Enchantement","condition.time_check.period":"Période","condition.time_check.period.help":"Si présent, le temps sera le reste de la division entière du vrai temps par cette value (modulo). Par exemple, si spécifié à 24000, la valeur sera opérée sur une période de la journée.","condition.time_check.value":"Valeur","condition.weather_check.raining":"Pluie","condition.weather_check.thundering":"Foudre","conditions":"Conditions","conditions.entry":"Condition","conditions.list":"Conditions","conditions.object":"Legacy","copy_source.block_entity":"Entité de bloc","copy_source.direct_killer":"Tueur direct","copy_source.killer":"Tueur","copy_source.killer_player":"Joueur tueur","copy_source.this":"Cette entité","criterion.bee_nest_destroyed.block":"Bloc","criterion.bee_nest_destroyed.num_bees_inside":"Nombre d'abeilles à l'intérieur","criterion.bred_animals.child":"Enfant","criterion.bred_animals.parent":"Parent","criterion.bred_animals.partner":"Partenaire","criterion.brewed_potion.potion":"Potion","criterion.changed_dimension.from":"Source","criterion.changed_dimension.to":"Destination","criterion.channeled_lightning.victims":"Victimes","criterion.channeled_lightning.victims.entry":"Entité","criterion.conditions":"Conditions","criterion.construct_beacon.beacon_level":"Niveau de la pyramide","criterion.consume_item.item":"Objet","criterion.cured_zombie_villager.villager":"Villageois","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Effets","criterion.enchanted_item.item":"Objet","criterion.enchanted_item.levels":"Niveau d'expérience","criterion.enter_block.block":"Bloc","criterion.enter_block.state":"Etats","criterion.entity_hurt_player.damage":"Dégâts","criterion.entity_killed_player.entity":"Entité source","criterion.entity_killed_player.killing_blow":"Coup de grâce","criterion.filled_bucket.item":"Objet","criterion.fishing_rod_hooked.entity":"Entité tirée","criterion.fishing_rod_hooked.item":"Objet","criterion.hero_of_the_village.location":"Position","criterion.inventory_changed.items":"Objets","criterion.inventory_changed.items.entry":"Objet","criterion.inventory_changed.slots":"Cases","criterion.inventory_changed.slots.empty":"Cases vides","criterion.inventory_changed.slots.full":"Cases pleines","criterion.inventory_changed.slots.occupied":"Cases occupées","criterion.item_durability_changed.delta":"Différence","criterion.item_durability_changed.durability":"Durabilité","criterion.item_durability_changed.item":"Objet","criterion.item_used_on_block.item":"Objet","criterion.item_used_on_block.location":"Position","criterion.killed_by_crossbow.unique_entity_types":"Nombre de types d'entité d'uniques","criterion.killed_by_crossbow.victims":"Victimes","criterion.killed_by_crossbow.victims.entry":"Entité","criterion.levitation.distance":"Distance","criterion.levitation.duration":"Durée","criterion.location.location":"Position","criterion.nether_travel.distance":"Distance","criterion.nether_travel.entered":"Position entrée","criterion.nether_travel.exited":"Position quittée","criterion.placed_block.block":"Bloc","criterion.placed_block.item":"Objet","criterion.placed_block.location":"Position","criterion.placed_block.state":"Etats","criterion.player":"Joueur","criterion.player_generates_container_loot.loot_table":"Table de butins","criterion.player_hurt_entity.damage":"Dégâts","criterion.player_hurt_entity.entity":"Entité victime","criterion.player_killed_entity.entity":"Entité victime","criterion.player_killed_entity.killing_blow":"Coup de grâce","criterion.recipe_unlocked.recipe":"Recette","criterion.rod":"Canne à pêche","criterion.shot_crossbow.item":"Objet","criterion.slept_in_bed.location":"Position","criterion.slide_down_block.block":"Bloc","criterion.summoned_entity.entity":"Entité","criterion.tame_animal.entity":"Animal","criterion.target_hit.projectile":"Projectile","criterion.target_hit.shooter":"Tireur","criterion.target_hit.signal_strength":"Force du signal","criterion.thrown_item_picked_up_by_entity.entity":"Entité","criterion.thrown_item_picked_up_by_entity.item":"Objet","criterion.trigger":"Déclencheur","criterion.used_ender_eye.distance":"Distance","criterion.used_totem.item":"Totem","criterion.villager_trade.item":"Objet acheté","criterion.villager_trade.villager":"Villageois","criterion.voluntary_exile.location":"Position","damage.blocked":"Bloqué","damage.dealt":"Dégâts infligés","damage.source_entity":"Entité source","damage.taken":"Dégâts reçus","damage.type":"Type de dégâts","damage_source.bypasses_armor":"Traverse l'armure","damage_source.bypasses_invulnerability":"Vide","damage_source.bypasses_magic":"Famine","damage_source.direct_entity":"Entité directe","damage_source.is_explosion":"Explosion","damage_source.is_fire":"Feu","damage_source.is_lightning":"Foudre","damage_source.is_magic":"Magie","damage_source.is_projectile":"Projectile","damage_source.source_entity":"Entité source","decorator.carving_mask.step":"Étape de génération","decorator.config":"Configuration","decorator.count.count":"Taille de la pile","decorator.count_extra.count":"Taille de la pile","decorator.count_extra.extra_chance":"Chance supplémentaire","decorator.count_extra.extra_count":"Taille de la pile supplémentaire","decorator.count_multilayer.count":"Taille de la pile","dimension":"Dimension","dimension.generator":"Générateur","dimension.generator.biome_source":"Source de biomes","dimension.overworld":"Surface","dimension.the_end":"End","dimension.the_nether":"Nether","dimension.type":"Type de dimension","dimension.type.object":"Custom","dimension.type.string":"Préréglage","dimension_type.ambient_light":"Lumière ambiante","dimension_type.ambient_light.help":"Valeur entre 0 et 1","dimension_type.bed_works":"Lit fonctionnel","dimension_type.fixed_time":"Temps constant","dimension_type.fixed_time.help":"Définir cette valeur va fixer le soleil à une position constante","dimension_type.has_ceiling":"Plafond","dimension_type.has_raids":"A des raids","dimension_type.has_skylight":"Lumière du jour","dimension_type.infiniburn":"Infinibrûle","dimension_type.logical_height":"Hauteur logique","dimension_type.name":"Nom","dimension_type.natural":"Naturel","dimension_type.natural.help":"Si vrai, les portails font apparaître des piglins zombifiés. Si faux, les boussoles tournent sans cible.","dimension_type.piglin_safe":"Sûr pour les piglins","dimension_type.respawn_anchor_works":"Ancre de réapparition fonctionnelle","dimension_type.ultrawarm":"Ultra-chaud","dimension_type.ultrawarm.help":"Si vrai, l'eau s'évapore et les éponges se sèchent","distance.absolute":"Absolue","distance.horizontal":"Horizontale","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Affinité aquatique","enchantment.bane_of_arthropods":"Fléau des arthropodes","enchantment.binding_curse":"Malédiction du lien éternel","enchantment.blast_protection":"Protection contre les explosions","enchantment.channeling":"Canalisation","enchantment.depth_strider":"Agilité aquatique","enchantment.efficiency":"Efficacité","enchantment.enchantment":"Enchantement","enchantment.feather_falling":"Chute amortie","enchantment.fire_aspect":"Aura de feu","enchantment.fire_protection":"Protection contre le feu","enchantment.flame":"Flamme","enchantment.fortune":"Fortune","enchantment.frost_walker":"Semelles givrantes","enchantment.impaling":"Empalement","enchantment.infinity":"Infinité","enchantment.knockback":"Recul","enchantment.levels":"Niveaux","enchantment.looting":"Butin","enchantment.loyalty":"Loyauté","enchantment.luck_of_the_sea":"Chance de la mer","enchantment.lure":"Appât","enchantment.mending":"Raccommodage","enchantment.multishot":"Tir multiple","enchantment.piercing":"Perforation","enchantment.power":"Puissance","enchantment.projectile_protection":"Protection contre les projectiles","enchantment.protection":"Protection","enchantment.punch":"Frappe","enchantment.quick_charge":"Charge rapide","enchantment.respiration":"Apnée","enchantment.riptide":"Impulsion","enchantment.sharpness":"Tranchant","enchantment.silk_touch":"Toucher de soie","enchantment.smite":"Châtiment","enchantment.sweeping":"Affilage","enchantment.thorns":"Epines","enchantment.unbreaking":"Solidité","enchantment.vanishing_curse":"Malédiction de la disparition","entity.distance":"Distance","entity.effects":"Effets","entity.equipment":"Equipement","entity.fishing_hook":"Hameçon","entity.fishing_hook.in_open_water":"En eau libre","entity.flags":"Options","entity.isBaby":"Bébé","entity.isOnFire":"En feu","entity.isSneaking":"Accroupi","entity.isSprinting":"En course","entity.isSwimming":"En nage","entity.location":"Position","entity.nbt":"Données NBT","entity.player":"Joueur","entity.targeted_entity":"Entité ciblée","entity.team":"Equipe","entity.type":"Entité","entity.vehicle":"Véhicule","entity_source.killer":"Tueur","entity_source.killer_player":"Joueur tueur","entity_source.this":"Cette entité","entry":"Entrée","error":"Erreur","error.expected_boolean":"Booléen attendu","error.expected_integer":"Nombre entier attendu","error.expected_json":"JSON attendu","error.expected_list":"Tableau attendu","error.expected_number":"Nombre attendu","error.expected_object":"Objet attendu","error.expected_range":"Intervalle attendu","error.expected_string":"Chaîne de caractères attendue","error.expected_uniform_int":"Entier uniforme attendu","error.invalid_binomial":"L'intervalle ne peut pas utiliser le type binomial","error.invalid_empty_list":"Le tableau ne peut pas être vide","error.invalid_empty_string":"La chaîne de caractères ne peut pas être vide","error.invalid_enum_option":"Option \"%0%\" invalide","error.invalid_exact":"L'intervalle ne peut pas utiliser le type constante","error.invalid_number_range.between":"Nombre entre %0% et %1% attendu","error.invalid_pattern":"La chaîne de caractères n'est pas valide : %0%","error.recipe.invalid_key":"Un seul caractère est autorisé comme clé","false":"Faux","feature.object":"Custom","feature.simple_random_selector.features.entry":"Fonctionnalité","feature.string":"Référence","fluid.fluid":"ID du fluide","fluid.state":"Etat du fluide","fluid.tag":"Tag de fluides","function.apply_bonus.enchantment":"Enchantement","function.apply_bonus.formula":"Formule","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial avec taille de pile bonus","function.apply_bonus.formula.ore_drops":"Récompenses de minerais","function.apply_bonus.formula.uniform_bonus_count":"Compte bonus uniforme","function.apply_bonus.parameters":"Paramètres","function.apply_bonus.parameters.bonusMultiplier":"Multiplicateur","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probabilité","function.copy_name.source":"Source","function.copy_nbt.ops":"Opérations NBT","function.copy_nbt.ops.entry":"Opération","function.copy_nbt.source":"Source","function.copy_state.block":"Bloc","function.copy_state.properties":"Propriétés","function.copy_state.properties.entry":"Propriété","function.enchant_randomly.enchantments":"Enchantements facultatifs","function.enchant_randomly.enchantments.entry":"Enchantement","function.enchant_with_levels.levels":"Niveaux","function.enchant_with_levels.treasure":"Trésor","function.exploration_map.decoration":"Décoration","function.exploration_map.destination":"Destination","function.exploration_map.search_radius":"Rayon de recherche (tronçons)","function.exploration_map.skip_existing_chunks":"Omettre les tronçons existants","function.exploration_map.zoom":"Zoomer","function.fill_player_head.entity":"Entité","function.function":"Fonction","function.limit_count.limit":"Limite","function.looting_enchant.count":"Taille de la pile","function.looting_enchant.limit":"Limite","function.set_attributes.modifiers":"Modificateurs","function.set_attributes.modifiers.entry":"Modificateur","function.set_contents.entries":"Contenus","function.set_contents.entries.entry":"Entrée","function.set_count.count":"Compte","function.set_damage.damage":"Dégâts","function.set_data.data":"Données","function.set_loot_table.name":"Nom de la table de butin","function.set_loot_table.seed":"Graine","function.set_lore.entity":"Entité","function.set_lore.lore":"Description","function.set_lore.lore.entry":"Ligne","function.set_lore.replace":"Remplacer","function.set_name.entity":"Entité","function.set_name.name":"Nom","function.set_nbt.tag":"Données NBT","function.set_stew_effect.effects":"Effets","function.set_stew_effect.effects.entry":"Effet","function.set_stew_effect.effects.entry.duration":"Durée","function.set_stew_effect.effects.entry.type":"Effet","functions":"Fonctions","functions.entry":"Fonction","gamemode.adventure":"Aventure","gamemode.creative":"Créatif","gamemode.spectator":"Spectateur","gamemode.survival":"Survie","generator.biome_source.biome":"Biome","generator.biome_source.biomes":"Biomes","generator.biome_source.large_biomes":"Biomes larges","generator.biome_source.legacy_biome_init_layer":"Couche d'initialisation des biomes (legacy)","generator.biome_source.preset":"Préréglage des biomes","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Echelle","generator.biome_source.seed":"Graine des biomes","generator.biome_source.type":"Source de biomes","generator.seed":"Graine de la dimension","generator.settings":"Paramètres du générateur","generator.settings.biome":"Biome","generator.settings.lakes":"Lacs","generator.settings.layers":"Couches","generator.settings.layers.entry":"Couche","generator.settings.layers.entry.block":"ID du bloc","generator.settings.layers.entry.height":"Hauteur","generator.settings.object":"Custom","generator.settings.presets.amplified":"Amplifié","generator.settings.presets.caves":"Grottes","generator.settings.presets.end":"End","generator.settings.presets.floating_islands":"Iles volantes","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Surface","generator.settings.string":"Préréglage","generator.settings.structures":"Structures","generator.settings.structures.stronghold":"Forteresse","generator.settings.structures.stronghold.count":"Compte","generator.settings.structures.stronghold.distance":"Distance","generator.settings.structures.stronghold.spread":"Envergure","generator.settings.structures.structures":"Structures","generator.type":"Type de générateur","generator_biome.biome":"Biome","generator_biome.parameters":"Paramètres","generator_biome.parameters.altitude":"Altitude","generator_biome.parameters.help":"Ces paramètres déterminent le placement du biome. Chaque biome doit avoir une combinaison unique. Des biomes avec des valeurs presque similaires vont se générer côte à côte.","generator_biome.parameters.humidity":"Humidité","generator_biome.parameters.offset":"Décalage","generator_biome.parameters.temperature":"Température","generator_biome.parameters.weirdness":"Etrangeté","generator_structure.salt":"Sel","generator_structure.separation":"Séparation","generator_structure.spacing":"Espacement","hide_source":"Cacher la source","item.count":"Taille de la pile","item.durability":"Durabilité","item.enchantments":"Enchantements","item.enchantments.entry":"Enchantement","item.item":"ID de l'objet","item.nbt":"Données NBT","item.potion":"Potion","item.tag":"Tag d'objets","key.advancements":"Progrès","key.attack":"Attaquer/Détruire","key.back":"Reculer","key.chat":"Ouvrir le tchat","key.command":"Entrer une commande","key.drop":"Jeter l'objet sélectionné","key.forward":"Avancer","key.fullscreen":"Basculer en mode plein écran","key.hotbar.1":"1ère case de la barre d'action","key.hotbar.2":"2ème case de la barre d'action","key.hotbar.3":"3ème case de la barre d'action","key.hotbar.4":"4ème case de la barre d'action","key.hotbar.5":"5ème case de la barre d'action","key.hotbar.6":"6ème case de la barre d'action","key.hotbar.7":"7ème case de la barre d'action","key.hotbar.8":"8ème case de la barre d'action","key.hotbar.9":"9ème case de la barre d'action","key.inventory":"Ouvrir/fermer l'inventaire","key.jump":"Sauter","key.left":"Aller à gauche","key.loadToolbarActivator":"Charger une barre d'action","key.pickItem":"Choisir le bloc","key.playerlist":"Afficher la liste des joueurs","key.right":"Aller à droite","key.saveToolbarActivator":"Sauvegarder la barre d'action","key.screenshot":"Prendre une capture d'écran","key.smoothCamera":"Basculer en mode cinématique","key.sneak":"S'accroupir","key.spectatorOutlines":"Mettre en évidence les joueurs","key.sprint":"Courir","key.swapOffhand":"Échanger l'item avec la main secondaire","key.togglePerspective":"Changer de point de vue","key.use":"Utiliser un objet/Placer un bloc","location.biome":"Biome","location.block":"Bloc","location.dimension":"Dimension","location.feature":"Fonctionnalité","location.fluid":"Fluide","location.light":"Lumière","location.light.light":"Niveau de lumière visible","location.position":"Position","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Fumant","loot_condition_type.alternative":"Alternatif (OU)","loot_condition_type.block_state_property":"Propriétés du bloc","loot_condition_type.damage_source_properties":"Source de dégâts","loot_condition_type.entity_properties":"Propriétés de l'entité","loot_condition_type.entity_scores":"Scores de l'entité","loot_condition_type.inverted":"Inversé (NON)","loot_condition_type.killed_by_player":"Tué par un joueur","loot_condition_type.location_check":"Position","loot_condition_type.match_tool":"Propriétés de l'outil","loot_condition_type.random_chance":"Probabilité aléatoire","loot_condition_type.random_chance_with_looting":"Probabilité aléatoire avec butin","loot_condition_type.reference":"Référence","loot_condition_type.survives_explosion":"Survit l'explosion","loot_condition_type.table_bonus":"Bonus d'enchantement","loot_condition_type.time_check":"Temps","loot_condition_type.weather_check":"Météo","loot_entry.dynamic.name":"Nom","loot_entry.item.name":"Nom","loot_entry.loot_table.name":"Nom de la table de butin","loot_entry.quality":"Qualité","loot_entry.tag.expand":"Etendre","loot_entry.tag.expand.help":"Si faux, l'entrée retournera tous les contenus du tag, sinon l'entrée se comportera comme plusieurs entrées objet","loot_entry.tag.name":"Nom du tag d'objets","loot_entry.type":"Type","loot_entry.weight":"Poids","loot_function_type.apply_bonus":"Appliquer un bonus","loot_function_type.copy_name":"Copier le nom","loot_function_type.copy_nbt":"Copier les données NBT","loot_function_type.copy_state":"Copier les états du bloc","loot_function_type.enchant_randomly":"Enchanter aléatoirement","loot_function_type.enchant_with_levels":"Enchanter avec des niveaux","loot_function_type.exploration_map":"Propriétés de la carte d'exploration","loot_function_type.explosion_decay":"Destruction par explosion","loot_function_type.fill_player_head":"Compléter la tête du joueur","loot_function_type.furnace_smelt":"Fondre dans un four","loot_function_type.limit_count":"Limiter la taille de la pile","loot_function_type.looting_enchant":"Appliquer l'enchantement butin","loot_function_type.set_attributes":"Définir les attributs","loot_function_type.set_contents":"Définir les contenus","loot_function_type.set_count":"Définir la taille de la pile","loot_function_type.set_damage":"Définir les dégâts","loot_function_type.set_data":"Set Data","loot_function_type.set_loot_table":"Définir la table de butin","loot_function_type.set_lore":"Définir la description","loot_function_type.set_name":"Définir nom","loot_function_type.set_nbt":"Définir les données NBT","loot_function_type.set_stew_effect":"Définir l'effet du ragoût","loot_pool.bonus_rolls":"Tirages bonus","loot_pool.entries":"Entrées","loot_pool.entries.entry":"Entrée","loot_pool.rolls":"Tirages","loot_pool.rolls.help":"Le nombre d'entrées tirées au sort","loot_pool_entry_type.alternatives":"Alternatives","loot_pool_entry_type.alternatives.help":"Teste des conditions des entrées enfant et exécute la première qui peut être exécutée","loot_pool_entry_type.dynamic":"Dynamique","loot_pool_entry_type.dynamic.help":"Retourne des récompenses spécifiques au bloc","loot_pool_entry_type.empty":"Vide","loot_pool_entry_type.empty.help":"Ne rajoute rien à la poule","loot_pool_entry_type.group":"Groupe","loot_pool_entry_type.group.help":"Exécute toutes les entrées enfant quand les conditions de cette entrée sont vérifiées","loot_pool_entry_type.item":"Objet","loot_pool_entry_type.item.help":"Ajoute un objet","loot_pool_entry_type.loot_table":"Table de butin","loot_pool_entry_type.loot_table.help":"Ajoute les contenus d'une autre table de butin","loot_pool_entry_type.sequence":"Suite","loot_pool_entry_type.sequence.help":"Exécute les entrées enfant jursqu'à la première dont les conditions ne sont pas vérifiées","loot_pool_entry_type.tag":"Tag d'objets","loot_table.pools":"Poules","loot_table.pools.entry":"Poule","luck_based":"Basé sur la chance","nbt_operation.op":"Opération","nbt_operation.op.append":"Rajouter","nbt_operation.op.merge":"Fusionner","nbt_operation.op.replace":"Remplacer","nbt_operation.source":"Source","nbt_operation.target":"Cible","noise_settings.bedrock_floor_position":"Hauteur du plancher en bedrock","noise_settings.bedrock_floor_position.help":"Position du plancher de bedrock. Des valeurs plus élevées déplacent le plafond vers le haut.","noise_settings.bedrock_roof_position":"Hauteur du plafond en bedrock","noise_settings.bedrock_roof_position.help":"Position du plafond de bedrock par rapport à la hauteur du monde. Des valeurs plus élevées déplacent le plafond vers le bas.","noise_settings.default_block":"Bloc par défaut","noise_settings.default_fluid":"Fluide par défaut","noise_settings.disable_mob_generation":"Désactiver la génération des créatures","noise_settings.disable_mob_generation.help":"Si vrai, les créatures n'apparaîtront pas pendant la génération","noise_settings.noise":"Paramètres du bruit","noise_settings.noise.amplified":"Amplifié","noise_settings.noise.bottom_slide":"Glissement en bas","noise_settings.noise.bottom_slide.offset":"Décalage","noise_settings.noise.bottom_slide.size":"Taille","noise_settings.noise.bottom_slide.target":"Cible","noise_settings.noise.density_factor":"Facteur de densité","noise_settings.noise.density_offset":"Décalage de densité","noise_settings.noise.height":"Hauteur","noise_settings.noise.island_noise_override":"Génération d'une île centrale","noise_settings.noise.island_noise_override.help":"Si vrai, le terrain se génère comme dans l'End avec une île plus large au centre et plus d'îles plus loin","noise_settings.noise.random_density_offset":"Décalage aléatoire de densité","noise_settings.noise.sampling":"Echantillonage","noise_settings.noise.sampling.xz_factor":"Facteur horizontal","noise_settings.noise.sampling.xz_scale":"Echelle horizontale","noise_settings.noise.sampling.y_factor":"Facteur vertical","noise_settings.noise.sampling.y_scale":"Echelle verticale","noise_settings.noise.simplex_surface_noise":"Bruit simplex à la surface","noise_settings.noise.size_horizontal":"Taille horizontale","noise_settings.noise.size_vertical":"Taille verticale","noise_settings.noise.top_slide":"Glissement en haut","noise_settings.noise.top_slide.offset":"Décalage","noise_settings.noise.top_slide.size":"Taille","noise_settings.noise.top_slide.target":"Cible","noise_settings.sea_level":"Niveau de la mer","player.advancements":"Progrès","player.advancements.entry":"Progrès","player.gamemode":"Mode de jeu","player.level":"Niveau d'expérience","player.recipes":"Recettes","player.stats":"Statistiques","player.stats.entry":"Statistique","processors.object":"Custom","processors.string":"Référence","range.binomial":"Binomial","range.max":"Max","range.min":"Min","range.n":"n","range.number":"Exact","range.object":"Intervalle","range.p":"p","range.uniform":"Uniforme","requirements":"Conditions requises","slot.chest":"Torse","slot.feet":"Pieds","slot.head":"Tête","slot.legs":"Jambes","slot.mainhand":"Main principale","slot.offhand":"Seconde main","statistic.stat":"Statistique","statistic.type":"Type","statistic.type.broken":"Cassé","statistic.type.crafted":"Crafté","statistic.type.custom":"Custom","statistic.type.dropped":"Jeté","statistic.type.killed":"Tué","statistic.type.killedByTeam":"Tué par l'équipe","statistic.type.killed_by":"Tué par","statistic.type.mined":"Miné","statistic.type.picked_up":"Ramassé","statistic.type.teamkill":"Tué dans l'équipe","statistic.type.used":"Utilisé","statistic.value":"Valeur","status_effect.ambient":"Ambiant","status_effect.amplifier":"Amplificateur","status_effect.duration":"Durée","status_effect.visible":"Visible","table.type":"Type","table.type.block":"Bloc","table.type.chest":"Coffre","table.type.empty":"Vide","table.type.entity":"Entité","table.type.fishing":"Pêche","table.type.generic":"Générique","tag.replace":"Remplacer","tag.values":"Valeurs","text_component":"Composant de texte","text_component.boolean":"Booléen","text_component.list":"Tableau","text_component.number":"Nombre","text_component.object":"Objet","text_component.string":"Chaîne de caractères","text_component_object.block":"Bloc","text_component_object.bold":"Gras","text_component_object.clickEvent":"Événement de clic","text_component_object.clickEvent.action":"Action","text_component_object.clickEvent.action.change_page":"Changer de page","text_component_object.clickEvent.action.copy_to_clipboard":"Copier dans le presse-papiers","text_component_object.clickEvent.action.open_file":"Ouvrir un fichier","text_component_object.clickEvent.action.open_url":"Ouvrir une URL","text_component_object.clickEvent.action.run_command":"Exécuter une commande","text_component_object.clickEvent.action.suggest_command":"Suggérer une commande","text_component_object.clickEvent.value":"Valeur","text_component_object.color":"Couleur","text_component_object.entity":"Entité","text_component_object.extra":"Extra","text_component_object.font":"Police","text_component_object.hoverEvent":"Événement de survol","text_component_object.hoverEvent.action":"Action","text_component_object.hoverEvent.action.show_entity":"Afficher une entité","text_component_object.hoverEvent.action.show_item":"Afficher un objet","text_component_object.hoverEvent.action.show_text":"Afficher du texte","text_component_object.hoverEvent.contents":"Contenus","text_component_object.hoverEvent.value":"Valeur","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpréter","text_component_object.italic":"Italique","text_component_object.keybind":"Combinaison de touche","text_component_object.nbt":"Données NBT","text_component_object.obfuscated":"Obfusqué","text_component_object.score":"Score","text_component_object.score.name":"Nom","text_component_object.score.objective":"Objectif","text_component_object.score.value":"Valeur","text_component_object.selector":"Sélecteur","text_component_object.storage":"Stockage","text_component_object.strikethrough":"Barré","text_component_object.text":"Texte brut","text_component_object.translate":"Texte traduisible","text_component_object.underlined":"Sous-titré","text_component_object.with":"Traduire avec","true":"Vrai","uniform_int.base":"Base","uniform_int.number":"Exact","uniform_int.object":"Uniforme","uniform_int.spread":"Envergure","unset":"Indéfini","world.bonus_chest":"Générer un coffre bonus","world.generate_features":"Générer des fonctionnalités","world.seed":"Graine","world_settings.dimensions":"Dimensions","worldgen.warning":"Cette fonctionnalité est hautement expérimentale et instable. Elle peut changer dans des versions futures. Attends-toi à des crash quand tu crées des mondes.","worldgen/biome_source.checkerboard":"Échiquier","worldgen/biome_source.fixed":"Fixe","worldgen/biome_source.multi_noise":"Multi bruit","worldgen/biome_source.the_end":"End","worldgen/biome_source.vanilla_layered":"Vanilla par couches","worldgen/chunk_generator.debug":"Monde de débogage","worldgen/chunk_generator.flat":"Monde plat","worldgen/chunk_generator.noise":"Par défaut","advancement":"Progrès","copy":"Copie","dimension-type":"Type de dimension","download":"Télécharger","language":"Langage","loot-table":"Table de butin","predicate":"Prédicat","reset":"Réinitialiser","share":"Partager","title.generator":"Générateur de %0%","title.home":"Générateur de data-pack","preview":"Visualiser","world":"Paramètres du monde","worldgen/biome":"Biome","worldgen/carver":"Sculpteur","worldgen/feature":"Caractéristiques","worldgen/noise-settings":"Paramètres de forme du terrain","worldgen/processor-list":"Liste de processeurs","worldgen/structure-feature":"Fonctionnalités de structures","worldgen/surface-builder":"Générateur de la surface","worldgen/template-pool":"Pool modèle"} \ No newline at end of file diff --git a/locales/it.json b/locales/it.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/locales/it.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/locales/ja.json b/locales/ja.json new file mode 100644 index 00000000..8e049ca9 --- /dev/null +++ b/locales/ja.json @@ -0,0 +1 @@ +{"advancement.criteria":"条件","advancement.display":"表示","advancement.display.announce_to_chat":"達成した際チャットに表示する","advancement.display.background":"背景","advancement.display.description":"説明","advancement.display.frame":"枠","advancement.display.frame.challenge":"挑戦","advancement.display.frame.goal":"目標","advancement.display.frame.task":"進捗","advancement.display.help":"Displayオブジェクトが存在する場合、この進捗が進捗タブに表示されます。","advancement.display.hidden":"達成するまで非表示にする","advancement.display.icon":"アイコン","advancement.display.icon.item":"アイコンのアイテム","advancement.display.icon.nbt":"アイコンのNBT","advancement.display.show_toast":"達成した際トーストを表示する","advancement.display.title":"タイトル","advancement.parent":"親となる進捗","advancement.rewards":"報酬","advancement.rewards.experience":"経験値","advancement.rewards.function":"関数","advancement.rewards.loot":"ルートテーブル","advancement.rewards.recipes":"レシピ","advancement_trigger.bee_nest_destroyed":"ミツバチの巣を破壊したとき","advancement_trigger.bred_animals":"動物を繁殖させたとき","advancement_trigger.brewed_potion":"醸造台からポーションを取り出したとき","advancement_trigger.changed_dimension":"ディメンションを移動したとき","advancement_trigger.channeled_lightning":"エンティティに召雷を当てた時","advancement_trigger.construct_beacon":"ビーコンの構築をしたとき","advancement_trigger.consume_item":"アイテムを消費したとき","advancement_trigger.cured_zombie_villager":"村人ゾンビを治療したとき","advancement_trigger.effects_changed":"効果を付与もしくは除去されたとき","advancement_trigger.enchanted_item":"アイテムをエンチャントしたとき","advancement_trigger.enter_block":"ブロックに立ったとき","advancement_trigger.entity_hurt_player":"エンティティからダメージを受けたとき","advancement_trigger.entity_killed_player":"エンティティに倒されたとき","advancement_trigger.filled_bucket":"バケツを満たしたとき","advancement_trigger.fishing_rod_hooked":"釣り竿でアイテムを取る/エンティティを引っ張ったとき","advancement_trigger.hero_of_the_village":"襲撃から村を守ったとき","advancement_trigger.impossible":"不可能","advancement_trigger.inventory_changed":"インベントリを変更したとき","advancement_trigger.item_durability_changed":"アイテムの耐久値が更新されたとき","advancement_trigger.item_used_on_block":"ブロックに対してアイテムを使用したとき","advancement_trigger.killed_by_crossbow":"クロスボウで倒したとき","advancement_trigger.levitation":"浮遊したとき","advancement_trigger.location":"位置","advancement_trigger.nether_travel":"ネザーに行って帰ってきたとき","advancement_trigger.placed_block":"ブロックを設置したとき","advancement_trigger.player_generates_container_loot":"ルートテーブルが設定されたコンテナの中身を生成したとき","advancement_trigger.player_hurt_entity":"エンティティにダメージを与えたとき","advancement_trigger.player_killed_entity":"エンティティを倒したとき","advancement_trigger.recipe_unlocked":"レシピを解禁したとき","advancement_trigger.safely_harvest_honey":"蜂蜜を安全に収穫したとき","advancement_trigger.shot_crossbow":"クロスボウを撃ったとき","advancement_trigger.slept_in_bed":"ベッドで寝たとき","advancement_trigger.slide_down_block":"ブロックを滑り落ちたとき","advancement_trigger.summoned_entity":"エンティティを召喚したとき","advancement_trigger.tame_animal":"動物を飼いならしたとき","advancement_trigger.target_hit":"的に当てたとき","advancement_trigger.thrown_item_picked_up_by_entity":"投げたアイテムをエンティティが拾ったとき","advancement_trigger.tick":"ティック","advancement_trigger.used_ender_eye":"エンダーアイを使用したとき","advancement_trigger.used_totem":"トーテムを使用したとき","advancement_trigger.villager_trade":"村人と取引したとき","advancement_trigger.voluntary_exile":"襲撃が始まったとき","attribute.generic_armor":"防具","attribute.generic_armor_toughness":"防具強度","attribute.generic_attack_damage":"攻撃力","attribute.generic_attack_knockback":"ノックバック","attribute.generic_attack_speed":"攻撃速度","attribute.generic_flying_speed":"飛行速度","attribute.generic_follow_range":"Mob の追跡範囲","attribute.generic_knockback_resistance":"ノックバック耐性","attribute.generic_luck":"幸運","attribute.generic_max_health":"最大体力","attribute.generic_movement_speed":"移動速度","attribute.horse.jump_strength":"ウマの跳躍力","attribute.zombie.spawn_reinforcements":"ゾンビの増援","attribute_modifier.amount":"補正値","attribute_modifier.attribute":"属性","attribute_modifier.name":"名前","attribute_modifier.operation":"計算方式","attribute_modifier.operation.addition":"加算","attribute_modifier.operation.multiply_base":"基礎乗算","attribute_modifier.operation.multiply_total":"乗算","attribute_modifier.slot":"スロット","attribute_modifier.slot.list":"複数","attribute_modifier.slot.string":"単体","badge.experimental":"実験段階","badge.unstable":"不安定","biome.carvers":"地形彫刻","biome.carvers.air":"空気","biome.carvers.liquid":"液体","biome.category":"カテゴリ","biome.creature_spawn_probability":"Mobの出現確率","biome.depth":"深度","biome.depth.help":"地形の高さを調整します。正の値は陸地とみなされ、負の値は海とみなされます。","biome.downfall":"Downfall (草/葉の色,火の延焼の速度等に影響を与えます)","biome.effects":"環境効果","biome.effects.additions_sound":"追加の音","biome.effects.additions_sound.sound":"音","biome.effects.ambient_sound":"環境音","biome.effects.fog_color":"霧の色","biome.effects.foliage_color":"葉の色","biome.effects.grass_color":"草の色","biome.effects.grass_color_modifier":"草の色の補正","biome.effects.grass_color_modifier.dark_forest":"暗い森","biome.effects.grass_color_modifier.none":"無し","biome.effects.grass_color_modifier.swamp":"湿地帯","biome.effects.mood_sound":"雰囲気の音","biome.effects.mood_sound.offset":"オフセット","biome.effects.mood_sound.sound":"音","biome.effects.mood_sound.tick_delay":"ティック遅延","biome.effects.music":"音楽","biome.effects.music.max_delay":"最大遅延","biome.effects.music.min_delay":"最小遅延","biome.effects.music.replace_current_music":"現在の音楽を上書きする","biome.effects.music.sound":"音","biome.effects.particle":"パーティクル","biome.effects.particle.options":"オプション","biome.effects.particle.options.type":"パーティクルのタイプ","biome.effects.particle.probability":"確率","biome.effects.sky_color":"空の色","biome.effects.water_color":"水の色","biome.effects.water_fog_color":"水中の霧の色","biome.features":"生成物","biome.features.entry":"ステップ","biome.features.entry.entry":"特徴","biome.player_spawn_friendly":"バイオームにスポーン出来るか否か","biome.player_spawn_friendly.help":"trueの場合、このバイオームではワールドスポーンが優先されます","biome.precipitation":"雨の種類","biome.precipitation.none":"無し","biome.precipitation.rain":"雨","biome.precipitation.snow":"雪","biome.scale":"スケール","biome.scale.help":"垂直方向に地形を伸ばします。値が低いほど平坦な地形になります。","biome.spawners":"スポナー","biome.spawners.entry":"スポーン","biome.spawners.entry.maxCount":"最大数","biome.spawners.entry.minCount":"最小数","biome.spawners.entry.type":"種類","biome.spawners.entry.weight":"抽選確率","biome.starts":"ストラクチャー","biome.starts.entry":"ストラクチャー","biome.starts.help":"構成された生成物のストラクチャーのリスト","biome.surface_builder":"地表生成","biome.temperature":"気温","biome.temperature_modifier":"気温補正","biome.temperature_modifier.frozen":"凍結","biome.temperature_modifier.none":"無し","block.block":"ブロックID","block.nbt":"NBT","block.state":"Block State","block.tag":"ブロックタグ","block_placer.column_placer.extra_size":"エクストラサイズ","block_placer.column_placer.min_size":"最小サイズ","block_placer.type":"種類","block_state.Name":"名前","block_state.Properties":"プロパティ","block_state_provider.rotated_block_provider.state":"状態","block_state_provider.simple_state_provider.state":"状態","block_state_provider.type":"種類","block_state_provider.weighted_state_provider.entries":"項目","block_state_provider.weighted_state_provider.entries.entry.data":"状態","block_state_provider.weighted_state_provider.entries.entry.weight":"抽選確率","carver.config":"設定","carver.config.probability":"確率","carver.type":"種類","children":"子","children.entry":"項目","condition.alternative.terms":"条件","condition.block_state_property.block":"ブロック","condition.block_state_property.properties":"Block State","condition.condition":"条件","condition.damage_source":"ダメージの要因","condition.entity_properties.entity":"エンティティ","condition.entity_scores.entity":"エンティティ","condition.entity_scores.scores":"スコア","condition.entry":"条件","condition.inverted.term":"条件","condition.item":"アイテム","condition.killed_by_player.inverse":"反転","condition.list":"複数","condition.location":"位置","condition.location_check.offsetX":"X 補正","condition.location_check.offsetY":"Y 補正","condition.location_check.offsetZ":"Z 補正","condition.object":"単一","condition.random_chance.chance":"確率","condition.random_chance_with_looting.chance":"確率","condition.random_chance_with_looting.looting_multiplier":"ドロップ増加倍率","condition.reference.name":"条件名","condition.table_bonus.chances":"確率","condition.table_bonus.chances.entry":"確率","condition.table_bonus.enchantment":"エンチャント","condition.time_check.period":"期間","condition.time_check.period.help":"存在する場合、時間はこの値で剰余算されます。 たとえば、24000に設定されている場合、値は日数の期間で変化します。","condition.time_check.value":"値","condition.weather_check.raining":"降雨","condition.weather_check.thundering":"雷雨","conditions":"条件","conditions.entry":"条件","conditions.list":"条件","conditions.object":"旧版","copy_source.block_entity":"ブロックエンティティ","copy_source.direct_killer":"直接的な要因のエンティティ","copy_source.killer":"殺したエンティティ","copy_source.killer_player":"殺したプレイヤー","copy_source.this":"自身","criterion.bee_nest_destroyed.block":"ブロック","criterion.bee_nest_destroyed.num_bees_inside":"ミツバチの巣に居たミツバチの数","criterion.bred_animals.child":"子","criterion.bred_animals.parent":"親","criterion.bred_animals.partner":"パートナー","criterion.brewed_potion.potion":"ポーション","criterion.changed_dimension.from":"移動元","criterion.changed_dimension.to":"移動先","criterion.channeled_lightning.victims":"犠牲者","criterion.channeled_lightning.victims.entry":"エンティティ","criterion.conditions":"条件","criterion.construct_beacon.beacon_level":"ビーコンのレベル","criterion.consume_item.item":"アイテム","criterion.cured_zombie_villager.villager":"村人","criterion.cured_zombie_villager.zombie":"ゾンビ","criterion.effects_changed.effects":"効果","criterion.enchanted_item.item":"アイテム","criterion.enchanted_item.levels":"経験値レベル","criterion.enter_block.block":"ブロック","criterion.enter_block.state":"ブロックの状態","criterion.entity_hurt_player.damage":"ダメージ","criterion.entity_killed_player.entity":"死亡する要因となったエンティティ","criterion.entity_killed_player.killing_blow":"最後の一撃","criterion.filled_bucket.item":"アイテム","criterion.fishing_rod_hooked.entity":"引っ張られたエンティティ","criterion.fishing_rod_hooked.item":"アイテム","criterion.hero_of_the_village.location":"位置","criterion.inventory_changed.items":"アイテム","criterion.inventory_changed.items.entry":"アイテム","criterion.inventory_changed.slots":"スロット","criterion.inventory_changed.slots.empty":"空のスロットの数","criterion.inventory_changed.slots.full":"完全にスタックされたスロットの数","criterion.inventory_changed.slots.occupied":"占有されているスロットの数","criterion.item_durability_changed.delta":"差","criterion.item_durability_changed.durability":"耐久値","criterion.item_durability_changed.item":"アイテム","criterion.item_used_on_block.item":"アイテム","criterion.item_used_on_block.location":"位置","criterion.killed_by_crossbow.unique_entity_types":"エンティティ種の数","criterion.killed_by_crossbow.victims":"犠牲者","criterion.killed_by_crossbow.victims.entry":"エンティティ","criterion.levitation.distance":"距離","criterion.levitation.duration":"持続時間","criterion.location.location":"位置","criterion.nether_travel.distance":"距離","criterion.nether_travel.entered":"入った位置","criterion.nether_travel.exited":"出た位置","criterion.placed_block.block":"ブロック","criterion.placed_block.item":"アイテム","criterion.placed_block.location":"位置","criterion.placed_block.state":"ブロックの状態","criterion.player":"プレイヤー","criterion.player_generates_container_loot.loot_table":"ルートテーブル","criterion.player_hurt_entity.damage":"ダメージ","criterion.player_hurt_entity.entity":"ダメージを受けたエンティティ","criterion.player_killed_entity.entity":"ダメージを受けたエンティティ","criterion.player_killed_entity.killing_blow":"最後の一撃","criterion.recipe_unlocked.recipe":"レシピ","criterion.rod":"釣り竿","criterion.shot_crossbow.item":"アイテム","criterion.slept_in_bed.location":"位置","criterion.slide_down_block.block":"ブロック","criterion.summoned_entity.entity":"エンティティ","criterion.tame_animal.entity":"動物","criterion.target_hit.projectile":"飛び道具","criterion.target_hit.shooter":"射手","criterion.target_hit.signal_strength":"信号の強度","criterion.thrown_item_picked_up_by_entity.entity":"エンティティ","criterion.thrown_item_picked_up_by_entity.item":"アイテム","criterion.trigger":"トリガー","criterion.used_ender_eye.distance":"距離","criterion.used_totem.item":"トーテムアイテム","criterion.villager_trade.item":"購入したアイテム","criterion.villager_trade.villager":"村人","criterion.voluntary_exile.location":"位置","damage.blocked":"防御","damage.dealt":"与ダメージ","damage.source_entity":"要因のエンティティ","damage.taken":"非ダメージ","damage.type":"ダメージの種類","damage_source.bypasses_armor":"防御貫通","damage_source.bypasses_invulnerability":"奈落","damage_source.bypasses_magic":"空腹","damage_source.direct_entity":"直接的な要因のエンティティ","damage_source.is_explosion":"爆発","damage_source.is_fire":"炎上","damage_source.is_lightning":"雷","damage_source.is_magic":"魔法","damage_source.is_projectile":"飛び道具","damage_source.source_entity":"要因のエンティティ","decorator.carving_mask.step":"生成ステップ","decorator.config":"設定","decorator.count.count":"数量","decorator.count_extra.count":"数量","decorator.count_extra.extra_chance":"数量が追加される確率","decorator.count_extra.extra_count":"追加数量","decorator.count_multilayer.count":"数量","decorator.count_noise.above_noise":"閾値以上のノイズ","decorator.count_noise.below_noise":"閾値未満のノイズ","decorator.count_noise.noise_level":"ノイズレベル","decorator.count_noise_biased.noise_factor":"ノイズ係数","decorator.count_noise_biased.noise_offset":"ノイズオフセット","decorator.count_noise_biased.noise_to_count_ratio":"ノイズ対数量比","decorator.decorated.inner":"内側","decorator.decorated.outer":"外側","decorator.depth_average.baseline":"基準線","decorator.depth_average.spread":"拡散","decorator.glowstone.count":"個数","decorator.type":"種類","dimension":"ディメンション (Dimension)","dimension.generator":"ジェネレーター","dimension.generator.biome_source":"バイオームの生成法則","dimension.overworld":"オーバーワールド","dimension.the_end":"ジ・エンド","dimension.the_nether":"ネザー","dimension.type":"ディメンションタイプ","dimension.type.object":"カスタム","dimension.type.string":"プリセット","dimension_type.ambient_light":"環境光レベル","dimension_type.ambient_light.help":"0 ~ 1の範囲の値","dimension_type.bed_works":"ベッドが使用機能か否か","dimension_type.coordinate_scale":"座標のスケール","dimension_type.effects":"環境効果","dimension_type.effects.overworld":"オーバーワールド","dimension_type.effects.the_end":"ジ・エンド","dimension_type.effects.the_nether":"ネザー","dimension_type.fixed_time":"時間の固定","dimension_type.fixed_time.help":"この値を設定すると、太陽の位置が固定されます。","dimension_type.has_ceiling":"天井","dimension_type.has_raids":"襲撃","dimension_type.has_skylight":"天井光","dimension_type.infiniburn":"無限に燃焼するブロック","dimension_type.logical_height":"Logical Height","dimension_type.name":"名前","dimension_type.natural":"自然","dimension_type.natural.help":"trueの場合、ポータルはゾンビピグリンを生成します。 falseの場合、コンパスと時計がランダムに回転します。","dimension_type.piglin_safe":"ピグリンがゾンビ化するか否か","dimension_type.respawn_anchor_works":"リスポーンアンカーが使用可能か否か","dimension_type.ultrawarm":"灼熱","dimension_type.ultrawarm.help":"trueの場合、水が蒸発しスポンジが乾燥します。","distance.absolute":"絶対距離","distance.horizontal":"水平距離","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"水中採掘","enchantment.bane_of_arthropods":"虫特効","enchantment.binding_curse":"束縛の呪い","enchantment.blast_protection":"爆発耐性","enchantment.channeling":"召雷","enchantment.depth_strider":"水中歩行","enchantment.efficiency":"効率強化","enchantment.enchantment":"エンチャント","enchantment.feather_falling":"落下耐性","enchantment.fire_aspect":"火属性","enchantment.fire_protection":"火炎耐性","enchantment.flame":"フレイム","enchantment.fortune":"幸運","enchantment.frost_walker":"氷渡り","enchantment.impaling":"水生特効","enchantment.infinity":"無限","enchantment.knockback":"ノックバック","enchantment.levels":"レベル","enchantment.looting":"ドロップ増加","enchantment.loyalty":"忠誠","enchantment.luck_of_the_sea":"宝釣り","enchantment.lure":"入れ食い","enchantment.mending":"修繕","enchantment.multishot":"拡散","enchantment.piercing":"貫通","enchantment.power":"射撃ダメージ増加","enchantment.projectile_protection":"飛び道具耐性","enchantment.protection":"ダメージ軽減","enchantment.punch":"パンチ","enchantment.quick_charge":"高速装填","enchantment.respiration":"水中呼吸","enchantment.riptide":"激流","enchantment.sharpness":"ダメージ増加","enchantment.silk_touch":"シルクタッチ","enchantment.smite":"アンデッド特効","enchantment.sweeping":"範囲ダメージ増加","enchantment.thorns":"棘の鎧","enchantment.unbreaking":"耐久力","enchantment.vanishing_curse":"消滅の呪い","entity.distance":"距離","entity.effects":"効果","entity.equipment":"装備","entity.fishing_hook":"浮き","entity.fishing_hook.in_open_water":"開けた水か否か","entity.flags":"フラグ","entity.isBaby":"子供","entity.isOnFire":"炎上","entity.isSneaking":"スニーク","entity.isSprinting":"ダッシュ","entity.isSwimming":"水泳","entity.location":"位置","entity.nbt":"NBT","entity.player":"プレイヤー","entity.targeted_entity":"狙われているエンティティ","entity.team":"チーム","entity.type":"エンティティ","entity.vehicle":"乗り物","entity_source.direct_killer":"直接的な要因のエンティティ","entity_source.killer":"殺したエンティティ","entity_source.killer_player":"殺したプレイヤー","entity_source.this":"自身","entry":"項目","error":"エラー","error.expected_boolean":"boolean型が必要です","error.expected_integer":"int型が必要です","error.expected_json":"JSONが必要です","error.expected_list":"配列が必要です","error.expected_number":"数値が必要です","error.expected_object":"オブジェクトが必要です","error.expected_range":"範囲が必要です","error.expected_string":"文字列が必要です","error.expected_uniform_int":"均一な整数が必要です","error.invalid_binomial":"範囲は二項分布型を使用できません","error.invalid_empty_list":"配列は空にできません","error.invalid_empty_string":"文字列を空には出来ません","error.invalid_enum_option":"\"%0%\"は無効なオプションです","error.invalid_exact":"範囲は定数型を使用できません","error.invalid_number_range.between":"%0% ~ %1%の範囲の数値が必要です","error.invalid_pattern":"%0%は有効な文字列ではありません","error.recipe.invalid_key":"キーとして使用できるのは1文字のみです","false":"False","feature.bamboo.probability":"確率","feature.basalt_columns.height":"高度","feature.basalt_columns.reach":"リーチ","feature.block_pile.state_provider":"状態の提供元","feature.config":"設定","feature.decorated.decorator":"装飾処理","feature.decorated.feature":"生成物","feature.delta_feature.contents":"内容","feature.delta_feature.rim":"周縁","feature.delta_feature.rim_size":"周縁のサイズ","feature.delta_feature.size":"サイズ","feature.disk.half_height":"半分の高さ","feature.disk.radius":"半径","feature.disk.state":"状態","feature.disk.targets":"目標","feature.disk.targets.entry":"状態","feature.emerald_ore.state":"状態","feature.emerald_ore.target":"目標","feature.end_gateway.exact":"正確に移動するか否か","feature.end_gateway.exit":"移動先の座標","feature.end_spike.crystal_beam_target":"ビームの目標座標","feature.end_spike.crystal_invulnerable":"クリスタルが無敵か否か","feature.end_spike.spikes":"黒曜石の柱","feature.end_spike.spikes.entry":"黒曜石の柱","feature.end_spike.spikes.entry.centerX":"中心のX座標","feature.end_spike.spikes.entry.centerZ":"中心のZ座標","feature.end_spike.spikes.entry.guarded":"鉄格子で囲われているか否か","feature.end_spike.spikes.entry.height":"高度","feature.end_spike.spikes.entry.radius":"半径","feature.fill_layer.height":"高度","feature.fill_layer.state":"状態","feature.flower.blacklist":"ブラックリスト","feature.flower.block_placer":"ブロック設置処理","feature.flower.can_replace":"上書き可能か否か","feature.flower.need_water":"水が必要か否か","feature.flower.project":"投影されるか否か","feature.flower.state_provider":"状態の提供元","feature.flower.tries":"試行回数","feature.flower.whitelist":"ホワイトリスト","feature.flower.xspread":"X軸の拡散量","feature.flower.yspread":"Y軸の拡散量","feature.flower.zspread":"Z軸の拡散量","feature.forest_rock.state":"状態","feature.huge_brown_mushroom.cap_provider":"笠の提供元","feature.huge_brown_mushroom.foliage_radius":"笠の大きさ","feature.huge_brown_mushroom.stem_provider":"柄の提供元","feature.huge_fungus.decor_state":"装飾","feature.huge_fungus.hat_state":"笠","feature.huge_fungus.planted":"植えられたか否か","feature.huge_fungus.stem_state":"柄","feature.huge_fungus.valid_base_block":"有効な地面のブロック","feature.huge_red_mushroom.cap_provider":"笠の提供元","feature.huge_red_mushroom.foliage_radius":"笠の大きさ","feature.huge_red_mushroom.stem_provider":"柄の提供元","feature.ice_patch.half_height":"半分の高さ","feature.ice_patch.radius":"半径","feature.ice_patch.state":"状態","feature.ice_patch.targets":"目標","feature.ice_patch.targets.entry":"状態","feature.iceberg.state":"状態","feature.lake.state":"状態","feature.nether_forest_vegetation.state_provider":"状態の提供元","feature.netherrack_replace_blobs.radius":"半径","feature.netherrack_replace_blobs.state":"状態","feature.netherrack_replace_blobs.target":"目標","feature.no_surface_ore.size":"サイズ","feature.no_surface_ore.state":"状態","feature.no_surface_ore.target":"目標","feature.object":"カスタム","feature.ore.size":"サイズ","feature.random_boolean_selector.feature_false":"生成物1","feature.random_boolean_selector.feature_true":"生成物2","feature.random_patch.blacklist":"ブラックリスト","feature.random_patch.block_placer":"ブロック設置処理","feature.random_patch.can_replace":"上書き可能か否か","feature.random_patch.need_water":"水が必要か否か","feature.random_patch.project":"投影されるか否か","feature.random_patch.state_provider":"状態の提供元","feature.random_patch.tries":"試行回数","feature.random_patch.whitelist":"ホワイトリスト","feature.random_patch.xspread":"X軸の拡散量","feature.random_patch.yspread":"Y軸の拡散量","feature.random_patch.zspread":"Z軸の拡散量","feature.random_selector.default":"デフォルト","feature.random_selector.features":"生成物","feature.random_selector.features.entry":"生成物","feature.random_selector.features.entry.chance":"確率","feature.random_selector.features.entry.feature":"生成物","feature.sea_pickle.count":"数量","feature.seegrass.probability":"確率","feature.simple_block.place_in":"上書きされるブロック","feature.simple_block.place_in.entry":"状態","feature.simple_block.place_on":"下のブロック","feature.simple_block.place_on.entry":"状態","feature.simple_block.place_under":"上のブロック","feature.simple_block.place_under.entry":"状態","feature.simple_block.to_place":"設置するブロック","feature.simple_random_selector.features":"生成物","feature.simple_random_selector.features.entry":"生成物","feature.spring_feature.hole_count":"くぼみの数","feature.spring_feature.required_block_below":"下に必要なブロック","feature.spring_feature.rock_count":"岩の数","feature.spring_feature.state":"状態","feature.spring_feature.valid_blocks":"有効なブロック","feature.string":"生成物の参照","feature.tree.decorators":"デコレータ","feature.tree.decorators.entry":"ツリーデコレータ","feature.tree.foliage_placer":"葉の配置","feature.tree.heightmap":"高度マップ","feature.tree.ignore_vines":"ツタを無視するか否か","feature.tree.leaves_provider":"葉の提供元","feature.tree.max_water_depth":"樹が生成される最大水深","feature.tree.minimum_size":"最小サイズ","feature.tree.minimum_size.limit":"制限","feature.tree.minimum_size.lower_size":"下限サイズ","feature.tree.minimum_size.middle_size":"中部のサイズ","feature.tree.minimum_size.type":"最小サイズ","feature.tree.minimum_size.upper_limit":"上限","feature.tree.minimum_size.upper_size":"上限サイズ","feature.tree.trunk_placer":"木の幹の設置処理","feature.tree.trunk_provider":"木の幹の提供元","feature.type":"種類","fluid.fluid":"液体ID","fluid.state":"液体の状態","fluid.tag":"液体タグ","fluid_state.Name":"名前","fluid_state.Properties":"プロパティ","foliage_placer.crown_height":"樹木の天蓋の高さ","foliage_placer.height":"高度","foliage_placer.offset":"オフセット","foliage_placer.radius":"半径","foliage_placer.trunk_height":"木の幹の高さ","foliage_placer.type":"種類","function.apply_bonus.enchantment":"エンチャント","function.apply_bonus.formula":"計算式","function.apply_bonus.formula.binomial_with_bonus_count":"二項分布","function.apply_bonus.formula.ore_drops":"鉱石ドロップ","function.apply_bonus.formula.uniform_bonus_count":"均一分布","function.apply_bonus.parameters":"パラメーター","function.apply_bonus.parameters.bonusMultiplier":"倍率","function.apply_bonus.parameters.extra":"追加の値","function.apply_bonus.parameters.probability":"確率","function.copy_name.source":"ソース","function.copy_nbt.ops":"NBT操作","function.copy_nbt.ops.entry":"操作","function.copy_nbt.source":"ソース","function.copy_state.block":"ブロック","function.copy_state.properties":"プロパティ","function.copy_state.properties.entry":"プロパティ","function.enchant_randomly.enchantments":"任意のエンチャント","function.enchant_randomly.enchantments.entry":"エンチャント","function.enchant_with_levels.levels":"レベル","function.enchant_with_levels.treasure":"トレジャーエンチャント","function.exploration_map.decoration":"目的地のアイコン","function.exploration_map.destination":"目的地","function.exploration_map.search_radius":"目的地を検索する半径 (チャンク)","function.exploration_map.skip_existing_chunks":"生成済みチャンクを検索しない","function.exploration_map.zoom":"ズーム","function.fill_player_head.entity":"エンティティ","function.function":"関数","function.limit_count.limit":"制限","function.looting_enchant.count":"個数","function.looting_enchant.limit":"上限","function.set_attributes.modifiers":"補正","function.set_attributes.modifiers.entry":"補正","function.set_contents.entries":"内容","function.set_contents.entries.entry":"項目","function.set_count.count":"個数","function.set_damage.damage":"耐久","function.set_data.data":"データ","function.set_loot_table.name":"ルートテーブル名","function.set_loot_table.seed":"シード値","function.set_lore.entity":"エンティティ","function.set_lore.lore":"説明文","function.set_lore.lore.entry":"行","function.set_lore.replace":"上書き","function.set_name.entity":"エンティティ","function.set_name.name":"名前","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"効果","function.set_stew_effect.effects.entry":"効果","function.set_stew_effect.effects.entry.duration":"持続時間","function.set_stew_effect.effects.entry.type":"効果","functions":"関数","functions.entry":"関数","gamemode.adventure":"アドベンチャー","gamemode.creative":"クリエイティブ","gamemode.spectator":"スペクテイター","gamemode.survival":"サバイバル","generation_step.air":"空気","generation_step.liquid":"液体","generator.biome_source.altitude_noise":"高度のノイズ","generator.biome_source.biome":"バイオーム","generator.biome_source.biomes":"バイオーム","generator.biome_source.humidity_noise":"湿度のノイズ","generator.biome_source.large_biomes":"大きなバイオーム","generator.biome_source.legacy_biome_init_layer":"旧バイオーム初期化レイヤー","generator.biome_source.preset":"バイオームプリセット","generator.biome_source.preset.nether":"ネザー","generator.biome_source.scale":"スケール","generator.biome_source.seed":"バイオームのシード値","generator.biome_source.temperature_noise":"気温のノイズ","generator.biome_source.type":"バイオームの生成法則","generator.biome_source.weirdness_noise":"奇妙さのノイズ","generator.seed":"ディメンションのシード値","generator.settings":"ジェネレーターの設定","generator.settings.biome":"バイオーム","generator.settings.lakes":"湖","generator.settings.layers":"レイヤー","generator.settings.layers.entry":"レイヤー","generator.settings.layers.entry.block":"ブロックID","generator.settings.layers.entry.height":"高度","generator.settings.object":"カスタム","generator.settings.presets.amplified":"巨大化","generator.settings.presets.caves":"洞窟","generator.settings.presets.end":"エンド","generator.settings.presets.floating_islands":"浮島","generator.settings.presets.nether":"ネザー","generator.settings.presets.overworld":"オーバーワールド","generator.settings.string":"プリセット","generator.settings.structures":"ストラクチャー","generator.settings.structures.stronghold":"要塞","generator.settings.structures.stronghold.count":"数量","generator.settings.structures.stronghold.distance":"距離","generator.settings.structures.stronghold.spread":"拡散","generator.settings.structures.structures":"ストラクチャー","generator.type":"ジェネレーターのタイプ","generator_biome.biome":"バイオーム","generator_biome.parameters":"パラメーター","generator_biome.parameters.altitude":"海抜","generator_biome.parameters.help":"これらのパラメータによって、バイオームの配置が決まります。すべてのバイオームは、これらの組み合わせが一意でなければなりません。似たような値を持つバイオームは隣り合って生成されます。","generator_biome.parameters.humidity":"湿度","generator_biome.parameters.offset":"オフセット","generator_biome.parameters.temperature":"気温","generator_biome.parameters.weirdness":"奇妙さ","generator_biome_noise.amplitudes":"広大さ","generator_biome_noise.amplitudes.entry":"オクターブ %0%","generator_structure.separation":"間隔","hide_source":"ソースを隠す","item.count":"個数","item.durability":"耐久値","item.enchantments":"エンチャント","item.enchantments.entry":"エンチャント","item.item":"アイテムID","item.nbt":"NBT","item.potion":"ポーション","item.tag":"アイテムタグ","key.advancements":"進捗","key.attack":"攻撃する/壊す","key.back":"後退","key.chat":"チャットを開く","key.command":"コマンドラインを開く","key.drop":"アイテムを捨てる","key.forward":"前進","key.fullscreen":"フルスクリーンの切り替え","key.hotbar.1":"ホットバースロット 1","key.hotbar.2":"ホットバースロット 2","key.hotbar.3":"ホットバースロット 3","key.hotbar.4":"ホットバースロット 4","key.hotbar.5":"ホットバースロット 5","key.hotbar.6":"ホットバースロット 6","key.hotbar.7":"ホットバースロット 7","key.hotbar.8":"ホットバースロット 8","key.hotbar.9":"ホットバースロット 9","key.inventory":"インベントリの開閉","key.jump":"ジャンプ","key.left":"左","key.loadToolbarActivator":"ツールバーの読み込み","key.pickItem":"ブロック選択","key.playerlist":"プレイヤーリストの表示","key.right":"右","key.saveToolbarActivator":"ツールバーの保存","key.screenshot":"スクリーンショットの撮影","key.smoothCamera":"カメラ動作の切り替え","key.sneak":"スニーク","key.spectatorOutlines":"プレイヤーの強調表示(スペクテイター)","key.sprint":"ダッシュ","key.swapOffhand":"持っているアイテムの切り替え","key.togglePerspective":"視点の切り替え","key.use":"アイテムの使用/ブロックの設置","location.biome":"バイオーム","location.block":"ブロック","location.dimension":"ディメンション","location.feature":"生成物","location.fluid":"液体","location.light":"光源","location.position":"位置","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","loot_condition_type.block_state_property":"ブロックのプロパティ","loot_condition_type.damage_source_properties":"ダメージの要因","loot_condition_type.entity_properties":"エンティティのプロパティ","loot_condition_type.entity_scores":"エンティティのスコア","loot_condition_type.inverted":"反転","loot_condition_type.location_check":"位置","loot_condition_type.match_tool":"ツールのプロパティ","loot_condition_type.random_chance":"ランダムな確率","loot_condition_type.random_chance_with_looting":"ランダムな確率 (ドロップ増加の影響を受ける)","loot_condition_type.reference":"条件の参照","loot_condition_type.time_check":"時間","loot_condition_type.weather_check":"天候","loot_entry.dynamic.name":"名前","loot_entry.item.name":"名前","loot_entry.loot_table.name":"ルートテーブル名","loot_entry.quality":"品質","loot_entry.tag.expand":"広げる","loot_entry.tag.name":"アイテムタグの名前","loot_entry.type":"種類","loot_entry.weight":"抽選確率","loot_function_type.copy_name":"名前のコピー","loot_function_type.copy_nbt":"NBTのコピー","loot_function_type.copy_state":"Block Stateのコピー","loot_function_type.enchant_randomly":"ランダムなエンチャント","loot_function_type.enchant_with_levels":"レベルからのエンチャント","loot_function_type.exploration_map":"探検家の地図のプロパティ","loot_function_type.furnace_smelt":"製錬","loot_function_type.limit_count":"個数制限","loot_function_type.looting_enchant":"ドロップ増加による個数補正","loot_function_type.set_attributes":"属性の設定","loot_function_type.set_contents":"内容の設定","loot_function_type.set_count":"個数の設定","loot_function_type.set_damage":"耐久値の設定","loot_function_type.set_data":"データの設定","loot_function_type.set_loot_table":"ルートテーブルの設定","loot_function_type.set_lore":"説明文の設定","loot_function_type.set_name":"名前の設定","loot_function_type.set_nbt":"NBTの設定","loot_function_type.set_stew_effect":"シチューの効果の設定","loot_pool.bonus_rolls":"ボーナス抽選数","loot_pool.entries":"エントリー","loot_pool.entries.entry":"項目","loot_pool.rolls":"抽選数","loot_pool_entry_type.dynamic":"動的","loot_pool_entry_type.empty":"空","loot_pool_entry_type.group":"グループ","loot_pool_entry_type.item":"アイテム","loot_pool_entry_type.loot_table":"ルートテーブル","loot_pool_entry_type.sequence":"順序","loot_pool_entry_type.tag":"アイテムタグ","nbt_operation.op":"操作方法","nbt_operation.op.append":"追加","nbt_operation.op.merge":"併合","nbt_operation.op.replace":"上書き","nbt_operation.source":"ソース","nbt_operation.target":"目標","noise_settings.name":"名前","player.advancements":"進捗","player.advancements.entry":"進捗","player.gamemode":"ゲームモード","player.level":"経験値レベル","player.recipes":"レシピ","player.stats":"統計値","player.stats.entry":"統計値","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.predicate_type":"種類","processor.block_ignore.blocks.entry":"状態","processor.processor_type":"種類","requirements":"必要条件","rule_test.block":"ブロック","rule_test.block_state":"状態","rule_test.predicate_type":"種類","rule_test.probability":"確率","slot.chest":"胴体","slot.feet":"足","slot.head":"頭","slot.legs":"脚","slot.mainhand":"利き手","slot.offhand":"オフハンド","statistic.stat":"統計値","statistic.type":"種類","statistic.type.broken":"壊した回数","statistic.type.crafted":"作った回数","statistic.type.custom":"カスタム","statistic.type.dropped":"捨てた回数","status_effect.ambient":"ビーコン効果","status_effect.amplifier":"効果レベル","status_effect.duration":"持続時間","status_effect.visible":"パーティクル表示","structure_feature.biome_temp":"バイオームの気温","structure_feature.probability":"確率","structure_feature.type":"種類","surface_builder.type":"種類","table.type":"種類","table.type.block":"ブロック","table.type.chest":"チェスト","table.type.empty":"空","table.type.entity":"エンティティ","table.type.fishing":"釣り","table.type.generic":"汎用","tag.replace":"上書き","template_element.element_type":"種類","template_pool.name":"名前","text_component_object.block":"ブロック","text_component_object.bold":"太字","text_component_object.clickEvent":"クリックイベント","text_component_object.clickEvent.action.change_page":"ページへの移動","text_component_object.clickEvent.action.copy_to_clipboard":"クリップボードへのコピー","text_component_object.clickEvent.action.open_file":"ファイルを開く","text_component_object.clickEvent.action.open_url":"ウェブサイトを開く","text_component_object.clickEvent.action.run_command":"コマンドを実行","text_component_object.clickEvent.action.suggest_command":"コマンドを提案","text_component_object.color":"カラー","text_component_object.entity":"要素","text_component_object.score.name":"名前","tree_decorator.beehive.probability":"確率","tree_decorator.cocoa.probability":"確率","tree_decorator.type":"種類","true":"true","trunk_placer.type":"種類","worldgen/chunk_generator.noise":"デフォルト","advancement":"進捗 (Advancement)","copy":"コピー","dimension-type":"ディメンションタイプ (Dimension Type)","download":"ダウンロード","language":"言語設定","loot-table":"ルートテーブル (Loot Table)","predicate":"条件 (Predicate)","reset":"リセット","share":"共有","title.generator":"%0%ジェネレーター","title.home":"データパックジェネレーター","preview":"可視化","world":"ワールド設定 (World Settings)","worldgen/biome":"バイオーム (Biome)","worldgen/carver":"地形彫刻 (Carver)","worldgen/feature":"生成物 (Feature)","worldgen/noise-settings":"ノイズ設定 (Noise Settings)","worldgen/processor-list":"プロセッサリスト (Processor List)","worldgen/structure-feature":"ストラクチャー生成物 (Structure Feature)","worldgen/surface-builder":"地形生成 (Surface Builder)","worldgen/template-pool":"テンプレートプール (Template Pool)"} \ No newline at end of file diff --git a/locales/pl.json b/locales/pl.json new file mode 100644 index 00000000..318ad3e9 --- /dev/null +++ b/locales/pl.json @@ -0,0 +1 @@ +{"advancement.criteria":"Kryteria","advancement.display":"Wyświetlanie","advancement.display.announce_to_chat":"Ogłoś Na Czacie","advancement.display.background":"Tło","advancement.display.description":"Opis","advancement.display.frame":"Ramka","advancement.display.frame.challenge":"Wyzwanie","advancement.display.frame.goal":"Cel","advancement.display.frame.task":"Zadanie","advancement.display.help":"Jeżeli obecne, postęp będzie widoczny w zakładkach postępów.","advancement.display.hidden":"Ukryty","advancement.display.icon":"Ikona","advancement.display.icon.item":"Przedmiot Ikony","advancement.display.icon.nbt":"NBT Ikony","advancement.display.show_toast":"Pokaż Powiadomienie","advancement.display.title":"Tytuł","advancement.parent":"Rodzic Postępu","advancement.rewards":"Nagrody","advancement.rewards.experience":"Doświadczenie","advancement.rewards.function":"Funkcja","advancement.rewards.loot":"Tabele Łupów","advancement.rewards.recipes":"Przepisy","advancement_trigger.bee_nest_destroyed":"Zniszczono Ul","advancement_trigger.bred_animals":"Rozmnożono zwierzęta","advancement_trigger.brewed_potion":"Stworzono Miksturę","advancement_trigger.changed_dimension":"Zmieniono Wymiar","advancement_trigger.channeled_lightning":"Porażenie Przekierowaniem","advancement_trigger.construct_beacon":"Skonstruowano Magiczną Latarnię","advancement_trigger.consume_item":"Użyto Przedmiot","advancement_trigger.cured_zombie_villager":"Uleczono Wieśniaka Zombie","advancement_trigger.effects_changed":"Zmieniono Efekty","advancement_trigger.enchanted_item":"Zaklęto Przedmiot","advancement_trigger.enter_block":"Wejście W Blok","advancement_trigger.entity_hurt_player":"Byt Zranił Gracza","advancement_trigger.entity_killed_player":"Byt Zabił Gracza","advancement_trigger.filled_bucket":"Napełniono Wiadro","advancement_trigger.fishing_rod_hooked":"Ściągnięto Żyłkę","advancement_trigger.hero_of_the_village":"Bohater Wioski","advancement_trigger.impossible":"Niemożliwy","advancement_trigger.inventory_changed":"Zmieniono Ekwipunek","advancement_trigger.item_durability_changed":"Zmieniono Wytrzymałość Przedmiotu","advancement_trigger.item_used_on_block":"Użyto Przedmiotu Na Bloku","advancement_trigger.killed_by_crossbow":"Zabity Przez Kuszę","advancement_trigger.levitation":"Lewitacja","advancement_trigger.location":"Lokacja","advancement_trigger.nether_travel":"Podróż W Netherze","advancement_trigger.placed_block":"Postawiono Blok","advancement_trigger.player_generates_container_loot":"Gracz Wygenerował Łup Konteneru","advancement_trigger.player_hurt_entity":"Gracz Zranił Byt","advancement_trigger.player_killed_entity":"Gracz Zabił Byt","advancement_trigger.recipe_unlocked":"Odblokowano Przepis","advancement_trigger.safely_harvest_honey":"Bezpiecznie Zebrano Miód","advancement_trigger.shot_crossbow":"Wystrzelono Z Kuszy","advancement_trigger.slept_in_bed":"Przespano Się W Łóżku","advancement_trigger.slide_down_block":"Ześlizgnięto Się Po Bloku","advancement_trigger.summoned_entity":"Przyzwano Byt","advancement_trigger.tame_animal":"Oswojono Zwierzę","advancement_trigger.target_hit":"Trafiono Cel","advancement_trigger.thrown_item_picked_up_by_entity":"Wyrzucony Przedmiot Podniósł Byt","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Użyto Oka Kresu","advancement_trigger.used_totem":"Użyto Totemu","advancement_trigger.villager_trade":"Handlowano Z Wieśniakiem","advancement_trigger.voluntary_exile":"Wygnanie Na Żądanie","attribute.generic_armor":"Zbroja","attribute.generic_armor_toughness":"Wytrzymałość Zbroi","attribute.generic_attack_damage":"Obrażenia Ataku","attribute.generic_attack_knockback":"Odepchnięcie Ataku","attribute.generic_attack_speed":"Szybkość Ataku","attribute.generic_flying_speed":"Prędkość Latania","attribute.generic_follow_range":"Zasięg Podążania","attribute.generic_knockback_resistance":"Odporność Na Odpychanie","attribute.generic_luck":"Szczęście","attribute.generic_max_health":"Maksymalne Zdrowie","attribute.generic_movement_speed":"Prędkość Poruszania Się","attribute.horse.jump_strength":"Siła Skoku","attribute.zombie.spawn_reinforcements":"Przyzywanie Posiłków","attribute_modifier.amount":"Ilość","attribute_modifier.attribute":"Atrybut","attribute_modifier.name":"Nazwa","attribute_modifier.operation":"Działanie","attribute_modifier.operation.addition":"Dodawanie","attribute_modifier.operation.multiply_base":"Mnożenie Bazy","attribute_modifier.operation.multiply_total":"Mnożenie Całości","attribute_modifier.slot":"Sloty","attribute_modifier.slot.list":"Wiele","attribute_modifier.slot.string":"Jeden","badge.experimental":"Eksperymentalne","badge.unstable":"Niestabilne","biome.carvers":"Rzeźbiarze","biome.carvers.air":"Powietrze","biome.carvers.liquid":"Ciecze","biome.category":"Kategoria","biome.creature_spawn_probability":"Prawdopodobieństwo Pojawiania Się Bytów","biome.depth":"Głębokość","biome.depth.help":"Wznosi lub obniża teren. Dodatnie wartości to lądy, a ujemne to oceany.","biome.downfall":"Spadek","biome.effects":"Efekty","biome.effects.additions_sound":"Dodatki Dźwiękowe","biome.effects.additions_sound.sound":"Dźwięk","biome.effects.additions_sound.tick_chance":"Szansa W Ticku","biome.effects.ambient_sound":"Dźwięk Otoczenia","biome.effects.fog_color":"Kolor Mgły","biome.effects.foliage_color":"Kolor Roślinności","biome.effects.grass_color":"Kolor Trawy","biome.effects.grass_color_modifier":"Modyfikator Koloru Trawy","biome.effects.grass_color_modifier.dark_forest":"Ciemny Las","biome.effects.grass_color_modifier.none":"Żaden","biome.effects.grass_color_modifier.swamp":"Bagno","biome.effects.mood_sound":"Nastrojowy Dźwięk","biome.effects.mood_sound.block_search_extent":"Zakres Szukania Bloku","biome.effects.mood_sound.offset":"Przesunięcie","biome.effects.mood_sound.sound":"Dźwięk","biome.effects.mood_sound.tick_delay":"Opóźnienie Ticku","biome.effects.music":"Muzyka","biome.effects.music.max_delay":"Maksymalne Opóźnienie","biome.effects.music.min_delay":"Minimalne Opóźnienie","biome.effects.music.replace_current_music":"Zastąp Bieżącą Muzykę","biome.effects.music.sound":"Dźwięk","biome.effects.particle":"Cząsteczka","biome.effects.particle.options":"Opcje","biome.effects.particle.options.type":"Typ Cząsteczki","biome.effects.particle.probability":"Prawdopodobieństwo","biome.effects.sky_color":"Kolor Nieba","biome.effects.water_color":"Kolor Wody","biome.effects.water_fog_color":"Kolor Mgły Wody","biome.features":"Aspekty","biome.features.entry":"Krok %0%","biome.features.entry.entry":"Aspekt","biome.player_spawn_friendly":"Przyjazny Spawnowi Gracza","biome.player_spawn_friendly.help":"Jeżeli prawdziwe, spawn świata będzie preferował ten biom.","biome.precipitation":"Opad","biome.precipitation.none":"Żaden","biome.precipitation.rain":"Deszcz","biome.precipitation.snow":"Śnieg","biome.scale":"Skala","biome.scale.help":"Rozciąga teren pionowo. Niższe wartości produkują bardziej płaski teren.","biome.spawn_costs":"Koszty Spawnu","biome.spawn_costs.charge":"Koszt","biome.spawn_costs.energy_budget":"Budżet Energii","biome.spawners":"Spawnery","biome.spawners.ambient":"Pasywne","biome.spawners.creature":"Stworzenia","biome.spawners.entry":"Spawn","biome.spawners.entry.maxCount":"Maksymalna Liczba","biome.spawners.entry.minCount":"Minimalna Liczba","biome.spawners.entry.type":"Typ","biome.spawners.entry.weight":"Waga","biome.spawners.misc":"Rozmaite","biome.spawners.monster":"Potwór","biome.spawners.water_ambient":"Wodne Pasywne","biome.spawners.water_creature":"Wodne Stworzenia","biome.starts":"Początek Struktury","biome.starts.entry":"Struktura","biome.starts.help":"Lista skonfigurowanych aspektów struktury.","biome.surface_builder":"Konstruktor Powierzchni","biome.temperature":"Temperatura","biome.temperature_modifier":"Modyfikator Temperatury","biome.temperature_modifier.frozen":"Zamarznięty","biome.temperature_modifier.none":"Żaden","block.block":"ID Bloku","block.nbt":"NBT","block.state":"Stan Bloku","block.tag":"Tag Bloku","block_placer.column_placer.extra_size":"Ekstra Rozmiar","block_placer.column_placer.min_size":"Minimalny Rozmiar","block_placer.type":"Typ","block_state.Name":"Nazwa","block_state.Properties":"Właściwości","block_state_provider.rotated_block_provider.state":"Stan","block_state_provider.simple_state_provider.state":"Stan","block_state_provider.type":"Typ","block_state_provider.weighted_state_provider.entries":"Wpisy","block_state_provider.weighted_state_provider.entries.entry.data":"Stan","block_state_provider.weighted_state_provider.entries.entry.weight":"Waga","carver.config":"Konfiguracja","carver.config.probability":"Prawdopodobieństwo","carver.type":"Typ","children":"Dzieci","children.entry":"Wpis","condition.alternative.terms":"Warunki","condition.block_state_property.block":"Blok","condition.block_state_property.properties":"Stan Bloku","condition.condition":"Warunek","condition.damage_source":"Źródło Obrażeń","condition.entity_properties.entity":"Byt","condition.entity_scores.entity":"Byt","condition.entity_scores.scores":"Wyniki","condition.entry":"Predicate","condition.inverted.term":"Warunek","condition.item":"Przedmiot","condition.killed_by_player.inverse":"Odwrócony","condition.list":"Wiele","condition.location":"Lokacja","condition.location_check.offsetX":"Przesunięcie X","condition.location_check.offsetY":"Przesunięcie Y","condition.location_check.offsetZ":"Przesunięcie Z","condition.object":"Proste","condition.random_chance.chance":"Szansa","condition.random_chance_with_looting.chance":"Szansa","condition.random_chance_with_looting.looting_multiplier":"Mnożnik Grabieży","condition.reference.name":"Nazwa Predicate","condition.table_bonus.chances":"Szanse","condition.table_bonus.chances.entry":"Szansa","condition.table_bonus.enchantment":"Zaklęcie","condition.time_check.period":"Okres","condition.time_check.period.help":"Jeżeli obecne, czas będzie podzielony modulo przez tą wartość. Na przykład, jeżeli będzie ustawiony na 24000, wartość będzie operować na okresie czasu dni.","condition.time_check.value":"Wartość","condition.weather_check.raining":"Pada Deszcz","condition.weather_check.thundering":"Walą Pioruny","conditions":"Warunki","conditions.entry":"Warunek","conditions.list":"Warunki","conditions.object":"Legacy","copy_source.block_entity":"Byt Bloku","copy_source.direct_killer":"Bezpośredni Zabójca","copy_source.killer":"Zabójca","copy_source.killer_player":"Gracz Zabójca","copy_source.this":"To","criterion.bee_nest_destroyed.block":"Blok","criterion.bee_nest_destroyed.num_bees_inside":"Liczba Pszczół Wewnątrz","criterion.bred_animals.child":"Dziecko","criterion.bred_animals.parent":"Rodzic","criterion.bred_animals.partner":"Partner","criterion.brewed_potion.potion":"Mikstura","criterion.changed_dimension.from":"Z","criterion.changed_dimension.to":"Do","criterion.channeled_lightning.victims":"Ofiary","criterion.channeled_lightning.victims.entry":"Byt","criterion.conditions":"Warunki","criterion.construct_beacon.beacon_level":"Poziom Piramidy","criterion.consume_item.item":"Przedmiot","criterion.cured_zombie_villager.villager":"Wieśniak","criterion.cured_zombie_villager.zombie":"Zombie","criterion.effects_changed.effects":"Efekty","criterion.enchanted_item.item":"Przedmiot","criterion.enchanted_item.levels":"Poziom XP","criterion.enter_block.block":"Blok","criterion.enter_block.state":"Stany","criterion.entity_hurt_player.damage":"Obrażenia","criterion.entity_killed_player.entity":"Byt Źródłowy","criterion.entity_killed_player.killing_blow":"Zabójczy Cios","criterion.filled_bucket.item":"Przedmiot","criterion.fishing_rod_hooked.entity":"Przyciągnięty Byt","criterion.fishing_rod_hooked.item":"Przedmiot","criterion.hero_of_the_village.location":"Lokacja","criterion.inventory_changed.items":"Przedmioty","criterion.inventory_changed.items.entry":"Przedmiot","criterion.inventory_changed.slots":"Sloty","criterion.inventory_changed.slots.empty":"Puste Sloty","criterion.inventory_changed.slots.full":"Pełne Sloty","criterion.inventory_changed.slots.occupied":"Zajęte Sloty","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Wytrzymałość","criterion.item_durability_changed.item":"Przedmiot","criterion.item_used_on_block.item":"Przedmiot","criterion.item_used_on_block.location":"Lokacja","criterion.killed_by_crossbow.unique_entity_types":"Ilość Unikalnych Typów Bytów","criterion.killed_by_crossbow.victims":"Ofiary","criterion.killed_by_crossbow.victims.entry":"Byt","criterion.levitation.distance":"Dystans","criterion.levitation.duration":"Czas Trwania","criterion.location.location":"Lokacja","criterion.nether_travel.distance":"Dystans","criterion.nether_travel.entered":"Wejście Do Lokacji","criterion.nether_travel.exited":"Wyjście Z Lokacji","criterion.placed_block.block":"Blok","criterion.placed_block.item":"Przedmiot","criterion.placed_block.location":"Lokacja","criterion.placed_block.state":"Stany","criterion.player":"Gracz","criterion.player_generates_container_loot.loot_table":"Tabela Łupów","criterion.player_hurt_entity.damage":"Obrażenia","criterion.player_hurt_entity.entity":"Byt Ofiara","criterion.player_killed_entity.entity":"Byt Ofiara","criterion.player_killed_entity.killing_blow":"Zabójczy Cios","criterion.recipe_unlocked.recipe":"Przepis","criterion.rod":"Pałka","criterion.shot_crossbow.item":"Przedmiot","criterion.slept_in_bed.location":"Lokacja","criterion.slide_down_block.block":"Blok","criterion.summoned_entity.entity":"Byt","criterion.tame_animal.entity":"Zwierzę","criterion.target_hit.projectile":"Pocisk","criterion.target_hit.shooter":"Strzelec","criterion.target_hit.signal_strength":"Siła Sygnału","criterion.thrown_item_picked_up_by_entity.entity":"Byt","criterion.thrown_item_picked_up_by_entity.item":"Przedmiot","criterion.trigger":"Wyzwalacz","criterion.used_ender_eye.distance":"Dystans","criterion.used_totem.item":"Przedmiot Totem","criterion.villager_trade.item":"Kupiono Przedmiot","criterion.villager_trade.villager":"Wieśniak","criterion.voluntary_exile.location":"Lokacja","damage.blocked":"Zablokowane","damage.dealt":"Zadane Obrażenia","damage.source_entity":"Byt Źródłowy","damage.taken":"Otrzymane Obrażenia","damage.type":"Typ Obrażeń","damage_source.bypasses_armor":"Omijające Zbroję","damage_source.bypasses_invulnerability":"Pustka","damage_source.bypasses_magic":"Głód","damage_source.direct_entity":"Bezpośredni Byt","damage_source.is_explosion":"Eksplozja","damage_source.is_fire":"Ogień","damage_source.is_lightning":"Piorun","damage_source.is_magic":"Magia","damage_source.is_projectile":"Pocisk","damage_source.source_entity":"Byt Źródłowy","decorator.carving_mask.step":"Krok Generacji","decorator.config":"Konfiguracja","decorator.count.count":"Ilość","decorator.count_extra.count":"Ilość","decorator.count_extra.extra_chance":"Ekstra Szansa","decorator.count_extra.extra_count":"Ekstra Ilość","decorator.count_multilayer.count":"Ilość","decorator.count_noise.above_noise":"Powyżej Szumu","decorator.count_noise.below_noise":"Poniżej Szumu","decorator.count_noise.noise_level":"Poziom Szumu","decorator.count_noise_biased.noise_factor":"Czynnik Szumu","decorator.count_noise_biased.noise_offset":"Przesunięcie Szumu","decorator.count_noise_biased.noise_to_count_ratio":"Stosunek Szumu Do Ilości","decorator.decorated.inner":"Wewnętrzny","decorator.decorated.outer":"Zewnętrzny","decorator.depth_average.baseline":"Linia Bazowa","decorator.depth_average.spread":"Szerokość","decorator.glowstone.count":"Ilość","decorator.type":"Typ","dimension":"Wymiar","dimension.generator":"Generator","dimension.generator.biome_source":"Źródło Biomu","dimension.overworld":"Powierzchnia","dimension.the_end":"Kres","dimension.the_nether":"Nether","dimension.type":"Typ Wymiaru","dimension.type.object":"Własne","dimension.type.string":"Preset","dimension_type.ambient_light":"Światło Otoczenia","dimension_type.ambient_light.help":"Wartość pomiędzy 0 i 1.","dimension_type.bed_works":"Łóżko Działa","dimension_type.coordinate_scale":"Skalowanie Koordynatów","dimension_type.effects":"Efekty","dimension_type.effects.overworld":"Powierzchnia","dimension_type.effects.the_end":"Kres","dimension_type.effects.the_nether":"Nether","dimension_type.fixed_time":"Niezmienny Czas","dimension_type.fixed_time.help":"To ustawienie sprawi że słońce nie będzie się ruszać.","dimension_type.has_ceiling":"Ma Sufit","dimension_type.has_raids":"Ma Najazdy","dimension_type.has_skylight":"Ma Światło Nieba","dimension_type.infiniburn":"Infiniburn","dimension_type.logical_height":"Logiczna Wysokość","dimension_type.name":"Nazwa","dimension_type.natural":"Naturalny","dimension_type.natural.help":"Jeżeli prawdziwe, portale będą przyzywać zombifikowane pigliny. Jeżeli fałszywe, kompasy i zegarki będą kręcić się losowo.","dimension_type.piglin_safe":"Bezpieczny Dla Piglinów","dimension_type.respawn_anchor_works":"Kotwica Odrodzenia","dimension_type.ultrawarm":"Ultraciepły","dimension_type.ultrawarm.help":"Jeżeli prawdziwe, woda będzie wyparowywać i gąbki będą wysychać.","distance.absolute":"Absolutny","distance.horizontal":"Poziomy","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Wydajność Pod Wodą","enchantment.bane_of_arthropods":"Zmora Stawonogó","enchantment.binding_curse":"Klątwa Wiązania","enchantment.blast_protection":"Ochrona Od Wybuchów","enchantment.channeling":"Porażenie","enchantment.depth_strider":"Głębinowy Wędrowiec","enchantment.efficiency":"Wydajność","enchantment.enchantment":"Zaklęcie","enchantment.feather_falling":"Powolne Opadanie","enchantment.fire_aspect":"Zaklęty Ogień","enchantment.fire_protection":"Ochrona Przed Ogniem","enchantment.flame":"Płomień","enchantment.fortune":"Szczęście","enchantment.frost_walker":"Mroźny Piechur","enchantment.impaling":"Przebicie","enchantment.infinity":"Nieskończoność","enchantment.knockback":"Odrzut","enchantment.levels":"Poziomy","enchantment.looting":"Grabież","enchantment.loyalty":"Lojalność","enchantment.luck_of_the_sea":"Morska Fortuna","enchantment.lure":"Przynęta","enchantment.mending":"Naprawa","enchantment.multishot":"Wielostrzał","enchantment.piercing":"Przeszycie","enchantment.power":"Moc","enchantment.projectile_protection":"Ochrona Przed Pociskami","enchantment.protection":"Ochrona","enchantment.punch":"Uderzenie","enchantment.quick_charge":"Szybkie Przeładowanie","enchantment.respiration":"Oddychanie","enchantment.riptide":"Torpeda","enchantment.sharpness":"Ostrość","enchantment.silk_touch":"Jedwabny Dotyk","enchantment.smite":"Pogromca Nieumarłych","enchantment.sweeping":"Szerokie Ostrze","enchantment.thorns":"Ciernie","enchantment.unbreaking":"Niezniszczalność","enchantment.vanishing_curse":"Klątwa Znikania","entity.distance":"Dystans","entity.effects":"Efekty","entity.equipment":"Ekwipunek","entity.fishing_hook":"Spławik","entity.fishing_hook.in_open_water":"Na Otwartej Wodzie","entity.flags":"Flagi","entity.isBaby":"Dziecko","entity.isOnFire":"Pali Się","entity.isSneaking":"Skrada się","entity.isSprinting":"Biega","entity.isSwimming":"Pływa","entity.location":"Lokacja","entity.nbt":"NBT","entity.player":"Gracz","entity.targeted_entity":"Byt Docelowy","entity.team":"Drużyna","entity.type":"Byt","entity.vehicle":"Pojazd","entity_source.direct_killer":"Bezpośredni Zabójca","entity_source.killer":"Zabójca","entity_source.killer_player":"Gracz Zabójca","entity_source.this":"To","entry":"Wpis","error":"Błąd","error.expected_boolean":"Oczekiwano wartości prawda lub fałsz","error.expected_integer":"Oczekiwano liczby całkowitej","error.expected_json":"Oczekiwano JSON","error.expected_list":"Oczekiwano listy","error.expected_number":"Oczekiwano liczby","error.expected_object":"Oczekiwano obiektu","error.expected_range":"Oczekiwano zakresu","error.expected_string":"Oczekiwano wartości string","error.expected_uniform_int":"Oczekiwano jednolitej liczby całkowitej","error.invalid_binomial":"Zasięg nie może użyć typu dwumianowego","error.invalid_empty_list":"Lista nie może być pusta","error.invalid_empty_string":"String nie może być pusty","error.invalid_enum_option":"Niepoprawna opcja \"%0%\"","error.invalid_exact":"Zasięg nie może używać stałego typu","error.invalid_number_range.between":"Oczekiwano liczby między %0% a %1%","error.invalid_pattern":"String jest niepoprawny: %0%","error.recipe.invalid_key":"tylko pojedynczy znak jest dozwolony jako klucz","error.separation_smaller_spacing":"Rozdzielenie musi być mniejsze niż spacjowanie","false":"Fałsz","feature.bamboo.probability":"Prawdopodobieństwo","feature.basalt_columns.height":"Wysokość","feature.basalt_columns.reach":"Zasięg","feature.block_pile.state_provider":"Dostawca Stanu","feature.config":"Konfiguracja","feature.decorated.decorator":"Dekorator","feature.decorated.feature":"Aspekt","feature.delta_feature.contents":"Zawartość","feature.delta_feature.rim":"Brzeg","feature.delta_feature.rim_size":"Wielkość Brzegu","feature.delta_feature.size":"Rozmiar","feature.disk.half_height":"Pół Wysokości","feature.disk.radius":"Promień","feature.disk.state":"Stan","feature.disk.targets":"Cele","feature.disk.targets.entry":"Stan","feature.emerald_ore.state":"Stan","feature.emerald_ore.target":"Cel","feature.end_gateway.exact":"Dokładne","feature.end_gateway.exit":"Wyjście","feature.end_spike.crystal_beam_target":"Cel Wiązki Kryształu","feature.end_spike.crystal_invulnerable":"Niezniszczalny Kryształ","feature.end_spike.spikes":"Kolce","feature.end_spike.spikes.entry":"Kolec","feature.end_spike.spikes.entry.centerX":"Środek X","feature.end_spike.spikes.entry.centerZ":"Środek Z","feature.end_spike.spikes.entry.guarded":"Broniący","feature.end_spike.spikes.entry.height":"Wysokość","feature.end_spike.spikes.entry.radius":"Promień","feature.fill_layer.height":"Wysokość","feature.fill_layer.state":"Stan","feature.flower.blacklist":"Czarna Lista","feature.flower.block_placer":"Stawiacz Bloków","feature.flower.can_replace":"Może Podmienić","feature.flower.need_water":"Potrzebuje Wody","feature.flower.project":"Project","feature.flower.state_provider":"Dostawca Stanu","feature.flower.tries":"Próby","feature.flower.whitelist":"Biała Lista","feature.flower.xspread":"Rozsiew X","feature.flower.yspread":"Rozsiew Y","feature.flower.zspread":"Rozsiew Z","feature.forest_rock.state":"Stan","feature.huge_brown_mushroom.cap_provider":"Dostawca Limitu","feature.huge_brown_mushroom.foliage_radius":"Promień Roślinności","feature.huge_brown_mushroom.stem_provider":"Dostawca Trzonu","feature.huge_fungus.decor_state":"Dekoracja","feature.huge_fungus.hat_state":"Kapelusz","feature.huge_fungus.planted":"Zasadzony","feature.huge_fungus.stem_state":"Trzon","feature.huge_fungus.valid_base_block":"Prawidłowa Powierzchnia","feature.huge_red_mushroom.cap_provider":"Dostawca Limitu","feature.huge_red_mushroom.foliage_radius":"Promień Roślinności","feature.huge_red_mushroom.stem_provider":"Dostawca Nóżki","feature.ice_patch.half_height":"Połowa Wysokości","feature.ice_patch.radius":"Promień","feature.ice_patch.state":"Stan","feature.ice_patch.targets":"Cele","feature.ice_patch.targets.entry":"Stan","feature.iceberg.state":"Stan","feature.lake.state":"Stan","feature.nether_forest_vegetation.state_provider":"Dostawca Stanu","feature.netherrack_replace_blobs.radius":"Promień","feature.netherrack_replace_blobs.state":"Stan","feature.netherrack_replace_blobs.target":"Cel","feature.no_surface_ore.size":"Rozmiar","feature.no_surface_ore.state":"Stan","feature.no_surface_ore.target":"Cel","feature.object":"Własny","feature.ore.size":"Rozmiar","feature.random_boolean_selector.feature_false":"Aspekt 1","feature.random_boolean_selector.feature_true":"Aspekt 2","feature.random_patch.blacklist":"Czarna Lista","feature.random_patch.block_placer":"Stawiacz Bloków","feature.random_patch.can_replace":"Może Zastąpić","feature.random_patch.need_water":"Potrzebuje Wody","feature.random_patch.project":"Project","feature.random_patch.state_provider":"Dostawca Stanu","feature.random_patch.tries":"Próby","feature.random_patch.whitelist":"Biała Lista","feature.random_patch.xspread":"Rozsiew X","feature.random_patch.yspread":"Rozsiew Y","feature.random_patch.zspread":"Rozsiew Z","feature.random_selector.default":"Domyślne","feature.random_selector.features":"Aspekty","feature.random_selector.features.entry":"Aspekt","feature.random_selector.features.entry.chance":"Szansa","feature.random_selector.features.entry.feature":"Aspekt","feature.sea_pickle.count":"Ilość","feature.seegrass.probability":"Prawdopodobieństwo","feature.simple_block.place_in":"Wstaw W","feature.simple_block.place_in.entry":"Stan","feature.simple_block.place_on":"Wstaw Na","feature.simple_block.place_on.entry":"Stan","feature.simple_block.place_under":"Wstaw Pod","feature.simple_block.place_under.entry":"Stan","feature.simple_block.to_place":"Wstawiać","feature.simple_random_selector.features":"Aspekty","feature.simple_random_selector.features.entry":"Aspekt","feature.spring_feature.hole_count":"Liczba Dziur","feature.spring_feature.required_block_below":"Potrzebuje Bloku Poniżej","feature.spring_feature.rock_count":"Ilość Skał","feature.spring_feature.state":"Stan","feature.spring_feature.valid_blocks":"Prawidłowe Bloki","feature.string":"Odniesienie","feature.tree.decorators":"Dekoratory","feature.tree.decorators.entry":"Dekorator Drzew","feature.tree.foliage_placer":"Stawiacz Roślinności","feature.tree.heightmap":"Mapa Wysokości","feature.tree.ignore_vines":"Ignoruj Pnącza","feature.tree.leaves_provider":"Dostawca Liści","feature.tree.max_water_depth":"Maksymalna Głębokość Wody","feature.tree.minimum_size":"Minimalny Rozmiar","feature.tree.minimum_size.limit":"Limit","feature.tree.minimum_size.lower_size":"Mniejszy Rozmiar","feature.tree.minimum_size.middle_size":"Średni Rozmiar","feature.tree.minimum_size.min_clipped_height":"Minimalna Wysokość","feature.tree.minimum_size.type":"Minimalny Rozmiar","feature.tree.minimum_size.upper_limit":"Górna Granica","feature.tree.minimum_size.upper_size":"Górny Rozmiar","feature.tree.trunk_placer":"Stawiacz Pni","feature.tree.trunk_provider":"Dostawca Pni","feature.type":"Typ","fluid.fluid":"ID Płynu","fluid.state":"Stan Płynu","fluid.tag":"Tag Płynu","fluid_state.Name":"Nazwa","fluid_state.Properties":"Właściwości","foliage_placer.crown_height":"Wysokość Korony","foliage_placer.height":"Wysokość","foliage_placer.offset":"Przesunięcie","foliage_placer.radius":"Promień","foliage_placer.trunk_height":"Wysokość Pnia","foliage_placer.type":"Typ","function.apply_bonus.enchantment":"Zaklęcie","function.apply_bonus.formula":"Wzór","function.apply_bonus.formula.binomial_with_bonus_count":"Dwumian z Ilością Bonusową","function.apply_bonus.formula.ore_drops":"Drop Z Rud","function.apply_bonus.formula.uniform_bonus_count":"Jednolity Bonus","function.apply_bonus.parameters":"Parametry","function.apply_bonus.parameters.bonusMultiplier":"Mnożnik","function.apply_bonus.parameters.extra":"Dodatkowe","function.apply_bonus.parameters.probability":"Prawdopodobieństwo","function.copy_name.source":"Źródło","function.copy_nbt.ops":"Działania NBT","function.copy_nbt.ops.entry":"Działanie","function.copy_nbt.source":"Źródło","function.copy_state.block":"Blok","function.copy_state.properties":"Właściwości","function.copy_state.properties.entry":"Własność","function.enchant_randomly.enchantments":"Opcjonalne Zaklęcia","function.enchant_randomly.enchantments.entry":"Zaklęcie","function.enchant_with_levels.levels":"Poziomy","function.enchant_with_levels.treasure":"Skarb","function.exploration_map.decoration":"Dekoracja","function.exploration_map.destination":"Miejsce Docelowe","function.exploration_map.search_radius":"Promien Wyszukiwania (W Chunkach)","function.exploration_map.skip_existing_chunks":"Pomiń Istniejące Chunki","function.exploration_map.zoom":"Powiększenie","function.fill_player_head.entity":"Byt","function.function":"Funkcja","function.limit_count.limit":"Limit","function.looting_enchant.count":"Ilość","function.looting_enchant.limit":"Limit","function.set_attributes.modifiers":"Modyfikatory","function.set_attributes.modifiers.entry":"Modyfikator","function.set_contents.entries":"Zawartość","function.set_contents.entries.entry":"Wpis","function.set_count.count":"Ilość","function.set_damage.damage":"Obrażenia","function.set_data.data":"Data","function.set_loot_table.name":"Nazwa Tabeli Łupów","function.set_loot_table.seed":"Seed","function.set_lore.entity":"Byt","function.set_lore.lore":"Lore","function.set_lore.lore.entry":"Linijka","function.set_lore.replace":"Zamień","function.set_name.entity":"Byt","function.set_name.name":"Nazwa","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Efekty","function.set_stew_effect.effects.entry":"Efekt","function.set_stew_effect.effects.entry.duration":"Długość","function.set_stew_effect.effects.entry.type":"Efekt","functions":"Funkcje","functions.entry":"Funkcja","gamemode.adventure":"Przygodowy","gamemode.creative":"Kreatywny","gamemode.spectator":"Spektator","gamemode.survival":"Przetrwania","generation_step.air":"Powietrze","generation_step.liquid":"Płyn","generator.biome_source.altitude_noise":"Szum Wysokości","generator.biome_source.biome":"Biom","generator.biome_source.biomes":"Biomy","generator.biome_source.humidity_noise":"Szum Wilgotności","generator.biome_source.large_biomes":"Duże Biomy","generator.biome_source.legacy_biome_init_layer":"Warstwa Inicjująca Biom Legacy","generator.biome_source.preset":"Presety Biomów","generator.biome_source.preset.nether":"Nether","generator.biome_source.scale":"Skala","generator.biome_source.seed":"Seed Biomów","generator.biome_source.temperature_noise":"Szum Temperatury","generator.biome_source.type":"Źródło Biomów","generator.biome_source.weirdness_noise":"Szum Dziwności","generator.seed":"Seed Wymiarów","generator.settings":"Ustawienia Generatora","generator.settings.biome":"Biom","generator.settings.lakes":"Jeziora","generator.settings.layers":"Warstwy","generator.settings.layers.entry":"Warstwa","generator.settings.layers.entry.block":"ID Bloku","generator.settings.layers.entry.height":"Wysokość","generator.settings.object":"Własne","generator.settings.presets.amplified":"Powiększony","generator.settings.presets.caves":"Jaskinie","generator.settings.presets.end":"Kres","generator.settings.presets.floating_islands":"Latające Wyspy","generator.settings.presets.nether":"Nether","generator.settings.presets.overworld":"Powierzchnia","generator.settings.string":"Preset","generator.settings.structures":"Struktury","generator.settings.structures.stronghold":"Lochy","generator.settings.structures.stronghold.count":"Ilość","generator.settings.structures.stronghold.distance":"Dystans","generator.settings.structures.stronghold.spread":"Rozsiew","generator.settings.structures.structures":"Struktury","generator.type":"Typ Generatora","generator_biome.biome":"Biom","generator_biome.parameters":"Parametry","generator_biome.parameters.altitude":"Wysokość","generator_biome.parameters.help":"Te parametry ustalają umieszczenie biomu. Każdy biom musi posiadać ich unikalną kombinację. Biomy z podobnymi wartościami wygenerują się blisko siebie.","generator_biome.parameters.humidity":"Wilgotność","generator_biome.parameters.offset":"Przesunięcie","generator_biome.parameters.temperature":"Temperatura","generator_biome.parameters.weirdness":"Dziwność","generator_biome_noise.amplitudes":"Amplitudy","generator_biome_noise.amplitudes.entry":"Oktawa %0%","generator_biome_noise.firstOctave":"Pierwsza Oktawa","generator_structure.salt":"Sól","generator_structure.separation":"Rozdzielenie","generator_structure.separation.help":"Minimalny dystans, w chunkach, pomiędzy dwiema strukturami tego typu.","generator_structure.spacing":"Spacjowanie","generator_structure.spacing.help":"Średni dystans, w chunkach, pomiędzy dwiema strukturami tego typu.","heightmap_type.MOTION_BLOCKING":"Blokowanie Ruchu","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"Blokowanie Ruchu (Bez Liści)","heightmap_type.OCEAN_FLOOR":"Podłoże Oceanu","heightmap_type.OCEAN_FLOOR_WG":"Podłoże Oceanu (Generator Świata)","heightmap_type.WORLD_SURFACE":"Powierzchnia Świata","heightmap_type.WORLD_SURFACE_WG":"Powierzchnia Świata (Generator Świata)","hide_source":"Ukryj Źródło","item.count":"Ilość","item.durability":"Wytrzymałość","item.enchantments":"Zaklęcia","item.enchantments.entry":"Zaklęcie","item.item":"ID Przedmiotu","item.nbt":"NBT","item.potion":"Mikstura","item.tag":"Tag Przedmiotu","key.advancements":"Postępy","key.attack":"Atak/Niszczenie","key.back":"Idź Do Tyłu","key.chat":"Otwórz Czat","key.command":"Napisz Komendę","key.drop":"Upuść Trzymany Przedmiot","key.forward":"Idź Do Przodu","key.fullscreen":"Przełącz Pełny Ekran","key.hotbar.1":"Slot Paska 1","key.hotbar.2":"Slot Paska 2","key.hotbar.3":"Slot Paska 3","key.hotbar.4":"Slot Paska 4","key.hotbar.5":"Slot Paska 5","key.hotbar.6":"Slot Paska 6","key.hotbar.7":"Slot Paska 7","key.hotbar.8":"Slot Paska 8","key.hotbar.9":"Slot Paska 9","key.inventory":"Otwórz/Zamknij Ekwipunek","key.jump":"Skok","key.left":"Idź W Lewo","key.loadToolbarActivator":"Załaduj Okienko Toolbar'ów","key.pickItem":"Wybierz Blok","key.playerlist":"Lista Graczy","key.right":"Idź W Prawo","key.saveToolbarActivator":"Zapisz Okienko Toolbar'ów","key.screenshot":"Zrób Screnshot","key.smoothCamera":"Włącz Płynną Kamerę","key.sneak":"Skradanie","key.spectatorOutlines":"Podświetl Graczy (Jako Spektator)","key.sprint":"Sprint","key.swapOffhand":"Zmień Przedmiot Z Drugą Ręką","key.togglePerspective":"Przełącz Kamerę","key.use":"Użyj Przedmiotu/Postaw Blok","location.biome":"Biom","location.block":"Blok","location.dimension":"Wymiar","location.feature":"Aspekt","location.fluid":"Płyn","location.light":"Światło","location.light.light":"Widzialny Poziom Światła","location.position":"Pozycja","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Zadymione","loot_condition_type.alternative":"Alternatywa","loot_condition_type.block_state_property":"Właściwości Bloku","loot_condition_type.damage_source_properties":"Źródło Obrażeń","loot_condition_type.entity_properties":"Właściwości Bytu","loot_condition_type.entity_scores":"Wyniki Bytu","loot_condition_type.inverted":"Odwrócone","loot_condition_type.killed_by_player":"Zabity przez Gracza","loot_condition_type.location_check":"Lokacja","loot_condition_type.match_tool":"Właściwości Narzędzia","loot_condition_type.random_chance":"Losowa Szansa","loot_condition_type.random_chance_with_looting":"Losowa Szansa z Grabieżą","loot_condition_type.reference":"Odniesienie","loot_condition_type.survives_explosion":"Przetrwa Wybuch","loot_condition_type.table_bonus":"Bonus Tabeli","loot_condition_type.time_check":"Czas","loot_condition_type.weather_check":"Pogoda","loot_entry.dynamic.name":"Nazwa","loot_entry.item.name":"Nazwa","loot_entry.loot_table.name":"Nazwa Tabeli Łupów","loot_entry.quality":"Jakość","loot_entry.tag.expand":"Rozwiń","loot_entry.tag.expand.help":"Jeżeli fałszywe, wpis zwróci całą zawartość tagu, w innym przypadku wpis zachowa się jak wiele wpisów przedmiotów.","loot_entry.tag.name":"Nazwa Tagu Przedmiotów","loot_entry.type":"Typ","loot_entry.weight":"Waga","loot_function_type.apply_bonus":"Dodaj Bonus","loot_function_type.copy_name":"Skopiuj Nazwę","loot_function_type.copy_nbt":"Skopiuj NBT","loot_function_type.copy_state":"Skopiuj Stany Bloku","loot_function_type.enchant_randomly":"Losowe Zaklinanie","loot_function_type.enchant_with_levels":"Zaklnij Poziomami","loot_function_type.exploration_map":"Właściwości Mapy Odkrywczej","loot_function_type.explosion_decay":"Zanik Wybuchu","loot_function_type.fill_player_head":"Wstaw Głowę Gracza","loot_function_type.furnace_smelt":"Przepal Piecem","loot_function_type.limit_count":"Limit Ilości","loot_function_type.looting_enchant":"Zaklęcie Grabieży","loot_function_type.set_attributes":"Ustaw Atrybuty","loot_function_type.set_contents":"Ustaw Zawartość","loot_function_type.set_count":"Ustaw Ilość","loot_function_type.set_damage":"Ustaw Damage","loot_function_type.set_data":"Ustaw Data","loot_function_type.set_loot_table":"Ustaw Tabelę Łupów","loot_function_type.set_lore":"Ustaw Lore","loot_function_type.set_name":"Ustaw Nazwę","loot_function_type.set_nbt":"Ustaw NBT","loot_function_type.set_stew_effect":"Ustaw Efekt Potrawki","loot_pool.bonus_rolls":"Dodatkowe Wybory","loot_pool.entries":"Wpisy","loot_pool.entries.entry":"Wpis","loot_pool.rolls":"Wybory","loot_pool.rolls.help":"Ilość wpisów które będą losowo wybierane.","loot_pool_entry_type.alternatives":"Alternatywy","loot_pool_entry_type.alternatives.help":"Sprawdza warunki wpisów dzieci i wykonuje pierwsze które je spełnia.","loot_pool_entry_type.dynamic":"Dynamiczne","loot_pool_entry_type.dynamic.help":"Pobiera drop specyficzny dla bloku.","loot_pool_entry_type.empty":"Puste","loot_pool_entry_type.empty.help":"Nic nie dodaje do puli.","loot_pool_entry_type.group":"Grupa","loot_pool_entry_type.group.help":"Wykonuje wszytkie wpisy dzieci gdy jej warunki są spełnione.","loot_pool_entry_type.item":"Przedmiot","loot_pool_entry_type.item.help":"Dodaje pojedynczy przedmiot.","loot_pool_entry_type.loot_table":"Tabela Łupów","loot_pool_entry_type.loot_table.help":"Dodaje zawartość innej tabeli łupów.","loot_pool_entry_type.sequence":"Sekwencja","loot_pool_entry_type.sequence.help":"Wykonuje wpisy dzieci dopóki pierwszy z nich nie spełnia warunków.","loot_pool_entry_type.tag":"Tag Przedmiotów","loot_pool_entry_type.tag.help":"Dodaje zawartość tagu przedmiotów.","loot_table.pools":"Pule","loot_table.pools.entry":"Pula","luck_based":"Zależy Od Szczęścia","nbt_operation.op":"Działanie","nbt_operation.op.append":"Dodaj","nbt_operation.op.merge":"Połącz","nbt_operation.op.replace":"Zamień","nbt_operation.source":"Źródło","nbt_operation.target":"Cel","noise_settings.bedrock_floor_position":"Pozycja Bedrockowego Podłoża","noise_settings.bedrock_floor_position.help":"Pozycja podłoża skały macierzystej. Większe liczby przesuwają podłogę w górę.","noise_settings.bedrock_roof_position":"Pozycja Bedrockowego Sufitu","noise_settings.bedrock_roof_position.help":"Relatywna pozycja sufitu skały macierzystej, zaczynając od wysokości świata. Większe liczby przesuwają sufit w dół.","noise_settings.biome":"Biom","noise_settings.default_block":"Domyślny Blok","noise_settings.default_fluid":"Domyślny Płyn","noise_settings.disable_mob_generation":"Wyłącz Generowanie Mobów","noise_settings.disable_mob_generation.help":"Jeżeli prawdziwe, moby nie będą pojawiać się podczas generacji.","noise_settings.name":"Nazwa","noise_settings.noise":"Opcje Szumu","noise_settings.noise.amplified":"Powiększony","noise_settings.noise.bottom_slide":"Przesuń Dół","noise_settings.noise.bottom_slide.help":"Dodaje lub usuwa teren na dole świata. Nic nie robi gdy rozmiar jest ustawiony na 0.","noise_settings.noise.bottom_slide.offset":"Przesunięcie","noise_settings.noise.bottom_slide.size":"Rozmiar","noise_settings.noise.bottom_slide.target":"Cel","noise_settings.noise.density_factor":"Współczynnik Gęstości","noise_settings.noise.density_factor.help":"Ustala jak bardzo wysokość wpływa na teren. Dodanie wartości stawiają ląd na dole. Wartości bliskie 0 produkują jednolity teren.","noise_settings.noise.density_offset":"Przesunięcie Gęstości","noise_settings.noise.density_offset.help":"Wpływa na średnią wysokość ladu. Wartość 0 produkuje średnią wysokość lądu na połowie wysokości. Dodatnie wartości zwiększają wysokość.","noise_settings.noise.height":"Wysokość","noise_settings.noise.island_noise_override":"Nadpisz Szum Wysp","noise_settings.noise.island_noise_override.help":"Gdy prawdziwe, teren wygeneruje się tak jak Kres, z jedną większą wyspą na środku i z wieloma wyspami na zewnątrz.","noise_settings.noise.random_density_offset":"Losowe Przesunięcie Gęstości","noise_settings.noise.sampling":"Próbkowanie","noise_settings.noise.sampling.xz_factor":"Czynnik XZ","noise_settings.noise.sampling.xz_scale":"Skala XZ","noise_settings.noise.sampling.y_factor":"Czynnik Y","noise_settings.noise.sampling.y_scale":"Skala Y","noise_settings.noise.simplex_surface_noise":"Szum Powierzchni Sympleksu","noise_settings.noise.size_horizontal":"Rozmiar Poziomy","noise_settings.noise.size_vertical":"Rozmiar Pionowy","noise_settings.noise.top_slide":"Górne Przesunięcie","noise_settings.noise.top_slide.help":"Dodaje lub usuwa teren na górze świata. Nic nie robi gdy rozmiar jest równy 0.","noise_settings.noise.top_slide.offset":"Przesunięcie","noise_settings.noise.top_slide.size":"Rozmiar","noise_settings.noise.top_slide.target":"Cel","noise_settings.sea_level":"Poziom Morza","noise_settings.structures":"Struktury","noise_settings.structures.stronghold":"Loch","noise_settings.structures.stronghold.count":"Ilość","noise_settings.structures.stronghold.distance":"Dystans","noise_settings.structures.stronghold.spread":"Rozsiew","noise_settings.structures.structures":"Struktury","player.advancements":"Postępy","player.advancements.entry":"Postęp","player.gamemode":"Tryb Gry","player.level":"Poziom XP","player.recipes":"Przepisy","player.stats":"Statystyki","player.stats.entry":"Statystyka","pos_rule_test.always_true":"Zawsze Prawdziwe","pos_rule_test.axis":"Oś","pos_rule_test.axis.x":"X","pos_rule_test.axis.y":"Y","pos_rule_test.axis.z":"Z","pos_rule_test.axis_aligned_linear_pos":"Wyrównana Do Osi Pozycja Liniowa","pos_rule_test.linear_pos":"Pozycja Liniowa","pos_rule_test.max_chance":"Maksymalna Szansa","pos_rule_test.max_dist":"Maksymalny Dystans","pos_rule_test.min_chance":"Minimalna Szansa","pos_rule_test.min_dist":"Minimalny Dystans","pos_rule_test.predicate_type":"Typ","processor.block_age.mossiness":"Mchowość","processor.block_ignore.blocks":"Bloki","processor.block_ignore.blocks.entry":"Stan","processor.block_rot.integrity":"Integralność","processor.gravity.heightmap":"Mapa Wysokości","processor.gravity.offset":"Przesunięcie","processor.processor_type":"Typ","processor.rule.rules":"Zasady","processor.rule.rules.entry":"Zasada","processor_list.processors":"Procesory","processor_list.processors.entry":"Procesor","processor_rule.input_predicate":"Predicate Wejściowy","processor_rule.location_predicate":"Predicate Lokacji","processor_rule.output_nbt":"Wyjściowe NBT","processor_rule.output_state":"Wyjściowy Stan","processor_rule.position_predicate":"Predicate Pozycji","processors.object":"Własne","processors.string":"Odniesienie","range.binomial":"Dwumianowy","range.max":"Maks","range.min":"Min","range.n":"n","range.number":"Dokładne","range.object":"Zasięg","range.p":"p","range.uniform":"Jednolity","requirements":"Wymagania","rule_test.always_true":"Zawsze Prawda","rule_test.block":"Blok","rule_test.block_match":"Blok Zgadza Się","rule_test.block_state":"Stan","rule_test.blockstate_match":"Stan Bloku Zgadza Się","rule_test.predicate_type":"Typ","rule_test.probability":"Prawdopodobieństwo","rule_test.random_block_match":"Losowy Blok Zgadza SIę","rule_test.random_blockstate_match":"Stan Losowego Bloku Zgadza Się","rule_test.tag":"Tag","rule_test.tag_match":"Tag Zgadza SIę","slot.chest":"Skrzynia","slot.feet":"Stopy","slot.head":"Głowa","slot.legs":"Nogi","slot.mainhand":"Główna Ręka","slot.offhand":"Druga Ręka","statistic.stat":"Statystyka","statistic.type":"Typ","statistic.type.broken":"Zepsute","statistic.type.crafted":"Zcraftowane","statistic.type.custom":"Własne","statistic.type.dropped":"Upuszczone","statistic.type.killed":"Zabite","statistic.type.killedByTeam":"Zabite Przez Drużynę","statistic.type.killed_by":"Zabite Przez","statistic.type.mined":"Wykopane","statistic.type.picked_up":"Podniesione","statistic.type.teamkill":"Zabito Drużynę","statistic.type.used":"Użyte","statistic.value":"Wartość","status_effect.ambient":"Pasywny","status_effect.amplifier":"Poziom","status_effect.duration":"Długość","status_effect.visible":"Widoczny","structure_feature.biome_temp":"Temperatura Biomu","structure_feature.biome_temp.cold":"Zimny","structure_feature.biome_temp.warm":"Ciepły","structure_feature.cluster_probability":"Prawdopodobieństwo Skupiska","structure_feature.config":"Konfiguracja","structure_feature.is_beached":"Jest Na Plaży","structure_feature.large_probability":"Duże Prawdopodobieństwo","structure_feature.portal_type":"Typ Portalu","structure_feature.portal_type.desert":"Pustynia","structure_feature.portal_type.jungle":"Dżungla","structure_feature.portal_type.mountain":"Góra","structure_feature.portal_type.nether":"Nether","structure_feature.portal_type.ocean":"Ocean","structure_feature.portal_type.standard":"Standardowy","structure_feature.portal_type.swamp":"Bagno","structure_feature.probability":"Prawdopodobieństwo","structure_feature.size":"Rozmiar","structure_feature.start_pool":"Pula Startowa","structure_feature.type":"Typ","structure_feature.type.mesa":"Mesa","structure_feature.type.normal":"Normalne","surface_builder.config":"Konfiguracja","surface_builder.top_material":"Materiał Na Górze","surface_builder.type":"Typ","surface_builder.under_material":"Materiał Pod Spodem","surface_builder.underwater_material":"Podwodny Materiał","table.type":"Typ","table.type.block":"Blok","table.type.chest":"Skrzynia","table.type.empty":"Pusty","table.type.entity":"Byt","table.type.fishing":"Łowienie","table.type.generic":"Zwykły","tag.replace":"Zastąp","tag.values":"Wartości","template_element.element_type":"Typ","template_element.elements":"Części","template_element.feature":"Aspekt","template_element.location":"Lokacja","template_element.processors":"Procesory","template_element.projection":"Projekcja","template_element.projection.rigid":"Sztywny","template_element.projection.terrain_matching":"Dopasowywanie Terenów","template_pool.elements":"Części","template_pool.elements.entry":"Część","template_pool.elements.entry.element":"Część","template_pool.elements.entry.weight":"Waga","template_pool.fallback":"Rezerwa","template_pool.name":"Nazwa","text_component":"Text Component","text_component.boolean":"Boolean","text_component.list":"Lista","text_component.number":"Liczba","text_component.object":"Obiekt","text_component.string":"String","text_component_object.block":"Blok","text_component_object.bold":"Pogrubiony","text_component_object.clickEvent":"Zdarzenie Przy Kliknięciu","text_component_object.clickEvent.action":"Akcja","text_component_object.clickEvent.action.change_page":"Zmień Stronę","text_component_object.clickEvent.action.copy_to_clipboard":"Skopiuj Do Schowka","text_component_object.clickEvent.action.open_file":"Otwórz Plik","text_component_object.clickEvent.action.open_url":"Otwórz URL","text_component_object.clickEvent.action.run_command":"Wykonaj Komendę","text_component_object.clickEvent.action.suggest_command":"Sugeruj Komendę","text_component_object.clickEvent.value":"Wartosć","text_component_object.color":"Kolor","text_component_object.entity":"Byt","text_component_object.extra":"Extra","text_component_object.font":"Czcionka","text_component_object.hoverEvent":"Zdarzenie Przy Najechaniu","text_component_object.hoverEvent.action":"Akcja","text_component_object.hoverEvent.action.show_entity":"Pokaż Byt","text_component_object.hoverEvent.action.show_item":"Pokaż Przedmiot","text_component_object.hoverEvent.action.show_text":"Pokaż Tekst","text_component_object.hoverEvent.contents":"Zawartość","text_component_object.hoverEvent.value":"Wartość","text_component_object.insertion":"Insertion","text_component_object.interpret":"Interpretuj","text_component_object.italic":"Pochylony","text_component_object.keybind":"Klawisz","text_component_object.nbt":"NBT","text_component_object.obfuscated":"Efekt Matrixa","text_component_object.score":"Wynik","text_component_object.score.name":"Nazwa","text_component_object.score.objective":"Cel","text_component_object.score.value":"Wartość","text_component_object.selector":"Selektor","text_component_object.storage":"Storage","text_component_object.strikethrough":"Przekreślenie","text_component_object.text":"Tekst","text_component_object.translate":"Tłumaczony Tekst","text_component_object.underlined":"Podkreślenie","text_component_object.with":"Tłumacz Z","tree_decorator.alter_ground.provider":"Dostawca Stanu","tree_decorator.beehive.probability":"Prawdopodobieństwo","tree_decorator.cocoa.probability":"Prawdopodobieństwo","tree_decorator.type":"Typ","true":"Prawda","trunk_placer.base_height":"Bazowa Wysokość","trunk_placer.height_rand_a":"Losowa Wysokość A","trunk_placer.height_rand_b":"Losowa Wysokość B","trunk_placer.type":"Typ","uniform_int.base":"Baza","uniform_int.number":"Dokładne","uniform_int.object":"Jednolite","uniform_int.spread":"Rozsiew","unset":"Nieustawione","world.bonus_chest":"Postaw Skrzynkę Bonusową","world.generate_features":"Generuj Aspekty","world.seed":"Seed","world_settings.bonus_chest":"Postaw Skrzynkę Bonusową","world_settings.dimensions":"Wymiary","world_settings.generate_features":"Generuj Aspekty","world_settings.seed":"Seed Świata","worldgen.warning":"Ta funkcja jest wysoce eksperymentalna i niestabilna. Może zmienić się w przyszłych wersjach. Spodziewaj się crash'ów podczas tworzenia światów.","worldgen/biome_source.checkerboard":"Szachownica","worldgen/biome_source.checkerboard.help":"Biomy generują się w szachownicy.","worldgen/biome_source.fixed":"Stały","worldgen/biome_source.fixed.help":"Jeden biom na cały świat.","worldgen/biome_source.multi_noise":"Multi Szum","worldgen/biome_source.multi_noise.help":"Własne rozstawienie biomów z konfigurowalnymi parametrami.","worldgen/biome_source.the_end":"Kres","worldgen/biome_source.the_end.help":"Dystrybucja biomów dla Kresu.","worldgen/biome_source.vanilla_layered":"Vanilla Warstwowy","worldgen/biome_source.vanilla_layered.help":"Dystrybucja biomów dla Powierzchni.","worldgen/block_placer_type.column_placer":"Kolumna","worldgen/block_placer_type.double_plant_placer":"Podwójna Roślina","worldgen/block_placer_type.simple_block_placer":"Prosty","worldgen/block_state_provider_type.forest_flower_provider":"Kwiecisty Las","worldgen/block_state_provider_type.plain_flower_provider":"Kwiecista Równina","worldgen/block_state_provider_type.rotated_block_provider":"Obrócony Blok","worldgen/block_state_provider_type.simple_state_provider":"Prosty Stan","worldgen/block_state_provider_type.weighted_state_provider":"Ważony Stan","worldgen/carver.canyon":"Kanion","worldgen/carver.cave":"Jaskinia","worldgen/carver.nether_cave":"Netherowa Jaskina","worldgen/carver.underwater_canyon":"Podwodny Kanion","worldgen/carver.underwater_cave":"Podwodna Jaskinia","worldgen/chunk_generator.debug":"Świat Debugowy","worldgen/chunk_generator.flat":"Superpłaski","worldgen/chunk_generator.noise":"Domyślny","worldgen/feature_size_type.three_layers_feature_size":"Trzy Warstwy","worldgen/feature_size_type.two_layers_feature_size":"Dwie Warstwy","worldgen/foliage_placer_type.acacia_foliage_placer":"Akacja","worldgen/foliage_placer_type.blob_foliage_placer":"Blob","worldgen/foliage_placer_type.bush_foliage_placer":"Krzak","worldgen/foliage_placer_type.dark_oak_foliage_placer":"Ciemny Dąb","worldgen/foliage_placer_type.fancy_foliage_placer":"Ozdobny","worldgen/foliage_placer_type.jungle_foliage_placer":"Dżunglowy","worldgen/foliage_placer_type.mega_pine_foliage_placer":"Mega Sosnowy","worldgen/foliage_placer_type.pine_foliage_placer":"Sosnowy","worldgen/foliage_placer_type.spruce_foliage_placer":"Świerkowy","worldgen/structure_pool_element.empty_pool_element":"Pusty","worldgen/structure_pool_element.feature_pool_element":"Aspekt","worldgen/structure_pool_element.legacy_single_pool_element":"Pojedynczy Legacy","worldgen/structure_pool_element.list_pool_element":"Lista","worldgen/structure_pool_element.single_pool_element":"Pojedynczy","worldgen/structure_processor.blackstone_replace":"Zamień Czernit","worldgen/structure_processor.block_age":"Wiek Bloku","worldgen/structure_processor.block_ignore":"Ignoruj Blok","worldgen/structure_processor.block_rot":"Gnicie Bloku","worldgen/structure_processor.gravity":"Grawitacja","worldgen/structure_processor.jigsaw_replacement":"Zamiana Puzzli","worldgen/structure_processor.lava_submerged_block":"Blok Zanurzony W Lawie","worldgen/structure_processor.nop":"Nic","worldgen/structure_processor.rule":"Zasada","worldgen/tree_decorator_type.alter_ground":"Zmień Ziemię","worldgen/tree_decorator_type.beehive":"Ul","worldgen/tree_decorator_type.cocoa":"Kakao","worldgen/tree_decorator_type.leave_vine":"Zostaw Pnącza","worldgen/tree_decorator_type.trunk_vine":"Pnącza Na Pniu","worldgen/trunk_placer_type.dark_oak_trunk_placer":"Ciemny Dąb","worldgen/trunk_placer_type.fancy_trunk_placer":"Ozdobny","worldgen/trunk_placer_type.forking_trunk_placer":"Rozwidlenie","worldgen/trunk_placer_type.giant_trunk_placer":"Gigantyczny","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"Mega Jungla","worldgen/trunk_placer_type.straight_trunk_placer":"Prosty","advancement":"Postęp","copy":"Kopiuj","dimension-type":"Typ Wymiaru","download":"Pobierz","language":"Język","loot-table":"Tabela Łupów","predicate":"Predicate","reset":"Reset","share":"Podziel się","title.generator":"Generator %0%","title.home":"Generatory Data Packów","preview":"Wizualizuj","world":"Ustawienia Świata","worldgen/biome":"Biom","worldgen/carver":"Rzeźbiarz","worldgen/feature":"Aspekt","worldgen/noise-settings":"Ustawienia Szumu","worldgen/processor-list":"Lista Procesorów","worldgen/structure-feature":"Aspekt Struktury","worldgen/surface-builder":"Konstruktor Powierzchni","worldgen/template-pool":"Pula Szablonów"} \ No newline at end of file diff --git a/locales/pt.json b/locales/pt.json new file mode 100644 index 00000000..4f68d55f --- /dev/null +++ b/locales/pt.json @@ -0,0 +1 @@ +{"advancement.criteria":"Critério","advancement.display":"Exibição","advancement.display.announce_to_chat":"Anunciar no Bate-papo","advancement.display.background":"Segundo Plano","advancement.display.description":"Descrição","advancement.display.frame":"Quadro","advancement.display.frame.challenge":"Desafio","advancement.display.frame.goal":"Objetivo","advancement.display.frame.task":"Tarefa","advancement.display.help":"Se presente, o avanço será visível nas guias de avanço.","advancement.display.hidden":"Escondido","advancement.display.icon":"Ícone","advancement.display.icon.item":"Ícone do Item","advancement.display.icon.nbt":"Ícone do NBT","advancement.display.show_toast":"Mostrar Respostas","advancement.display.title":"Título","advancement.parent":"Conquistas dos Parentes","advancement.rewards":"Prêmios","advancement.rewards.experience":"Experiência","advancement.rewards.function":"Função","advancement.rewards.loot":"Tabelas de Pilhagem","advancement.rewards.recipes":"Receitas","advancement_trigger.bee_nest_destroyed":"Ninho de abelha destruído","advancement_trigger.bred_animals":"Animais Reproduzidos","advancement_trigger.brewed_potion":"Poção Fabricada","advancement_trigger.changed_dimension":"Dimensão Alterada","advancement_trigger.channeled_lightning":"Raio Gerado","advancement_trigger.construct_beacon":"Construir Sinalizador","advancement_trigger.consume_item":"Consumir Item","advancement_trigger.cured_zombie_villager":"Aldeão Zumbi Curado","advancement_trigger.effects_changed":"Efeitos Alterados","advancement_trigger.enchanted_item":"Item Encantado","advancement_trigger.enter_block":"Inserir Block","advancement_trigger.entity_hurt_player":"Entidade Ferida por Jogador","advancement_trigger.entity_killed_player":"Entidade Morta por Jogador","advancement_trigger.filled_bucket":"Balde Enchido","advancement_trigger.fishing_rod_hooked":"Vara de Pesca Enganchada","advancement_trigger.hero_of_the_village":"Herói da Vila","advancement_trigger.impossible":"Impossível","advancement_trigger.inventory_changed":"Inventário Alterado","advancement_trigger.item_durability_changed":"Duração do Item Alterado","advancement_trigger.item_used_on_block":"Item Usado No Bloco","advancement_trigger.killed_by_crossbow":"Morto por Besta","advancement_trigger.levitation":"Levitação","advancement_trigger.location":"Localização","advancement_trigger.nether_travel":"Viagem ao Mundo Inferior","advancement_trigger.placed_block":"Colo","advancement_trigger.player_hurt_entity":"Bloco Colocado","advancement_trigger.player_killed_entity":"Jogador Morto por Entidade","advancement_trigger.recipe_unlocked":"Receita Desbloqueada","advancement_trigger.safely_harvest_honey":"Colher Mel com Segurança","advancement_trigger.shot_crossbow":"Atirar com Besta","advancement_trigger.slept_in_bed":"Dormido na Cama","advancement_trigger.slide_down_block":"Deslize em Bloco","advancement_trigger.summoned_entity":"Invocar Entidade","advancement_trigger.tame_animal":"Domar Animal","advancement_trigger.tick":"Tick","advancement_trigger.used_ender_eye":"Olho do Ender usado","advancement_trigger.used_totem":"Totem Usado","advancement_trigger.villager_trade":"Comércio de Aldeões","advancement_trigger.voluntary_exile":"Exílio Voluntário","attribute.generic_armor":"Armadura","attribute.generic_armor_toughness":"Dureza da Armadura","attribute.generic_attack_damage":"Dano de Ataque","attribute.generic_attack_knockback":"Repulsão","attribute.generic_attack_speed":"Velocidade de Ataque","attribute.generic_flying_speed":"Velocidade de Voo","attribute.generic_follow_range":"Distância de Perseguição","attribute.generic_knockback_resistance":"Resistência de Repulsão","attribute.generic_luck":"Sorte","attribute.generic_max_health":"Vida Máxima","attribute.generic_movement_speed":"Velocidade de Movimento","attribute.horse.jump_strength":"Força do Salto","attribute.zombie.spawn_reinforcements":"Spawn para Reforços","attribute_modifier.amount":"Quantidade","attribute_modifier.attribute":"Atibuto","attribute_modifier.name":"Nome","attribute_modifier.operation":"Operação","attribute_modifier.operation.addition":"Adição","attribute_modifier.operation.multiply_base":"Multiplicação Base","attribute_modifier.operation.multiply_total":"Multiplicação Total","attribute_modifier.slot":"Slot","attribute_modifier.slot.list":"Múltiplos","attribute_modifier.slot.string":"Único","badge.experimental":"Experimental","badge.unstable":"Instável","biome.category":"Categoria","biome.creature_spawn_probability":"Probabilidade de Geração de Criatura","biome.depth":"Profundidade","biome.depth.help":"Aumenta ou diminui o terreno. Valores positivos são considerados terra e negativos são oceanos.","biome.effects":"Efeitos","biome.effects.additions_sound":"Som de Adições","biome.effects.additions_sound.sound":"Som","biome.effects.additions_sound.tick_chance":"Chance de Tick","biome.effects.ambient_sound":"Som Ambiente","biome.effects.fog_color":"Cor da Névoa","biome.effects.foliage_color":"Cor da Folhagem","biome.effects.grass_color":"Cor da Grama","biome.effects.grass_color_modifier":"Modificador da Cor da Grama","biome.effects.grass_color_modifier.none":"Nenhum","biome.effects.grass_color_modifier.swamp":"Pântano","biome.effects.mood_sound.sound":"Som","biome.effects.mood_sound.tick_delay":"Demora do Tick","biome.effects.music":"Música","biome.effects.music.max_delay":"Demora Máxima","biome.effects.music.min_delay":"Demora Mínima","biome.effects.music.replace_current_music":"Substituir Música Atual","biome.effects.music.sound":"Som","biome.effects.particle":"Partícula","biome.effects.particle.options":"Opções","biome.effects.particle.options.type":"Tipo da Partícula","biome.effects.particle.probability":"Probabilidade","biome.effects.sky_color":"Cor do Céu","biome.effects.water_color":"Cor da Água","biome.effects.water_fog_color":"Cor da Névoa da Água","biome.features":"Características","biome.features.entry.entry":"Característica","biome.player_spawn_friendly.help":"Se verdadeiro, o local de nascimento do mundo será mais provável de ser nesse bioma.","biome.precipitation":"Precipitação","biome.precipitation.none":"Nenhum","biome.precipitation.rain":"Chuva","biome.precipitation.snow":"Neve","biome.scale":"Escala","biome.scale.help":"Estica verticalmente o terreno. Valores menores produzem terrenos mais planos.","biome.spawners":"Geradores","biome.spawners.ambient":"Ambiente","biome.spawners.creature":"Criatura","biome.spawners.entry.maxCount":"Quantidade Máxima","biome.spawners.entry.minCount":"Quantidade Mínima","biome.spawners.entry.type":"Tipo","biome.spawners.entry.weight":"Peso","biome.spawners.misc":"Diversos","biome.spawners.monster":"Monstro","biome.spawners.water_ambient":"Ambiente Aquático","biome.spawners.water_creature":"Criatura Aquática","biome.starts.help":"Lista de características de estruturas configuradas.","biome.temperature":"Temperatura","biome.temperature_modifier":"Modificador da Temperatura","biome.temperature_modifier.frozen":"Congelado","biome.temperature_modifier.none":"Nenhum","block.block":"ID do Bloco","block.nbt":"NBT","block.state":"Estados do Bloco","block.tag":"Tag do Bloco","block_placer.column_placer.min_size":"Tamanho Mínimo","block_placer.type":"Tipo","block_state.Name":"Nome","block_state.Properties":"Propriedades","block_state_provider.rotated_block_provider.state":"Estado","block_state_provider.simple_state_provider.state":"Estado","block_state_provider.type":"Tipo","block_state_provider.weighted_state_provider.entries":"Entradas","block_state_provider.weighted_state_provider.entries.entry.data":"Estado","block_state_provider.weighted_state_provider.entries.entry.weight":"Peso","carver.config":"Configuração","carver.config.probability":"Probabilidade","carver.type":"Tipo","children.entry":"Entrada","condition.alternative.terms":"Termos","condition.block_state_property.block":"Bloco","condition.block_state_property.properties":"Estado do Bloco","condition.condition":"Condição","condition.damage_source":"Fonte do Dano","condition.entity_properties.entity":"Entidade","condition.entity_scores.entity":"Entidade","condition.entity_scores.scores":"Pontos","condition.entry":"Predicado","condition.inverted.term":"Termo","condition.item":"Item","condition.killed_by_player.inverse":"Inverter","condition.list":"Múltiplo","condition.location":"Localização","condition.location_check.offsetX":"Deslocamento X","condition.location_check.offsetY":"Deslocamento Y","condition.location_check.offsetZ":"Deslocamento Z","condition.object":"Simples","condition.random_chance.chance":"Chance","condition.random_chance_with_looting.chance":"Chance","condition.random_chance_with_looting.looting_multiplier":"Multiplicador de Pilhagem","condition.reference.name":"Nome do Predicado","condition.table_bonus.chances":"Chances","condition.table_bonus.chances.entry":"Chance","condition.table_bonus.enchantment":"Encantamento","condition.time_check.period":"Período","condition.time_check.period.help":"Se presente, o tempo será dividido em módulo por esse valor. Por exemplo, se definido como 24000, o valor funcionará em um período de dias.","condition.time_check.value":"Valor","condition.weather_check.raining":"Chovendo","condition.weather_check.thundering":"Trovejando","conditions":"Condições","conditions.entry":"Condição","conditions.list":"Condições","copy_source.block_entity":"Bloco Entidade","copy_source.direct_killer":"Assassino Direto","copy_source.killer":"Assassino","criterion.bee_nest_destroyed.block":"Bloco","criterion.bee_nest_destroyed.num_bees_inside":"Número de Abelhas Dentro","criterion.bred_animals.child":"Filho","criterion.bred_animals.parent":"Parente","criterion.bred_animals.partner":"Parceiro","criterion.brewed_potion.potion":"Poção","criterion.changed_dimension.from":"Do","criterion.changed_dimension.to":"Para","criterion.channeled_lightning.victims":"Vítimas","criterion.channeled_lightning.victims.entry":"Entidade","criterion.conditions":"Condição","criterion.construct_beacon.beacon_level":"Nível da Pirâmide","criterion.consume_item.item":"Item","criterion.cured_zombie_villager.villager":"Aldeão","criterion.cured_zombie_villager.zombie":"Zumbi","criterion.effects_changed.effects":"Efeitos","criterion.enchanted_item.item":"Item","criterion.enchanted_item.levels":"Nível de XP","criterion.enter_block.block":"Bloco","criterion.enter_block.state":"Estados","criterion.entity_hurt_player.damage":"Dano","criterion.entity_killed_player.entity":"Origem da Entidade","criterion.entity_killed_player.killing_blow":"Matando Golpe","criterion.filled_bucket.item":"Item","criterion.fishing_rod_hooked.entity":"Entidade Puxada","criterion.fishing_rod_hooked.item":"Item","criterion.hero_of_the_village.location":"Localização","criterion.inventory_changed.items":"Itens","criterion.inventory_changed.items.entry":"Item","criterion.inventory_changed.slots":"Slots","criterion.inventory_changed.slots.empty":"Slots vazios","criterion.inventory_changed.slots.full":"Slots cheios","criterion.inventory_changed.slots.occupied":"Slots Ocupados","criterion.item_durability_changed.delta":"Delta","criterion.item_durability_changed.durability":"Durabilidade","criterion.item_durability_changed.item":"Item","criterion.item_used_on_block.item":"Item","criterion.item_used_on_block.location":"Localização","criterion.killed_by_crossbow.unique_entity_types":"Quantidade de Tipos de Entidade Exclusivas","criterion.killed_by_crossbow.victims":"Vítimas","criterion.killed_by_crossbow.victims.entry":"Entidade","criterion.levitation.distance":"Distância","criterion.levitation.duration":"Duração","criterion.location.location":"Localização","criterion.nether_travel.distance":"Distância","criterion.player_hurt_entity.entity":"Vítima da Entidade","criterion.recipe_unlocked.recipe":"Receita","criterion.rod":"Vara","criterion.summoned_entity.entity":"Entidade","criterion.trigger":"Gatilho","damage.blocked":"Bloqueado","damage.dealt":"Dano Causado","damage.taken":"Dano Recebido","damage.type":"Tipo de Dano","damage_source.bypasses_armor":"Ignorar Armadura","damage_source.bypasses_invulnerability":"Vazio","damage_source.bypasses_magic":"Morrer de Fome","damage_source.direct_entity":"Indicação da Entidade","damage_source.is_explosion":"Explozão","damage_source.is_fire":"Fogo","damage_source.is_lightning":"Raio","damage_source.is_magic":"Mágica","damage_source.is_projectile":"Projétil","damage_source.source_entity":"Origem da entidade","dimension.overworld":"Mundo","dimension.the_end":"O fim","dimension.the_nether":"O Inferno","distance.absolute":"Absoluto","distance.horizontal":"Horizontal","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Afiação aquática","enchantment.bane_of_arthropods":"Maldição dos Artrópodes","enchantment.binding_curse":"Maldição da Vinculação","enchantment.blast_protection":"Proteção Contra Explosões","enchantment.channeling":"Canalização","enchantment.depth_strider":"Passos Profundos","enchantment.efficiency":"Eficiência","enchantment.feather_falling":"Queda Suave","enchantment.fire_aspect":"Aspecto de Fogo","enchantment.fire_protection":"Proteção contra Fogo","enchantment.flame":"Chama","enchantment.fortune":"Fortuna","enchantment.frost_walker":"Passos Gelados","enchantment.impaling":"Empalamento","enchantment.infinity":"Infinidade","enchantment.knockback":"Repulsão","enchantment.levels":"Níveis","enchantment.looting":"Saque","enchantment.loyalty":"Lealdade","enchantment.luck_of_the_sea":"Sorte do Mar","enchantment.lure":"Isca","enchantment.mending":"Remendo","enchantment.multishot":"Tiro múltiplo","enchantment.piercing":"Perfuração","enchantment.power":"Força","enchantment.projectile_protection":"Proteção Contra Projéteis","enchantment.protection":"Proteção","enchantment.punch":"Impacto","enchantment.quick_charge":"Carga Rápida","enchantment.respiration":"Respiração","enchantment.riptide":"Correnteza","enchantment.sharpness":"Afiação","enchantment.silk_touch":"Toque Suave","enchantment.smite":"Julgamento","enchantment.sweeping":"Alcance","enchantment.thorns":"Espinhos","enchantment.unbreaking":"Inquebrável","enchantment.vanishing_curse":"Maldição do Desaparecimento","entity.distance":"Distância","entity.effects":"Efeitos","entity.equipment":"Equipamento","entity.flags":"Bandeiras","entity.isBaby":"Bebê","entity.isOnFire":"Em chamas","entity.isSneaking":"Agachado","entity.isSprinting":"Correndo","entity.isSwimming":"Nadando","entity.location":"Localização","entity.nbt":"NBT","entity.player":"Jogador","entity.team":"Time","entity.type":"Entidade","entity_source.killer":"Assassino","entity_source.killer_player":"Jogador Assassino","entity_source.this":"Este","error":"Erro","false":"Falso","fluid.fluid":"ID do Fluido","fluid.state":"Estados do Fluido","fluid.tag":"Tag do Fluido","function.apply_bonus.enchantment":"Encantamento","function.apply_bonus.formula":"Fórmula","function.apply_bonus.formula.binomial_with_bonus_count":"Binomial com Quantidade Bônus","function.apply_bonus.formula.ore_drops":"Drop de Minério","function.apply_bonus.formula.uniform_bonus_count":"Quantidade Bônus Uniforme","function.apply_bonus.parameters.bonusMultiplier":"Multiplicador","function.apply_bonus.parameters.extra":"Extra","function.apply_bonus.parameters.probability":"Probabilidade","function.copy_name.source":"Origem","function.copy_state.block":"Bloco","function.copy_state.properties":"Propriedades","function.enchant_randomly.enchantments":"Encantamentos Opcionais","function.enchant_with_levels.levels":"Nívels","function.enchant_with_levels.treasure":"Tesouro","function.exploration_map.decoration":"Decoração","function.exploration_map.destination":"Destinatino","function.exploration_map.search_radius":"Raio de Busca (Chunks)","function.exploration_map.skip_existing_chunks":"Ignorar Chunks Existentes","function.exploration_map.zoom":"Zoom","function.function":"Função","function.looting_enchant.limit":"Limite","function.set_count.count":"Contagem","function.set_damage.damage":"Dano","function.set_data.data":"Dado","function.set_lore.lore":"SubNome","function.set_lore.replace":"Substituir","function.set_name.entity":"Entidade","function.set_name.name":"Nome","function.set_nbt.tag":"NBT","function.set_stew_effect.effects.entry.duration":"Duração","function.set_stew_effect.effects.entry.type":"Efeito","gamemode.adventure":"Aventura","gamemode.creative":"Criativo","gamemode.spectator":"Espectador","gamemode.survival":"Sobrevivência","hide_source":"Ocultar Origem","item.count":"Quantidade","item.durability":"Durabilidade","item.enchantments.entry":"Encantamentos","item.item":"ID do Item","item.nbt":"NBT","item.potion":"Porção","item.tag":"Tag do Item","location.biome":"Bioma","location.block":"Bloco","location.dimension":"Dimensão","location.feature":"Característica","location.fluid":"Fluido","location.light":"Luz","location.light.light":"Nível da Luz Visível","location.position":"Posição","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","loot_condition_type.alternative":"Alternativo (OU)","loot_condition_type.block_state_property":"Propriedade do Bloco","loot_condition_type.damage_source_properties":"Fonte do Dano","loot_condition_type.entity_properties":"Propriedade da Entidade","loot_condition_type.entity_scores":"Pontos da Entidade","loot_condition_type.inverted":"Invertido (NÃO)","loot_condition_type.killed_by_player":"Morto por Jogador","loot_condition_type.location_check":"Localização","loot_condition_type.match_tool":"Propriedade da Ferramenta","loot_condition_type.random_chance":"Chance aleatória","loot_condition_type.random_chance_with_looting":"Chance aleatória com Pilhagem","loot_condition_type.reference":"Referência","loot_condition_type.survives_explosion":"Sobrevive à Explosão","loot_condition_type.table_bonus":"Bônus de Mesa","loot_condition_type.time_check":"Tempo","loot_condition_type.weather_check":"Clima","loot_entry.item.name":"Nome","loot_entry.quality":"Qualidade","loot_entry.tag.expand":"Expandir","loot_entry.tag.expand.help":"Se desabilitado, a entrada retornará todo o conteúdo da tag, caso contrário, a entrada se comportará como várias entradas de itens","loot_entry.type":"Tipo","loot_entry.weight":"Peso","loot_function_type.apply_bonus":"Aplicar Bônus","loot_function_type.copy_name":"Copiar Nome","loot_function_type.copy_nbt":"Copiar NBT","loot_function_type.copy_state":"Copiar Estado do Bloco","loot_function_type.enchant_randomly":"Encantamento Aleatório","loot_function_type.enchant_with_levels":"Encantamento com Nível","loot_function_type.exploration_map":"Propriedades do Mapa de Exploração","loot_function_type.explosion_decay":"Decaimento da Explosão","loot_function_type.fill_player_head":"Completar com Cabeça de Jogador","loot_function_type.furnace_smelt":"Forno fundido","loot_function_type.limit_count":"Limite de Quantidade","loot_function_type.looting_enchant":"Encantamento Pilhagem","loot_function_type.set_attributes":"Definir Atributos","loot_function_type.set_contents":"Definir Conteúdos","loot_function_type.set_count":"Definir Quantidades","loot_function_type.set_damage":"Definir Dano","loot_function_type.set_data":"Definir Dados","loot_function_type.set_lore":"Definir SubNome","loot_function_type.set_name":"Definir Nome","loot_function_type.set_nbt":"Definir NBT","loot_function_type.set_stew_effect":"Definir Efeito da Porção","loot_pool.bonus_rolls":"Rodadas Bônus","loot_pool.rolls":"Rodadas","loot_pool.rolls.help":"A quantidade de entradas escolhidas aleatoriamente","loot_pool_entry_type.alternatives":"Alternativas","loot_pool_entry_type.alternatives.help":"Tests condições das entradas filhas e executa a primeira que pode ser executada","loot_pool_entry_type.dynamic":"Dinâmica","loot_pool_entry_type.dynamic.help":"Obtém drops específicas do bloco","loot_pool_entry_type.empty":"Vazio","loot_pool_entry_type.empty.help":"Não adiciona nada ao pool","loot_pool_entry_type.group":"Grupo","loot_pool_entry_type.group.help":"Executa todas as entradas filhas quando as próprias condições passam","loot_pool_entry_type.item":"Item","loot_pool_entry_type.item.help":"Adiciona um único item","loot_pool_entry_type.loot_table":"Tabela de Itens","loot_pool_entry_type.loot_table.help":"Adiciona o conteúdo de outra tabela de itens","loot_pool_entry_type.sequence":"Sequência","loot_pool_entry_type.sequence.help":"Executa entradas filhas até a primeira que não pode ser executada devido as condições","loot_pool_entry_type.tag":"Tag do Item","luck_based":"Baseado na Sorte","nbt_operation.op":"Operação","nbt_operation.op.append":"Acrescentar","nbt_operation.op.merge":"Mesclar","nbt_operation.op.replace":"Substituir","nbt_operation.source":"Origem","nbt_operation.target":"Alvo","player.advancements":"Conquistas","player.gamemode":"Modo de Jogo","player.level":"Nível de EXP","player.recipes":"Receitas","player.stats":"Estatísticas","range.binomial":"Binomial","range.max":"Máximo","range.min":"Mínimo","range.n":"n","range.number":"Exato","range.object":"Alcance","range.p":"p","range.uniform":"Uniforme","requirements":"Exigências","slot.chest":"Baú","slot.feet":"Pé","slot.head":"Cabeça","slot.legs":"Pernas","slot.mainhand":"Mão Principal","slot.offhand":"Mão Oposta à Principal","statistic.stat":"Estatística","statistic.type":"Tipo","statistic.type.broken":"Quebrado","statistic.type.crafted":"Craftado","statistic.type.custom":"Personalizado","statistic.type.dropped":"Dropado","statistic.type.killed":"Morto","statistic.type.killedByTeam":"Porto por Time","statistic.type.killed_by":"Morto por","statistic.type.mined":"Minerado","statistic.type.picked_up":"Pegou","statistic.type.teamkill":"Time Morto","statistic.type.used":"Usado","statistic.value":"Valor","status_effect.ambient":"Ambiente","status_effect.amplifier":"Amplificado","status_effect.duration":"Duração","status_effect.visible":"Visível","table.type":"Tipo","table.type.block":"Bloco","table.type.chest":"Baú","table.type.empty":"Vazio","table.type.entity":"Entidade","table.type.fishing":"Pescaria","table.type.generic":"Genérico","true":"Verdadeiro","unset":"Desativar"} \ No newline at end of file diff --git a/locales/ru.json b/locales/ru.json new file mode 100644 index 00000000..d0c356ba --- /dev/null +++ b/locales/ru.json @@ -0,0 +1 @@ +{"advancement.criteria":"Условие","advancement.display":"Отображение","advancement.display.announce_to_chat":"Сообщение в чате","advancement.display.background":"Фон","advancement.display.description":"Описание","advancement.display.frame":"Рамка","advancement.display.frame.challenge":"Испытание","advancement.display.frame.goal":"Цель","advancement.display.frame.task":"Обычная","advancement.display.help":"Если указано, достижение будет отображаться в интерфейсе достижений.","advancement.display.hidden":"Скрыто","advancement.display.icon":"Значок","advancement.display.icon.item":"Предмет значка","advancement.display.icon.nbt":"NBT значка","advancement.display.show_toast":"Всплывающее уведомление","advancement.display.title":"Заголовок","advancement.parent":"Предок","advancement.rewards":"Награды","advancement.rewards.experience":"Опыт","advancement.rewards.function":"Функция","advancement.rewards.loot":"Таблицы достижений","advancement.rewards.recipes":"Рецепты","advancement_trigger.bee_nest_destroyed":"Разрушил пчелиное гнездо","advancement_trigger.bred_animals":"Свёл животных","advancement_trigger.brewed_potion":"Сварил зелье","advancement_trigger.changed_dimension":"Сменил измерение","advancement_trigger.channeled_lightning":"Поразил «Громовержцем»","advancement_trigger.construct_beacon":"Построил маяк","advancement_trigger.consume_item":"Съел/Выпил предмет","advancement_trigger.cured_zombie_villager":"Излечил зомби-крестьянина","advancement_trigger.effects_changed":"Эффекты изменены","advancement_trigger.enchanted_item":"Зачаровал предмет","advancement_trigger.enter_block":"Находится в блоке","advancement_trigger.entity_hurt_player":"Получил урон","advancement_trigger.entity_killed_player":"Убит сущностью","advancement_trigger.filled_bucket":"Наполнил ведро","advancement_trigger.fishing_rod_hooked":"Подцепил крючком","advancement_trigger.hero_of_the_village":"Герой деревни","advancement_trigger.impossible":"Невозможный","advancement_trigger.inventory_changed":"Инвентарь изменён","advancement_trigger.item_durability_changed":"Прочность предмета изменена","advancement_trigger.item_used_on_block":"Использовал предмет на блоке","advancement_trigger.killed_by_crossbow":"Убил арбалетом","advancement_trigger.levitation":"Левитация","advancement_trigger.location":"Местоположение","advancement_trigger.nether_travel":"Переместился через Незер","advancement_trigger.placed_block":"Поставил блок","advancement_trigger.player_generates_container_loot":"Сгенерировал содержимое блока","advancement_trigger.player_hurt_entity":"Нанёс урон","advancement_trigger.player_killed_entity":"Убил сущность","advancement_trigger.recipe_unlocked":"Разблокировал рецепт","advancement_trigger.safely_harvest_honey":"Безопасно собрал мёд","advancement_trigger.shot_crossbow":"Выстрелил из арбалета","advancement_trigger.slept_in_bed":"Лёг на кровать","advancement_trigger.slide_down_block":"Скользит вниз по блоку","advancement_trigger.summoned_entity":"Призвал сущность","advancement_trigger.tame_animal":"Приручил животное","advancement_trigger.target_hit":"Попадание","advancement_trigger.thrown_item_picked_up_by_entity":"Выкинутый предмет подобран сущностью","advancement_trigger.tick":"Такт","advancement_trigger.used_ender_eye":"Использовал око Эндера","advancement_trigger.used_totem":"Использовал тотем","advancement_trigger.villager_trade":"Поторговал с крестьянином","advancement_trigger.voluntary_exile":"Вызвал рейд","attribute.generic_armor":"Броня","attribute.generic_armor_toughness":"Твёрдость брони","attribute.generic_attack_damage":"Урон","attribute.generic_attack_knockback":"Отбрасывание","attribute.generic_attack_speed":"Скорость атаки","attribute.generic_flying_speed":"Скорость полёта","attribute.generic_follow_range":"Диапазон преследования моба","attribute.generic_knockback_resistance":"Сопротивление отбрасыванию","attribute.generic_luck":"Удача","attribute.generic_max_health":"Максимальное здоровье","attribute.generic_movement_speed":"Скорость","attribute.horse.jump_strength":"Сила прыжка лошади","attribute.zombie.spawn_reinforcements":"Подкрепление зомби","attribute_modifier.amount":"Количество","attribute_modifier.attribute":"Атрибут","attribute_modifier.name":"Название","attribute_modifier.operation":"Действие","attribute_modifier.operation.addition":"Прибавление","attribute_modifier.operation.multiply_base":"Умножение базового","attribute_modifier.operation.multiply_total":"Умножение общего","attribute_modifier.slot":"Ячейки","attribute_modifier.slot.list":"Несколько","attribute_modifier.slot.string":"Одна","badge.experimental":"Экспериментальный","badge.unstable":"Нестабильный","biome.carvers":"Полости","biome.carvers.air":"Воздух","biome.carvers.liquid":"Жидкость","biome.category":"Категория","biome.creature_spawn_probability":"Шанс появления пассивных мобов","biome.depth":"Глубина","biome.depth.help":"Поднимает или опускает рельеф местности. Положительные значения считаются сушей, а отрицательные — океанами.","biome.downfall":"Влажность","biome.effects":"Эффекты","biome.effects.additions_sound":"Дополнительные звуки","biome.effects.additions_sound.sound":"Звук","biome.effects.additions_sound.tick_chance":"Шанс за такт","biome.effects.ambient_sound":"Звук окружения","biome.effects.fog_color":"Цвет тумана","biome.effects.foliage_color":"Цвет листьев","biome.effects.grass_color":"Цвет травы","biome.effects.grass_color_modifier":"Модификатор цвета травы","biome.effects.grass_color_modifier.dark_forest":"Тёмный лес","biome.effects.grass_color_modifier.none":"Нет","biome.effects.grass_color_modifier.swamp":"Болото","biome.effects.mood_sound":"Пещерный звук","biome.effects.mood_sound.block_search_extent":"Радиус поиска позиции","biome.effects.mood_sound.offset":"Смещение","biome.effects.mood_sound.sound":"Звук","biome.effects.mood_sound.tick_delay":"Задержка в тактах","biome.effects.music":"Музыка","biome.effects.music.max_delay":"Максимальная задержка","biome.effects.music.min_delay":"Минимальная задержка","biome.effects.music.replace_current_music":"Замена играющей музыки","biome.effects.music.sound":"Звук","biome.effects.particle":"Частица","biome.effects.particle.options":"Параметры","biome.effects.particle.options.type":"Тип частицы","biome.effects.particle.probability":"Шанс","biome.effects.sky_color":"Цвет неба","biome.effects.water_color":"Цвет воды","biome.effects.water_fog_color":"Цвет подводного тумана","biome.features":"Натуральные структуры","biome.features.entry":"Шаг %0%","biome.features.entry.entry":"Структура","biome.player_spawn_friendly":"Дружественное появление игрока","biome.player_spawn_friendly.help":"Если «Да», точка появления в мире предпочтительно будет в этом биоме.","biome.precipitation":"Осадки","biome.precipitation.none":"Нет","biome.precipitation.rain":"Дождь","biome.precipitation.snow":"Снег","biome.scale":"Масштаб","biome.scale.help":"Растягивает местность по вертикали. Чем меньше значение, тем ровнее местность.","biome.spawn_costs":"Цена Появления","biome.spawn_costs.charge":"Заряд","biome.spawn_costs.energy_budget":"Бюджет Энергии","biome.spawners":"Появление мобов","biome.spawners.ambient":"Окружение","biome.spawners.creature":"Пассивные","biome.spawners.entry":"Появление","biome.spawners.entry.maxCount":"Максимальное количество","biome.spawners.entry.minCount":"Минимальное количество","biome.spawners.entry.type":"Тип","biome.spawners.entry.weight":"Вес","biome.spawners.misc":"Другие","biome.spawners.monster":"Монстр","biome.spawners.water_ambient":"Водное окружение","biome.spawners.water_creature":"Водные пассивные","biome.starts":"Начала строений","biome.starts.entry":"Строение","biome.starts.help":"Список настроенных структур.","biome.surface_builder":"Построитель поверхности","biome.temperature":"Температура","biome.temperature_modifier":"Модификатор температуры","biome.temperature_modifier.frozen":"Мороз","biome.temperature_modifier.none":"Нет","block.block":"ID блока","block.nbt":"NBT","block.state":"Состояние блока","block.tag":"Тег блоков","block_placer.column_placer.extra_size":"Дополнительный размер","block_placer.column_placer.min_size":"Минимальный размер","block_placer.type":"Тип","block_state.Name":"Блок","block_state.Properties":"Свойства","block_state_provider.rotated_block_provider.state":"Состояние","block_state_provider.simple_state_provider.state":"Состояние","block_state_provider.type":"Тип","block_state_provider.weighted_state_provider.entries":"Элементы","block_state_provider.weighted_state_provider.entries.entry.data":"Состояние","block_state_provider.weighted_state_provider.entries.entry.weight":"Вес","carver.config":"Параметры","carver.config.probability":"Шанс","carver.type":"Тип","children":"Потомки","children.entry":"Элемент","condition.alternative.terms":"Условия","condition.block_state_property.block":"Блок","condition.block_state_property.properties":"Состояние блока","condition.condition":"Условие","condition.damage_source":"Повреждение","condition.entity_properties.entity":"Сущность","condition.entity_scores.entity":"Сущность","condition.entity_scores.scores":"Счёты","condition.entry":"Предикат","condition.inverted.term":"Выражение","condition.item":"Предмет","condition.killed_by_player.inverse":"Инвертировать","condition.list":"Несколько","condition.location":"Местоположение","condition.location_check.offsetX":"Смещение по X","condition.location_check.offsetY":"Смещение по Y","condition.location_check.offsetZ":"Смещение по Z","condition.object":"Простой","condition.random_chance.chance":"Шанс","condition.random_chance_with_looting.chance":"Шанс","condition.random_chance_with_looting.looting_multiplier":"Множитель «Добычи»","condition.reference.name":"ID предиката","condition.table_bonus.chances":"Шансы","condition.table_bonus.chances.entry":"Шанс","condition.table_bonus.enchantment":"Чары","condition.time_check.period":"Период","condition.time_check.period.help":"Если задан, время будет получено взятием остатка от деления времени на заданный период.","condition.time_check.value":"Значение","condition.value_check.value":"Значение","condition.weather_check.raining":"Дождь","condition.weather_check.thundering":"Гроза","conditions":"Условия","conditions.entry":"Условие","conditions.list":"Условия","conditions.object":"Устаревший","copy_source.block_entity":"Блок-сущность","copy_source.direct_killer":"Убийца-причина урона","copy_source.killer":"Убийца","copy_source.killer_player":"Игрок-убийца","copy_source.this":"Текущая сущность","criterion.bee_nest_destroyed.block":"Блок","criterion.bee_nest_destroyed.num_bees_inside":"Пчёл внутри","criterion.bred_animals.child":"Потомок","criterion.bred_animals.parent":"Предок","criterion.bred_animals.partner":"Партнёр","criterion.brewed_potion.potion":"Зелье","criterion.changed_dimension.from":"Откуда","criterion.changed_dimension.to":"Куда","criterion.channeled_lightning.victims":"Жертвы","criterion.channeled_lightning.victims.entry":"Сущность","criterion.conditions":"Условия","criterion.construct_beacon.beacon_level":"Уровень конструкции","criterion.consume_item.item":"Предмет","criterion.cured_zombie_villager.villager":"Крестьянин","criterion.cured_zombie_villager.zombie":"Зомби","criterion.effects_changed.effects":"Эффект","criterion.enchanted_item.item":"Предмет","criterion.enchanted_item.levels":"Уровень","criterion.enter_block.block":"Блок","criterion.enter_block.state":"Состояние","criterion.entity_hurt_player.damage":"Урон","criterion.entity_killed_player.entity":"Сущность-источник","criterion.entity_killed_player.killing_blow":"Смертельный удар","criterion.filled_bucket.item":"Предмет","criterion.fishing_rod_hooked.entity":"Подтянутая сущность","criterion.fishing_rod_hooked.item":"Предмет","criterion.hero_of_the_village.location":"Местоположение","criterion.inventory_changed.items":"Предметы","criterion.inventory_changed.items.entry":"Предмет","criterion.inventory_changed.slots":"Ячейки","criterion.inventory_changed.slots.empty":"Пустых ячеек","criterion.inventory_changed.slots.full":"Полных ячеек","criterion.inventory_changed.slots.occupied":"Занятых ячеек","criterion.item_durability_changed.delta":"Разница","criterion.item_durability_changed.durability":"Прочность","criterion.item_durability_changed.item":"Предмет","criterion.item_used_on_block.item":"Предмет","criterion.item_used_on_block.location":"Местоположение","criterion.killed_by_crossbow.unique_entity_types":"Уникальных типов сущностей","criterion.killed_by_crossbow.victims":"Жертвы","criterion.killed_by_crossbow.victims.entry":"Сущность","criterion.levitation.distance":"Расстояние","criterion.levitation.duration":"Длительность","criterion.location.location":"Местоположение","criterion.nether_travel.distance":"Расстояние","criterion.nether_travel.entered":"Местоположение входа","criterion.nether_travel.exited":"Местоположение выхода","criterion.placed_block.block":"Блок","criterion.placed_block.item":"Предмет","criterion.placed_block.location":"Местоположение","criterion.placed_block.state":"Состояние","criterion.player":"Игрок","criterion.player_generates_container_loot.loot_table":"Таблица добычи","criterion.player_hurt_entity.damage":"Урон","criterion.player_hurt_entity.entity":"Сущность-жертва","criterion.player_killed_entity.entity":"Сущность-жертва","criterion.player_killed_entity.killing_blow":"Смертельный удар","criterion.recipe_unlocked.recipe":"Рецепт","criterion.rod":"Удочка","criterion.safely_harvest_honey.block":"Блок","criterion.safely_harvest_honey.item":"Предмет","criterion.shot_crossbow.item":"Предмет","criterion.slept_in_bed.location":"Местоположение","criterion.slide_down_block.block":"Блок","criterion.summoned_entity.entity":"Сущность","criterion.tame_animal.entity":"Животное","criterion.target_hit.projectile":"Снаряд","criterion.target_hit.shooter":"Стрелок","criterion.target_hit.signal_strength":"Мощность сигнала","criterion.thrown_item_picked_up_by_entity.entity":"Сущность","criterion.thrown_item_picked_up_by_entity.item":"Предмет","criterion.trigger":"Триггер","criterion.used_ender_eye.distance":"Расстояние","criterion.used_totem.item":"Предмет тотема","criterion.villager_trade.item":"Купленный предмет","criterion.villager_trade.villager":"Крестьянин","criterion.voluntary_exile.location":"Местоположение","damage.blocked":"Заблокирован","damage.dealt":"Нанесённый урон","damage.source_entity":"Сущность-источник","damage.taken":"Полученный урон","damage.type":"Тип урона","damage_source.bypasses_armor":"Обход брони","damage_source.bypasses_invulnerability":"Бездна","damage_source.bypasses_magic":"Голод","damage_source.direct_entity":"Сущность-причина урона","damage_source.is_explosion":"Взрыв","damage_source.is_fire":"Огонь","damage_source.is_lightning":"Молния","damage_source.is_magic":"Магия","damage_source.is_projectile":"Снаряд","damage_source.source_entity":"Сущность-источник урона","decorator.carving_mask.step":"Этап генерации","decorator.config":"Параметры","decorator.count.count":"Количество","decorator.count_extra.count":"Количество","decorator.count_extra.extra_chance":"Дополнительный шанс","decorator.count_extra.extra_count":"Дополнительное количество","decorator.count_multilayer.count":"Количество","decorator.count_noise.above_noise":"Верхний шум","decorator.count_noise.below_noise":"Нижний шум","decorator.count_noise.noise_level":"Уровень шума","decorator.count_noise_biased.noise_factor":"Множитель шума","decorator.count_noise_biased.noise_offset":"Смещение шума","decorator.count_noise_biased.noise_to_count_ratio":"Соотношение шума к количеству","decorator.decorated.inner":"Внутренний","decorator.decorated.outer":"Внешний","decorator.depth_average.baseline":"Начальное значение","decorator.depth_average.spread":"Распространение","decorator.glowstone.count":"Количество","decorator.type":"Тип","dimension":"Измерение","dimension.generator":"Генератор","dimension.generator.biome_source":"Источник Биомов","dimension.overworld":"Обычный мир","dimension.the_end":"Энд","dimension.the_nether":"Незер","dimension.type":"Параметры измерения","dimension.type.object":"Особенный","dimension.type.string":"Предустановка","dimension_type.ambient_light":"Свет окружения","dimension_type.ambient_light.help":"Значение от 0 до 1.","dimension_type.bed_works":"Работает Кровать","dimension_type.bed_works.help":"Если значение установлено в true, игроки могут использовать кровати для того, чтобы устанавливать свою точку возрождения и продвинуться во времени. Если значение установлено в false, кровать будут взрываться при использовании.","dimension_type.coordinate_scale":"Масштаб координат","dimension_type.coordinate_scale.help":"Множитель, который применяется к координатам при перемезении между измерениями через портал или при помощи команды /execute.","dimension_type.effects":"Эффекты","dimension_type.effects.help":"Эффекты неба","dimension_type.effects.overworld":"Верхний Мир","dimension_type.effects.the_end":"Край","dimension_type.effects.the_nether":"Ад","dimension_type.fixed_time":"Фиксированное время","dimension_type.fixed_time.help":"При указании значения солнце будет находится в фиксированном положении.","dimension_type.has_ceiling":"Есть крыша из бедрока","dimension_type.has_raids":"Имеет Рейды","dimension_type.has_skylight":"Есть свет неба","dimension_type.infiniburn":"Вечногорящие блоки","dimension_type.logical_height":"Логичная Высота","dimension_type.name":"Название","dimension_type.natural":"Земное","dimension_type.natural.help":"Если «Да», из порталов будут появляться зомбифицированные пиглины. Если «Нет», компас и часы будут крутиться случайным образом.","dimension_type.piglin_safe":"Пиглины не превращаются в зомби","dimension_type.respawn_anchor_works":"Якорь Возрождения Работает","dimension_type.ultrawarm":"Горячее","dimension_type.ultrawarm.help":"Определяет, испаряется ли вода и высыхают ли губки.","distance.absolute":"Абсолютное","distance.horizontal":"Горизонтальное","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"Подводник","enchantment.bane_of_arthropods":"Бич членистоногих","enchantment.binding_curse":"Проклятие несъёмности","enchantment.blast_protection":"Взрывоустойчивость","enchantment.channeling":"Громовержец","enchantment.depth_strider":"Подводная ходьба","enchantment.efficiency":"Эффективность","enchantment.enchantment":"Зачарование","enchantment.feather_falling":"Невесомость","enchantment.fire_aspect":"Заговор огня","enchantment.fire_protection":"Огнеупорность","enchantment.flame":"Горящая стрела","enchantment.fortune":"Удача","enchantment.frost_walker":"Ледоход","enchantment.impaling":"Пронзатель","enchantment.infinity":"Бесконечность","enchantment.knockback":"Отдача","enchantment.levels":"Уровень","enchantment.looting":"Добыча","enchantment.loyalty":"Верность","enchantment.luck_of_the_sea":"Везучий рыбак","enchantment.lure":"Приманка","enchantment.mending":"Починка","enchantment.multishot":"Тройной выстрел","enchantment.piercing":"Пронзающая стрела","enchantment.power":"Сила","enchantment.projectile_protection":"Защита от снарядов","enchantment.protection":"Защита","enchantment.punch":"Откидывание","enchantment.quick_charge":"Быстрая перезарядка","enchantment.respiration":"Подводное дыхание","enchantment.riptide":"Тягун","enchantment.sharpness":"Острота","enchantment.silk_touch":"Шёлковое касание","enchantment.smite":"Небесная кара","enchantment.sweeping":"Разящий клинок","enchantment.thorns":"Шипы","enchantment.unbreaking":"Прочность","enchantment.vanishing_curse":"Проклятие утраты","entity.distance":"Расстояние","entity.effects":"Эффекты","entity.equipment":"Снаряжение","entity.fishing_hook":"Поплавок","entity.fishing_hook.in_open_water":"В открытой воде","entity.flags":"Состояние","entity.isBaby":"Ребёнок","entity.isOnFire":"Горит","entity.isSneaking":"Крадётся","entity.isSprinting":"Бежит","entity.isSwimming":"Плывёт","entity.location":"Местоположение","entity.nbt":"NBT","entity.player":"Игрок","entity.targeted_entity":"Целевая сущность","entity.team":"Команда","entity.type":"Сущность","entity.vehicle":"Транспорт","entity_source.killer":"Убийца","entity_source.killer_player":"Игрок-убийца","entity_source.this":"Текущая","entry":"Элемент","error":"Ошибка","error.expected_boolean":"Ожидался логический тип данных (Boolean)","error.expected_integer":"Ожидалось целое число (Integer)","error.expected_json":"Ожидался JSON","error.expected_list":"Ожидался массив (Array)","error.expected_number":"Ожидалось число","error.expected_object":"Ожидался объект","error.expected_range":"Ожидался диапазон","error.expected_string":"Ожидалась строка","error.expected_uniform_int":"Ожидалось целое число (Uniform integer)","error.invalid_binomial":"Диапазон не может быть биноминального типа","error.invalid_empty_list":"Массив не может быть пустым","error.invalid_empty_string":"Строка не может быть пустой","error.invalid_enum_option":"Неверное значение \"%0%\"","error.invalid_exact":"Диапазон не может быть константой","error.invalid_number_range.between":"Ожидалось число в промежутке от %0% до %1%","error.invalid_pattern":"Неверная строка: %0%","error.recipe.invalid_key":"только один символ разрешён как ключ","false":"Нет","feature.block_pile.state_provider":"Состояние","feature.config":"Настройки","feature.flower.blacklist":"Чёрный Список","feature.flower.block_placer":"Размещатель Блоков","feature.flower.can_replace":"Может заменить","feature.flower.need_water":"Нужна Вода","feature.flower.project":"Проект","feature.flower.state_provider":"Состояние","feature.flower.tries":"Попыток","feature.flower.whitelist":"Белый Список","feature.flower.xspread":"Распространение X","feature.flower.yspread":"Распространение Y","feature.flower.zspread":"Распространение Z","feature.object":"Особенный","feature.random_patch.blacklist":"Чёрный Список","feature.random_patch.block_placer":"Размещение Блоков","feature.random_patch.can_replace":"Может Заменить","feature.random_patch.need_water":"Требуется Вода","feature.random_patch.project":"Направленно","feature.random_patch.state_provider":"Состояние","feature.random_patch.tries":"Попыток","feature.random_patch.whitelist":"Белый Список","feature.random_patch.xspread":"Распространение X","feature.random_patch.yspread":"Распространение Y","feature.random_patch.zspread":"Распространение Z","feature.simple_random_selector.features.entry":"Структура","feature.string":"Упоминание","feature.tree.decorators":"Декораторы","feature.tree.decorators.entry":"Декоратор Деревьев","feature.tree.foliage_placer":"Распределение листьев","feature.tree.heightmap":"Карта Высоты","feature.tree.ignore_vines":"Игнорировать Лианы","feature.tree.leaves_provider":"Листья","feature.tree.max_water_depth":"Максимальная Глубина Воды","feature.tree.minimum_size":"Минимальный Размер","feature.tree.minimum_size.limit":"Лимит","feature.tree.minimum_size.lower_size":"Низкий Размер","feature.tree.minimum_size.middle_size":"Средний Размер","feature.tree.minimum_size.type":"Минимальный Размер","feature.tree.minimum_size.upper_limit":"Верхняя Граница","feature.tree.minimum_size.upper_size":"Высокий Размер","feature.tree.trunk_placer":"Распределение Обрезки","feature.tree.trunk_provider":"Обрезание Деревьев","feature.type":"Тип","fluid.fluid":"ID жидкости","fluid.state":"Состояние жидкости","fluid.tag":"Тег жидкостей","function.apply_bonus.enchantment":"Зачарование","function.apply_bonus.formula":"Формула","function.apply_bonus.formula.binomial_with_bonus_count":"Биноминальное распределение с Бонусным количеством","function.apply_bonus.formula.ore_drops":"Дроп руд","function.apply_bonus.formula.uniform_bonus_count":"Равномерное распределение с бонусным количеством","function.apply_bonus.parameters":"Параметры","function.apply_bonus.parameters.bonusMultiplier":"Множитель","function.apply_bonus.parameters.extra":"Дополнительное значение","function.apply_bonus.parameters.probability":"Вероятность","function.copy_name.source":"Источник","function.copy_nbt.ops":"Операции с NBT","function.copy_nbt.ops.entry":"Операция","function.copy_nbt.source":"Источник","function.copy_state.block":"Блок","function.copy_state.properties":"Свойства","function.copy_state.properties.entry":"Свойство","function.enchant_randomly.enchantments":"Необязательные зачарования","function.enchant_randomly.enchantments.entry":"Зачарование","function.enchant_with_levels.levels":"Уровень","function.enchant_with_levels.treasure":"Зачарования-сокровища","function.exploration_map.decoration":"Значок","function.exploration_map.destination":"Назначение","function.exploration_map.search_radius":"Радиус поиска (в чанках)","function.exploration_map.skip_existing_chunks":"Не искать в существующих чанках","function.exploration_map.zoom":"Уровень приближения","function.fill_player_head.entity":"Сущность","function.function":"Функция","function.limit_count.limit":"Лимит","function.looting_enchant.count":"Количество","function.looting_enchant.limit":"Лимит","function.set_attributes.modifiers":"Модификаторы","function.set_attributes.modifiers.entry":"Модификатор","function.set_contents.entries":"Содержание","function.set_contents.entries.entry":"Элемент","function.set_count.count":"Количество","function.set_damage.damage":"Повреждение","function.set_data.data":"Данные","function.set_loot_table.name":"Название Таблицы дропа","function.set_loot_table.seed":"Сид","function.set_lore.entity":"Сущность","function.set_lore.lore":"Описание","function.set_lore.lore.entry":"Строка","function.set_lore.replace":"Заменить","function.set_name.entity":"Сущность","function.set_name.name":"Название","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"Эффекты","function.set_stew_effect.effects.entry":"Эффект","function.set_stew_effect.effects.entry.duration":"Длительность","function.set_stew_effect.effects.entry.type":"Эффект","functions":"Функции","functions.entry":"Функция","gamemode.adventure":"Приключение","gamemode.creative":"Творческий","gamemode.spectator":"Наблюдатель","gamemode.survival":"Выживание","generator.biome_source.biome":"Биом","generator.biome_source.biomes":"Биомы","generator.biome_source.large_biomes":"Большие биомы","generator.biome_source.legacy_biome_init_layer":"Старый слой инициализации биомов","generator.biome_source.preset":"Шаблон биомов","generator.biome_source.preset.nether":"Ад","generator.biome_source.scale":"Масштаб","generator.biome_source.seed":"Ключ генератора биомов","generator.biome_source.type":"Источник биомов","generator.seed":"Ключ генератора измерения","generator.settings":"Настройки генератора","generator.settings.biome":"Биом","generator.settings.lakes":"Озёра","generator.settings.layers":"Слои","generator.settings.layers.entry":"Слой","generator.settings.layers.entry.block":"ID блока","generator.settings.layers.entry.height":"Высота","generator.settings.object":"Особенный","generator.settings.presets.amplified":"Расширенный","generator.settings.presets.caves":"Пещеры","generator.settings.presets.end":"Край","generator.settings.presets.floating_islands":"Парящие острова","generator.settings.presets.nether":"Ад","generator.settings.presets.overworld":"Верхний мир","generator.settings.string":"Шаблон","generator.settings.structures":"Структуры","generator.settings.structures.stronghold":"Крепость (Портал в Край)","generator.settings.structures.stronghold.count":"Количество","generator.settings.structures.stronghold.distance":"Расстояние","generator.settings.structures.stronghold.spread":"Распределение","generator.settings.structures.structures":"Структуры","generator.type":"Тип генератора","generator_biome.biome":"Биом","generator_biome.parameters":"Параметры","generator_biome.parameters.altitude":"Альтитуда","generator_biome.parameters.help":"Эти параметры определяют расположение биома. Каждый биом должен иметь уникальную комбинацию параметров. Биомы с похожими значениями будут генерироваться рядом.","generator_biome.parameters.humidity":"Влажность","generator_biome.parameters.offset":"Смещение","generator_biome.parameters.temperature":"Температура","generator_biome.parameters.weirdness":"Странность","generator_structure.salt":"Соль","generator_structure.separation":"Изоляция","generator_structure.separation.help":"Минимальное расстояние в чанках между двумя структурами этого типа. Должно быть меньше чем интервал.","generator_structure.spacing":"Интервал","generator_structure.spacing.help":"Среднее расстояние в чанках между двумя структурами этого типа.","hide_source":"Скрыть источник","item.count":"Количество","item.durability":"Прочность","item.enchantments":"Зачарования","item.enchantments.entry":"Чары","item.item":"ID предмета","item.nbt":"NBT","item.potion":"Зелье","item.tag":"Тег предметов","key.advancements":"Достижения","key.attack":"Атаковать/Разрушить","key.back":"Идти назад","key.chat":"Открыть чат","key.command":"Открыть команды","key.drop":"Выбросить выбранный предмет","key.forward":"Идти вперёд","key.fullscreen":"Включить полноэкранный режим","key.hotbar.1":"Слот быстрого доступа 1","key.hotbar.2":"Слот быстрого доступа 2","key.hotbar.3":"Слот быстрого доступа 3","key.hotbar.4":"Слот быстрого доступа 4","key.hotbar.5":"Слот быстрого доступа 5","key.hotbar.6":"Слот быстрого доступа 6","key.hotbar.7":"Слот быстрого доступа 7","key.hotbar.8":"Слот быстрого доступа 8","key.hotbar.9":"Слот быстрого доступа 9","key.inventory":"Открыть/Закрыть инвентарь","key.jump":"Прыжок","key.left":"Идти влево","key.loadToolbarActivator":"Клавиша загрузки панели быстрого доступа","key.pickItem":"Выбрать блок","key.playerlist":"Список игроков","key.right":"Идти вправо","key.saveToolbarActivator":"Клавиша сохранения панели быстрого доступа","key.screenshot":"Сделать снимок экрана","key.smoothCamera":"Включить плавную камеру","key.sneak":"Присесть","key.spectatorOutlines":"Подсветить игроков (Режим наблюдателя)","key.sprint":"Бег","key.swapOffhand":"Переложить предмет в руках","key.togglePerspective":"Сменить перспективу","key.use":"Использовать предмет/Поставить блок","location.biome":"Биом","location.block":"Блок","location.dimension":"Измерение","location.feature":"Строение","location.fluid":"Жидкость","location.light":"Освещённость","location.light.light":"Уровень освещённости","location.position":"Позиция","location.position.x":"X","location.position.y":"Y","location.position.z":"Z","location.smokey":"Задымлённое","loot_condition_type.alternative":"Альтернатива (ИЛИ)","loot_condition_type.block_state_property":"Свойства блока","loot_condition_type.damage_source_properties":"Источник урона","loot_condition_type.entity_properties":"Свойства сущности","loot_condition_type.entity_scores":"Счёты сущности","loot_condition_type.inverted":"Инвертирование (НЕ)","loot_condition_type.killed_by_player":"Убит игроком","loot_condition_type.location_check":"Местоположение","loot_condition_type.match_tool":"Свойства инструмента","loot_condition_type.random_chance":"Случайность","loot_condition_type.random_chance_with_looting":"Случайность с «Добычей»","loot_condition_type.reference":"Предикат","loot_condition_type.survives_explosion":"Переживает взрыв","loot_condition_type.table_bonus":"Бонус таблицы","loot_condition_type.time_check":"Время","loot_condition_type.weather_check":"Погода","loot_entry.dynamic.name":"Название","loot_entry.item.name":"ID","loot_entry.loot_table.name":"Название Таблицы добычи","loot_entry.quality":"Качество","loot_entry.tag.expand":"Отдельно","loot_entry.tag.expand.help":"Если отдельно, то действует как множество записей каждого предмета из тега, иначе возвращает всё содержимое тега.","loot_entry.tag.name":"Название Тега предмета","loot_entry.type":"Тип","loot_entry.weight":"Вес","loot_function_type.apply_bonus":"Применить бонус","loot_function_type.copy_name":"Скопировать название","loot_function_type.copy_nbt":"Скопировать NBT","loot_function_type.copy_state":"Скопировать состояния блока","loot_function_type.enchant_randomly":"Наложить случайные чары","loot_function_type.enchant_with_levels":"Наложить чары с уровнем","loot_function_type.exploration_map":"Задать свойства карты исследователя","loot_function_type.explosion_decay":"Разрушить взрывом","loot_function_type.fill_player_head":"Задать скин голове игрока","loot_function_type.furnace_smelt":"Расплавить в печи","loot_function_type.limit_count":"Ограничить количество","loot_function_type.looting_enchant":"Применить чары «Добыча»","loot_function_type.set_attributes":"Задать атрибуты","loot_function_type.set_contents":"Задать содержимое","loot_function_type.set_count":"Задать количество","loot_function_type.set_damage":"Задать повреждение","loot_function_type.set_data":"Задать данные","loot_function_type.set_loot_table":"Установить Таблицу добычи","loot_function_type.set_lore":"Задать описание","loot_function_type.set_name":"Задать название","loot_function_type.set_nbt":"Задать NBT","loot_function_type.set_stew_effect":"Задать эффект загадочного рагу","loot_pool.bonus_rolls":"Бонусных бросков","loot_pool.entries":"Элементы","loot_pool.entries.entry":"Элемент","loot_pool.rolls":"Бросков","loot_pool.rolls.help":"Количество раз выбора случайной записи.","loot_pool_entry_type.alternatives":"Альтернатива","loot_pool_entry_type.alternatives.help":"Выбирает первую дочернюю запись, у которой выполняется условие.","loot_pool_entry_type.dynamic":"Динамический","loot_pool_entry_type.dynamic.help":"Возвращает особое содержимое блока.","loot_pool_entry_type.empty":"Ничего","loot_pool_entry_type.empty.help":"Возвращает пустую запись.","loot_pool_entry_type.group":"Группа","loot_pool_entry_type.group.help":"Выбирает все дочерние записи, у которых выполняются условия.","loot_pool_entry_type.item":"Предмет","loot_pool_entry_type.item.help":"Возвращает один предмет.","loot_pool_entry_type.loot_table":"Таблица добычи","loot_pool_entry_type.loot_table.help":"Возвращает содержимое другой таблицы добычи.","loot_pool_entry_type.sequence":"Последовательность","loot_pool_entry_type.sequence.help":"Выбирает все дочерние записи до первой записи, у которой условия не выполняются.","loot_pool_entry_type.tag":"Тег предметов","loot_pool_entry_type.tag.help":"Возвращает содержимое тега предметов.","loot_table.pools":"Пулы","loot_table.pools.entry":"Пул","luck_based":"Основано на удаче","nbt_operation.op":"Действие","nbt_operation.op.append":"Добавление","nbt_operation.op.merge":"Объединение","nbt_operation.op.replace":"Замена","nbt_operation.source":"Источник","nbt_operation.target":"Цель","noise_settings.bedrock_floor_position":"Высота нижнего слоя коренной породы","noise_settings.bedrock_floor_position.help":"Положение нижнего уровня бедрока. Чем больше число, тем выше уровень.","noise_settings.bedrock_roof_position":"Высота верхнего слоя коренной породы","noise_settings.bedrock_roof_position.help":"Положение верхнего уровня бедрока относительно верха мира. Чем больше число, тем ниже уровень.","noise_settings.default_block":"Стандартный блок","noise_settings.default_fluid":"Стандартная жидкость","noise_settings.disable_mob_generation":"Отключить генерацию мобов","noise_settings.disable_mob_generation.help":"Определяет, появляются ли мобы во время генерации.","noise_settings.noise":"Параметры шума","noise_settings.noise.amplified":"Расширенный","noise_settings.noise.bottom_slide":"Низ кривой","noise_settings.noise.bottom_slide.offset":"Смещение низа кривой","noise_settings.noise.bottom_slide.size":"Размер низа кривой","noise_settings.noise.bottom_slide.target":"Значение низа кривой","noise_settings.noise.density_factor":"Множитель плотности","noise_settings.noise.density_offset":"Смещение плотности","noise_settings.noise.height":"Высота","noise_settings.noise.island_noise_override":"Переопределение островным шумом","noise_settings.noise.island_noise_override.help":"Если «Да», ландшафт будет генерироваться как в Энде: один большой остров в центре и много островов вдали от него.","noise_settings.noise.random_density_offset":"Случайное смещение плотности","noise_settings.noise.sampling":"Координатный масштаб","noise_settings.noise.sampling.xz_factor":"Множитель шума по X, Z","noise_settings.noise.sampling.xz_scale":"Уровень шума по X, Z","noise_settings.noise.sampling.y_factor":"Множитель шума по Y","noise_settings.noise.sampling.y_scale":"Уровень шума по Y","noise_settings.noise.simplex_surface_noise":"Симплекс-шум поверхности","noise_settings.noise.size_horizontal":"Размер по горизонтали","noise_settings.noise.size_vertical":"Размер по вертикали","noise_settings.noise.top_slide":"Верх кривой","noise_settings.noise.top_slide.offset":"Смещение верха кривой","noise_settings.noise.top_slide.size":"Размер верха кривой","noise_settings.noise.top_slide.target":"Значение верха кривой","noise_settings.sea_level":"Уровень моря","player.advancements":"Достижение","player.advancements.entry":"Достижение","player.gamemode":"Игровой режим","player.level":"Уровень опыта","player.recipes":"Рецепты","player.stats":"Статистика","player.stats.entry":"Статистика","processors.object":"Особенный","processors.string":"Упоминание","range.binomial":"Биномиальное распределение","range.max":"Макс.","range.min":"Мин.","range.n":"n","range.number":"Число","range.object":"Диапазон","range.p":"p","range.uniform":"Равномерное распределение","requirements":"Требуются","slot.chest":"Тело","slot.feet":"Стопы","slot.head":"Голова","slot.legs":"Ноги","slot.mainhand":"Ведущая рука","slot.offhand":"Вторая рука","statistic.stat":"Статистика","statistic.type":"Тип","statistic.type.broken":"Сломано","statistic.type.crafted":"Создано","statistic.type.custom":"Пользовательский","statistic.type.dropped":"Выброшено","statistic.type.killed":"Убито","statistic.type.killedByTeam":"Был убит командой","statistic.type.killed_by":"Был убит","statistic.type.mined":"Вскопано","statistic.type.picked_up":"Подобрано","statistic.type.teamkill":"Убито из команды","statistic.type.used":"Использовано","statistic.value":"Значение","status_effect.ambient":"Из окружения","status_effect.amplifier":"Уровень","status_effect.duration":"Длительность","status_effect.visible":"Видимый","table.type":"Тип","table.type.block":"Блок","table.type.chest":"Сундук","table.type.empty":"Ничего","table.type.entity":"Сущность","table.type.fishing":"Рыбалка","table.type.generic":"Общий","tag.replace":"Заменить","tag.values":"Значения","text_component":"Текстовый компонент","text_component.boolean":"Логический тип","text_component.list":"Список","text_component.number":"Число","text_component.object":"Объект","text_component.string":"Строка","text_component_object.block":"Блок","text_component_object.bold":"Жирный","text_component_object.clickEvent":"Действие по нажатию","text_component_object.clickEvent.action":"Действие","text_component_object.clickEvent.action.change_page":"Сменить страницу","text_component_object.clickEvent.action.copy_to_clipboard":"Скопировать в буфер обмена","text_component_object.clickEvent.action.open_file":"Открыть файл","text_component_object.clickEvent.action.open_url":"Открыть ссылку","text_component_object.clickEvent.action.run_command":"Выполнить команду","text_component_object.clickEvent.action.suggest_command":"Предложить команду","text_component_object.clickEvent.value":"Значение","text_component_object.color":"Цвет","text_component_object.entity":"Сущность","text_component_object.extra":"Дополнительно","text_component_object.font":"Шрифт","text_component_object.hoverEvent":"Действие по наведению","text_component_object.hoverEvent.action":"Действие","text_component_object.hoverEvent.action.show_entity":"Показать сущность","text_component_object.hoverEvent.action.show_item":"Показать предмет","text_component_object.hoverEvent.action.show_text":"Показать текст","text_component_object.hoverEvent.contents":"Содержимое","text_component_object.hoverEvent.value":"Значение","text_component_object.insertion":"Вставка","text_component_object.interpret":"Интерпретировать","text_component_object.italic":"Курсив","text_component_object.keybind":"Назначенная клавиша","text_component_object.nbt":"Данные сущности (NBT)","text_component_object.obfuscated":"Обфусцированный","text_component_object.score":"Счёт","text_component_object.score.name":"Имя","text_component_object.score.objective":"Счёт","text_component_object.score.value":"Значение","text_component_object.selector":"Селектор","text_component_object.storage":"Хранилище","text_component_object.strikethrough":"Зачёркнутый","text_component_object.text":"Простой текст","text_component_object.translate":"Переводимый текст","text_component_object.underlined":"Подчёркнутый","text_component_object.with":"Перевести с","true":"Да","uniform_int.base":"Начальное значение","uniform_int.number":"Точное","uniform_int.object":"Случайное число в промежутке","uniform_int.spread":"Распределение","unset":"Не задано","world.bonus_chest":"Бонусный сундук","world.generate_features":"Генерация строений","world.seed":"Ключ генератора мира","worldgen.warning":"Эта функция экспериментальная и крайне нестабильная. Она может измениться в будущих версиях. Есть вероятность, что произойдёт сбой игры при создании мира.","worldgen/biome_source.checkerboard":"Шахматный","worldgen/biome_source.checkerboard.help":"Биомы генерируются в шахматном порядке чанков.","worldgen/biome_source.fixed":"Один биом","worldgen/biome_source.fixed.help":"Один биом на весь мир.","worldgen/biome_source.multi_noise":"Множественный шум","worldgen/biome_source.multi_noise.help":"Распределение особых биомов с настраиваемыми параметрами.","worldgen/biome_source.the_end":"Энд","worldgen/biome_source.the_end.help":"Распределение биомов в Краю.","worldgen/biome_source.vanilla_layered":"Стандартный","worldgen/biome_source.vanilla_layered.help":"Распределение биомов в Верхнем мире.","worldgen/chunk_generator.debug":"Режим отладки","worldgen/chunk_generator.flat":"Суперплоскость","worldgen/chunk_generator.noise":"По умолчанию"} \ No newline at end of file diff --git a/locales/zh-cn.json b/locales/zh-cn.json new file mode 100644 index 00000000..db96d982 --- /dev/null +++ b/locales/zh-cn.json @@ -0,0 +1 @@ +{"advancement.criteria":"判据","advancement.display":"显示","advancement.display.announce_to_chat":"在聊天栏提示","advancement.display.background":"背景","advancement.display.description":"描述","advancement.display.frame":"框架类型","advancement.display.frame.challenge":"挑战","advancement.display.frame.goal":"目标","advancement.display.frame.task":"任务","advancement.display.help":"如果存在,该进度将会在进度界面中显示。","advancement.display.hidden":"隐藏","advancement.display.icon":"图标","advancement.display.icon.item":"图标物品","advancement.display.icon.nbt":"图标物品 NBT","advancement.display.show_toast":"显示右上角提示信息","advancement.display.title":"标题","advancement.parent":"父进度","advancement.rewards":"奖励","advancement.rewards.experience":"经验","advancement.rewards.function":"函数","advancement.rewards.loot":"战利品表","advancement.rewards.recipes":"配方","advancement_trigger.bee_nest_destroyed":"摧毁蜂巢","advancement_trigger.bred_animals":"繁殖动物","advancement_trigger.brewed_potion":"酿造药水","advancement_trigger.changed_dimension":"改变维度","advancement_trigger.channeled_lightning":"引雷魔咒击杀实体","advancement_trigger.construct_beacon":"构建信标结构","advancement_trigger.consume_item":"消耗物品","advancement_trigger.cured_zombie_villager":"治愈僵尸村民","advancement_trigger.effects_changed":"状态效果改变","advancement_trigger.enchanted_item":"附魔物品","advancement_trigger.enter_block":"进入方块","advancement_trigger.entity_hurt_player":"实体伤害玩家","advancement_trigger.entity_killed_player":"实体击杀玩家","advancement_trigger.filled_bucket":"填充桶","advancement_trigger.fishing_rod_hooked":"钓鱼竿勾住东西","advancement_trigger.hero_of_the_village":"村庄英雄","advancement_trigger.impossible":"不可达成","advancement_trigger.inventory_changed":"物品栏改变","advancement_trigger.item_durability_changed":"物品耐久度改变","advancement_trigger.item_used_on_block":"对方块使用物品","advancement_trigger.killed_by_crossbow":"使用弩箭击杀","advancement_trigger.levitation":"漂浮","advancement_trigger.location":"位置","advancement_trigger.nether_travel":"下界旅行","advancement_trigger.placed_block":"放置方块","advancement_trigger.player_generates_container_loot":"玩家生成容器战利品","advancement_trigger.player_hurt_entity":"玩家伤害实体","advancement_trigger.player_killed_entity":"玩家击杀实体","advancement_trigger.recipe_unlocked":"配方解锁","advancement_trigger.safely_harvest_honey":"安全地采集蜂蜜","advancement_trigger.shot_crossbow":"使用弩","advancement_trigger.slept_in_bed":"睡觉","advancement_trigger.slide_down_block":"从蜂蜜块滑下","advancement_trigger.summoned_entity":"召唤实体","advancement_trigger.tame_animal":"驯服动物","advancement_trigger.target_hit":"击中标靶","advancement_trigger.thrown_item_picked_up_by_entity":"丢出的物品被实体捡起","advancement_trigger.tick":"刻","advancement_trigger.used_ender_eye":"使用末影之眼","advancement_trigger.used_totem":"使用不死图腾","advancement_trigger.villager_trade":"村民交易","advancement_trigger.voluntary_exile":"引发袭击","attribute.generic_armor":"盔甲防御点数","attribute.generic_armor_toughness":"盔甲韧性","attribute.generic_attack_damage":"普通攻击伤害","attribute.generic_attack_knockback":"击退距离","attribute.generic_attack_speed":"攻击速度","attribute.generic_flying_speed":"飞行速度","attribute.generic_follow_range":"追踪范围","attribute.generic_knockback_resistance":"击退抗性","attribute.generic_luck":"幸运","attribute.generic_max_health":"最大生命值","attribute.generic_movement_speed":"移动速度","attribute.horse.jump_strength":"弹跳力","attribute.zombie.spawn_reinforcements":"连带生成新僵尸的可能性","attribute_modifier.amount":"数额","attribute_modifier.attribute":"属性","attribute_modifier.name":"名称","attribute_modifier.operation":"运算模式","attribute_modifier.operation.addition":"加减数额","attribute_modifier.operation.multiply_base":"乘上数额","attribute_modifier.operation.multiply_total":"乘上(数额 + 1)","attribute_modifier.slot":"栏位","attribute_modifier.slot.list":"多个","attribute_modifier.slot.string":"单个","badge.experimental":"实验性","badge.unstable":"不稳定","biome.carvers":"地形雕刻器","biome.carvers.air":"空气","biome.carvers.liquid":"液体","biome.category":"分类","biome.creature_spawn_probability":"生物生成几率","biome.depth":"深度","biome.depth.help":"使地形抬升或下沉。正值被认为是陆地,负值被认为是海洋。","biome.downfall":"降雨(此参数用来控制草、树叶的颜色、火的蔓延速度等)","biome.effects":"环境效果","biome.effects.additions_sound":"附加音效","biome.effects.additions_sound.sound":"声音","biome.effects.additions_sound.tick_chance":"每刻播放的概率","biome.effects.ambient_sound":"环境音效","biome.effects.fog_color":"迷雾颜色","biome.effects.foliage_color":"树叶颜色","biome.effects.grass_color":"草的颜色","biome.effects.grass_color_modifier":"草颜色修饰子","biome.effects.grass_color_modifier.dark_forest":"黑森林","biome.effects.grass_color_modifier.none":"无","biome.effects.grass_color_modifier.swamp":"沼泽","biome.effects.mood_sound":"氛围音效","biome.effects.mood_sound.block_search_extent":"播放位置搜索半径","biome.effects.mood_sound.offset":"偏移","biome.effects.mood_sound.sound":"音效","biome.effects.mood_sound.tick_delay":"刻延时","biome.effects.music":"音乐","biome.effects.music.max_delay":"最大延时","biome.effects.music.min_delay":"最小延时","biome.effects.music.replace_current_music":"替换当前音乐","biome.effects.music.sound":"音效","biome.effects.particle":"粒子","biome.effects.particle.options":"选项","biome.effects.particle.options.type":"粒子类型","biome.effects.particle.probability":"概率","biome.effects.sky_color":"天空颜色","biome.effects.water_color":"水的颜色","biome.effects.water_fog_color":"水中迷雾颜色","biome.features":"地物","biome.features.entry":"步骤 %0%","biome.features.entry.entry":"地物","biome.player_spawn_friendly":"玩家生成偏好","biome.player_spawn_friendly.help":"若为 true,世界出生点会优先选定在此生物群系内。","biome.precipitation":"降雨量","biome.precipitation.none":"无","biome.precipitation.rain":"雨","biome.precipitation.snow":"雪","biome.scale":"规模","biome.scale.help":"竖直方向上拉伸地形。值越小,地形越平整。","biome.spawn_costs":"生成代价","biome.spawn_costs.charge":"电荷量","biome.spawn_costs.energy_budget":"电势预算","biome.spawners":"生成器","biome.spawners.ambient":"环境生物","biome.spawners.creature":"生物(非怪物)","biome.spawners.entry":"生成","biome.spawners.entry.maxCount":"最大数量","biome.spawners.entry.minCount":"最小数量","biome.spawners.entry.type":"类型","biome.spawners.entry.weight":"权重","biome.spawners.misc":"杂项","biome.spawners.monster":"怪物","biome.spawners.water_ambient":"水下环境生物","biome.spawners.water_creature":"水生生物","biome.starts":"起始结构","biome.starts.entry":"结构","biome.starts.help":"配置过的结构地物的列表。","biome.surface_builder":"地表生成器","biome.temperature":"温度","biome.temperature_modifier":"温度修饰子","biome.temperature_modifier.frozen":"冰冻","biome.temperature_modifier.none":"无","block.block":"方块 ID","block.nbt":"NBT","block.state":"方块状态","block.tag":"方块标签","block_placer.column_placer.extra_size":"额外尺寸","block_placer.column_placer.min_size":"最小尺寸","block_placer.type":"类型","block_state.Name":"名称","block_state.Properties":"属性","block_state_provider.rotated_block_provider.state":"状态","block_state_provider.simple_state_provider.state":"状态","block_state_provider.type":"类型","block_state_provider.weighted_state_provider.entries":"项目","block_state_provider.weighted_state_provider.entries.entry.data":"状态","block_state_provider.weighted_state_provider.entries.entry.weight":"权重","carver.config":"配置","carver.config.probability":"概率","carver.type":"类型","children":"子","children.entry":"项目","condition.alternative.terms":"子条件","condition.block_state_property.block":"方块","condition.block_state_property.properties":"方块状态","condition.condition":"条件","condition.damage_source":"伤害源","condition.entity_properties.entity":"实体","condition.entity_scores.entity":"实体","condition.entity_scores.scores":"分数","condition.entry":"谓词","condition.inverted.term":"条件","condition.item":"物品","condition.killed_by_player.inverse":"取反","condition.list":"多个","condition.location":"位置","condition.location_check.offsetX":"X 坐标偏移","condition.location_check.offsetY":"Y 坐标偏移","condition.location_check.offsetZ":"Z 坐标偏移","condition.object":"单个","condition.random_chance.chance":"几率","condition.random_chance_with_looting.chance":"几率","condition.random_chance_with_looting.looting_multiplier":"每级抢夺魔咒增加的数","condition.reference.name":"Predicate 文件 ID","condition.table_bonus.chances":"几率","condition.table_bonus.chances.entry":"几率","condition.table_bonus.enchantment":"附魔","condition.time_check.period":"周期","condition.time_check.period.help":"可选。如果指定,在比较前会先将游戏的时间以该数取模(例如,如果设置为 24000,指定的值将会被运算为一天中的时间)。","condition.time_check.value":"值","condition.value_check.range":"范围","condition.value_check.value":"值","condition.weather_check.raining":"下雨","condition.weather_check.thundering":"雷雨","conditions":"条件","conditions.entry":"条件","conditions.list":"条件","conditions.object":"旧版","copy_source.block_entity":"方块实体","copy_source.direct_killer":"直接击杀实体","copy_source.killer":"击杀实体","copy_source.killer_player":"击杀玩家","copy_source.this":"自身","criterion.bee_nest_destroyed.block":"方块","criterion.bee_nest_destroyed.num_bees_inside":"内部蜜蜂的数量","criterion.bred_animals.child":"幼体","criterion.bred_animals.parent":"父或母","criterion.bred_animals.partner":"配偶","criterion.brewed_potion.potion":"药水 ID","criterion.changed_dimension.from":"出发维度","criterion.changed_dimension.to":"到达维度","criterion.channeled_lightning.victims":"受害实体","criterion.channeled_lightning.victims.entry":"实体","criterion.conditions":"条件","criterion.construct_beacon.beacon_level":"金字塔等级","criterion.consume_item.item":"物品","criterion.cured_zombie_villager.villager":"村民","criterion.cured_zombie_villager.zombie":"僵尸","criterion.effects_changed.effects":"状态效果","criterion.enchanted_item.item":"物品","criterion.enchanted_item.levels":"经验等级","criterion.enter_block.block":"方块","criterion.enter_block.state":"方块状态","criterion.entity_hurt_player.damage":"伤害","criterion.entity_killed_player.entity":"源实体","criterion.entity_killed_player.killing_blow":"伤害类型","criterion.filled_bucket.item":"物品","criterion.fishing_rod_hooked.entity":"被拉的实体","criterion.fishing_rod_hooked.item":"物品","criterion.hero_of_the_village.location":"位置","criterion.inventory_changed.items":"物品","criterion.inventory_changed.items.entry":"物品","criterion.inventory_changed.slots":"栏位","criterion.inventory_changed.slots.empty":"空栏位的数量","criterion.inventory_changed.slots.full":"用满栏位的数量","criterion.inventory_changed.slots.occupied":"已用栏位的数量","criterion.item_durability_changed.delta":"差值","criterion.item_durability_changed.durability":"耐久度","criterion.item_durability_changed.item":"物品","criterion.item_used_on_block.item":"物品","criterion.item_used_on_block.location":"位置","criterion.killed_by_crossbow.unique_entity_types":"实体种类的数量","criterion.killed_by_crossbow.victims":"受害实体","criterion.killed_by_crossbow.victims.entry":"实体","criterion.levitation.distance":"距离","criterion.levitation.duration":"持续时间","criterion.location.location":"位置","criterion.nether_travel.distance":"距离","criterion.nether_travel.entered":"进入位置","criterion.nether_travel.exited":"退出位置","criterion.placed_block.block":"方块","criterion.placed_block.item":"物品","criterion.placed_block.location":"位置","criterion.placed_block.state":"方块状态","criterion.player":"玩家","criterion.player_generates_container_loot.loot_table":"战利品表","criterion.player_hurt_entity.damage":"伤害","criterion.player_hurt_entity.entity":"受害实体","criterion.player_killed_entity.entity":"受害实体","criterion.player_killed_entity.killing_blow":"伤害类型","criterion.recipe_unlocked.recipe":"配方","criterion.rod":"钓鱼竿","criterion.safely_harvest_honey.block":"方块","criterion.safely_harvest_honey.item":"物品","criterion.shot_crossbow.item":"物品","criterion.slept_in_bed.location":"位置","criterion.slide_down_block.block":"方块","criterion.summoned_entity.entity":"实体","criterion.tame_animal.entity":"动物","criterion.target_hit.projectile":"弹射物","criterion.target_hit.shooter":"射击者","criterion.target_hit.signal_strength":"信号强度","criterion.thrown_item_picked_up_by_entity.entity":"实体","criterion.thrown_item_picked_up_by_entity.item":"物品","criterion.trigger":"触发器","criterion.used_ender_eye.distance":"距离","criterion.used_totem.item":"图腾物品","criterion.villager_trade.item":"购得物品","criterion.villager_trade.villager":"村民","criterion.voluntary_exile.location":"位置","damage.blocked":"是否被阻挡","damage.dealt":"应当受到伤害","damage.source_entity":"源实体","damage.taken":"实际受到伤害","damage.type":"伤害类型","damage_source.bypasses_armor":"破甲","damage_source.bypasses_invulnerability":"虚空","damage_source.bypasses_magic":"饥饿","damage_source.direct_entity":"直接来源实体","damage_source.is_explosion":"爆炸","damage_source.is_fire":"燃烧","damage_source.is_lightning":"雷击","damage_source.is_magic":"魔法","damage_source.is_projectile":"弹射物","damage_source.source_entity":"根本来源实体","decorator.carving_mask.step":"生成步骤","decorator.config":"配置","decorator.count.count":"数量","decorator.count_extra.count":"数量","decorator.count_extra.extra_chance":"额外几率","decorator.count_extra.extra_count":"额外数量","decorator.count_multilayer.count":"数量","decorator.count_noise.above_noise":"阈值上噪声","decorator.count_noise.below_noise":"阈值下噪声","decorator.count_noise.noise_level":"噪声等级","decorator.count_noise_biased.noise_factor":"噪声因子","decorator.count_noise_biased.noise_offset":"噪声偏移量","decorator.count_noise_biased.noise_to_count_ratio":"噪数比","decorator.decorated.inner":"内部","decorator.decorated.outer":"外部","decorator.depth_average.baseline":"基线","decorator.depth_average.spread":"扩散","decorator.glowstone.count":"数量","decorator.type":"类型","dimension":"维度","dimension.generator":"生成器","dimension.generator.biome_source":"生物群系源","dimension.overworld":"主世界","dimension.the_end":"末路之地","dimension.the_nether":"下界","dimension.type":"维度类型","dimension.type.object":"自定义","dimension.type.string":"预设","dimension_type.ambient_light":"环境光","dimension_type.ambient_light.help":"有多少环境光。应为 0.0 与 1.0 之间的值。","dimension_type.bed_works":"床有效","dimension_type.bed_works.help":"若为true,玩家可以使用床来设置重生点并跳过夜晚。若为false,则使用床会爆炸。","dimension_type.coordinate_scale":"坐标缩放","dimension_type.coordinate_scale.help":"在维度间传送时(使用下界传送门或 /execute in )对坐标使用的缩放倍数。","dimension_type.effects":"环境效果","dimension_type.effects.help":"天空效果","dimension_type.effects.overworld":"主世界","dimension_type.effects.the_end":"末路之地","dimension_type.effects.the_nether":"下界","dimension_type.fixed_time":"固定时间","dimension_type.fixed_time.help":"设定该值会导致太阳处于某一固定位置。","dimension_type.has_ceiling":"具有天花板","dimension_type.has_ceiling.help":"影响天气,地图物品和重生规则。","dimension_type.has_raids":"生成袭击","dimension_type.has_raids.help":"若为true,拥有不祥之兆效果的玩家会导致袭击。","dimension_type.has_skylight":"具有天空光照","dimension_type.has_skylight.help":"影响天气,光照引擎和重生规则。","dimension_type.height":"高度","dimension_type.infiniburn":"无限燃烧方块","dimension_type.infiniburn.help":"定义能够使火在其上永久燃烧的方块标签。","dimension_type.logical_height":"合规高度","dimension_type.logical_height.help":"在此高度以上,传送门不会生成,紫颂果也不再能传送玩家。","dimension_type.min_y":"最小高度","dimension_type.name":"名称","dimension_type.natural":"自然","dimension_type.natural.help":"如果设置为 true,传送门中会生成僵尸猪灵。如果设置为 false,指南针与钟会不断随机旋转。","dimension_type.piglin_safe":"猪灵不转换","dimension_type.piglin_safe.help":"若为false,猪灵会开始颤抖并转化为僵尸猪灵。","dimension_type.respawn_anchor_works":"重生锚有效","dimension_type.respawn_anchor_works.help":"若为true,玩家可以充能并使用重生锚以设置重生点。若为false,使用重生锚会爆炸。","dimension_type.ultrawarm":"极热","dimension_type.ultrawarm.help":"如果设置为 true,水会蒸发且海绵会变干。","distance.absolute":"绝对距离","distance.horizontal":"水平距离","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"水下速掘","enchantment.bane_of_arthropods":"节肢杀手","enchantment.binding_curse":"绑定诅咒","enchantment.blast_protection":"爆炸保护","enchantment.channeling":"引雷","enchantment.depth_strider":"深海探索者","enchantment.efficiency":"效率","enchantment.enchantment":"魔咒","enchantment.feather_falling":"摔落保护","enchantment.fire_aspect":"火焰附加","enchantment.fire_protection":"火焰保护","enchantment.flame":"火矢","enchantment.fortune":"时运","enchantment.frost_walker":"冰霜行者","enchantment.impaling":"穿刺","enchantment.infinity":"无限","enchantment.knockback":"击退","enchantment.levels":"等级","enchantment.looting":"抢夺","enchantment.loyalty":"忠诚","enchantment.luck_of_the_sea":"海之眷顾","enchantment.lure":"饵钓","enchantment.mending":"经验修补","enchantment.multishot":"多重射击","enchantment.piercing":"穿透","enchantment.power":"力量","enchantment.projectile_protection":"弹射物保护","enchantment.protection":"保护","enchantment.punch":"冲击","enchantment.quick_charge":"快速装填","enchantment.respiration":"水下呼吸","enchantment.riptide":"激流","enchantment.sharpness":"锋利","enchantment.silk_touch":"精准采集","enchantment.smite":"亡灵杀手","enchantment.sweeping":"横扫之刃","enchantment.thorns":"荆棘","enchantment.unbreaking":"耐久","enchantment.vanishing_curse":"消失诅咒","entity.distance":"到执行位置的距离","entity.effects":"状态效果","entity.equipment":"装备","entity.fishing_hook":"浮漂","entity.fishing_hook.in_open_water":"位于开阔水域","entity.flags":"实体特质","entity.isBaby":"是幼体","entity.isOnFire":"正在着火","entity.isSneaking":"正在潜行","entity.isSprinting":"正在疾跑","entity.isSwimming":"正在游泳","entity.location":"位置","entity.nbt":"NBT","entity.player":"玩家","entity.targeted_entity":"目标实体","entity.team":"队伍","entity.type":"实体","entity.vehicle":"载具","entity_source.direct_killer":"直接击杀实体","entity_source.killer":"击杀者","entity_source.killer_player":"击杀者玩家","entity_source.this":"自身","entry":"项目","error":"错误","error.expected_boolean":"期望一个布尔值","error.expected_integer":"期望一个整型数字","error.expected_json":"期望 JSON","error.expected_list":"期望一个数组","error.expected_number":"期望一个数字","error.expected_object":"期望一个对象","error.expected_range":"期望一个范围","error.expected_string":"期望一个字符串","error.expected_uniform_int":"期望一个均匀分布整数","error.height_multiple":"高度必须是%0%的倍数","error.invalid_binomial":"不能使用二项分布型的范围","error.invalid_empty_list":"不能使用空数组","error.invalid_empty_string":"不能使用空字符串","error.invalid_enum_option":"选项“%0%”无效","error.invalid_exact":"不能使用常数型的范围","error.invalid_list_range.exact":"期望一个长度为 %1% 的列表","error.invalid_list_range.larger":"列表的长度 %0% 比最大值 %1% 大","error.invalid_list_range.smaller":"列表的长度 %0% 比最小值 %1% 小","error.invalid_number_range.between":"期望一个位于 %0% 与 %1% 之间的数字","error.invalid_number_range.larger":"值 %0% 比最大值 %1% 大","error.invalid_number_range.smaller":"值 %0% 比最小值 %1% 小","error.invalid_pattern":"字符串无效:%0%","error.logical_height":"合规高度不能高于高度","error.min_y_multiple":"最小高度必须是%0%的倍数","error.min_y_plus_height":"最小高度 + 高度(Min Y + height)不能高于%0%","error.recipe.invalid_key":"只能使用单个字符作为键","error.separation_smaller_spacing":"间隔(separation)的值必须小于空位(spacing)","false":"否","feature.bamboo.probability":"概率","feature.basalt_columns.height":"高度","feature.basalt_columns.reach":"范围","feature.block_pile.state_provider":"状态声明","feature.config":"配置","feature.decorated.decorator":"装饰器","feature.decorated.feature":"地物","feature.delta_feature.contents":"三角洲内部方块","feature.delta_feature.rim":"三角洲边缘方块","feature.delta_feature.rim_size":"边缘尺寸","feature.delta_feature.size":"尺寸","feature.disk.half_height":"半高","feature.disk.radius":"半径","feature.disk.state":"状态","feature.disk.targets":"目标","feature.disk.targets.entry":"状态","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center":"远处滴水石生成几率","feature.dripstone_cluster.chance_of_dripstone_column_at_max_distance_from_center.help":"滴水石柱在离中心最大距离处的生成几率。","feature.dripstone_cluster.density":"密度","feature.dripstone_cluster.dripstone_block_layer_thickness":"方块层厚度","feature.dripstone_cluster.floor_to_ceiling_search_range":"搜索范围","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"地板至天花板的搜索范围。","feature.dripstone_cluster.height":"高度","feature.dripstone_cluster.height_deviation":"高度偏差","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column":"石柱几率距离","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column.help":"影响滴水石柱生成几率的离中心的最大距离。","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"高度偏差距离","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"影响高度偏差的离中心的最大距离。","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"最大高度差","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"石笋和钟乳石的最大高度差。","feature.dripstone_cluster.radius":"半径","feature.dripstone_cluster.wetness":"湿度","feature.dripstone_cluster.wetness_deviation":"湿度偏差","feature.dripstone_cluster.wetness_mean":"湿度平均值","feature.emerald_ore.state":"状态","feature.emerald_ore.target":"目标","feature.end_gateway.exact":"精确传送","feature.end_gateway.exit":"出口位置","feature.end_spike.crystal_beam_target":"末影水晶光柱目标","feature.end_spike.crystal_invulnerable":"末影水晶无敌状态","feature.end_spike.spikes":"末地黑曜石柱","feature.end_spike.spikes.entry":"末地黑曜石柱","feature.end_spike.spikes.entry.centerX":"中心 X 坐标","feature.end_spike.spikes.entry.centerZ":"中心 Z 坐标","feature.end_spike.spikes.entry.guarded":"铁栏杆保护","feature.end_spike.spikes.entry.height":"高度","feature.end_spike.spikes.entry.radius":"半径","feature.fill_layer.height":"高度","feature.fill_layer.state":"状态","feature.flower.blacklist":"黑名单","feature.flower.block_placer":"方块放置器","feature.flower.can_replace":"可替代","feature.flower.need_water":"需要水","feature.flower.project":"投影","feature.flower.state_provider":"状态声明","feature.flower.tries":"尝试次数","feature.flower.whitelist":"白名单","feature.flower.xspread":"X轴扩散","feature.flower.yspread":"Y轴扩散","feature.flower.zspread":"Z轴扩散","feature.forest_rock.state":"状态","feature.huge_brown_mushroom.cap_provider":"菌盖声明","feature.huge_brown_mushroom.foliage_radius":"菌盖大小","feature.huge_brown_mushroom.stem_provider":"菌柄声明","feature.huge_fungus.decor_state":"装饰","feature.huge_fungus.hat_state":"顶部","feature.huge_fungus.planted":"是否已种植","feature.huge_fungus.stem_state":"菌柄","feature.huge_fungus.valid_base_block":"有效底部方块","feature.huge_red_mushroom.cap_provider":"菌盖声明","feature.huge_red_mushroom.foliage_radius":"菌盖大小","feature.huge_red_mushroom.stem_provider":"菌柄声明","feature.ice_patch.half_height":"半高","feature.ice_patch.radius":"半径","feature.ice_patch.state":"状态","feature.ice_patch.targets":"目标","feature.ice_patch.targets.entry":"状态","feature.iceberg.state":"状态","feature.lake.state":"状态","feature.large_dripstone.column_radius":"石柱半径","feature.large_dripstone.floor_to_ceiling_search_range":"搜索范围","feature.large_dripstone.floor_to_ceiling_search_range.help":"地板至天花板的搜索范围。","feature.large_dripstone.height_scale":"高度比例","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"半径与洞穴高度比","feature.large_dripstone.min_bluntness_for_wind":"风的最小钝度","feature.large_dripstone.min_radius_for_wind":"风的最小半径","feature.large_dripstone.stalactite_bluntness":"钟乳石钝度","feature.large_dripstone.stalagmite_bluntness":"石笋钝度","feature.large_dripstone.wind_speed":"风速","feature.nether_forest_vegetation.state_provider":"状态声明","feature.netherrack_replace_blobs.radius":"半径","feature.netherrack_replace_blobs.state":"状态","feature.netherrack_replace_blobs.target":"目标","feature.no_surface_ore.size":"尺寸","feature.no_surface_ore.state":"状态","feature.no_surface_ore.target":"目标","feature.object":"自定义","feature.ore.size":"尺寸","feature.random_boolean_selector.feature_false":"地物 1","feature.random_boolean_selector.feature_true":"地物 2","feature.random_patch.blacklist":"黑名单","feature.random_patch.block_placer":"方块放置器","feature.random_patch.can_replace":"可替代","feature.random_patch.need_water":"需要水","feature.random_patch.project":"投影","feature.random_patch.state_provider":"状态声明","feature.random_patch.tries":"尝试次数","feature.random_patch.whitelist":"白名单","feature.random_patch.xspread":"X轴扩散","feature.random_patch.yspread":"Y轴扩散","feature.random_patch.zspread":"Z轴扩散","feature.random_selector.default":"默认","feature.random_selector.features":"地物","feature.random_selector.features.entry":"地物","feature.random_selector.features.entry.chance":"几率","feature.random_selector.features.entry.feature":"地物","feature.sea_pickle.count":"数量","feature.seegrass.probability":"概率","feature.simple_block.place_in":"将要放置的位置的方块","feature.simple_block.place_in.entry":"状态","feature.simple_block.place_on":"下方的方块","feature.simple_block.place_on.entry":"状态","feature.simple_block.place_under":"上方的方块","feature.simple_block.place_under.entry":"状态","feature.simple_block.to_place":"将要放置的方块","feature.simple_random_selector.features":"地物","feature.simple_random_selector.features.entry":"地物","feature.small_dripstone.chance_of_taller_dripstone":"更高的滴水石的生成几率","feature.small_dripstone.empty_space_search_radius":"空域搜索半径","feature.small_dripstone.max_offset_from_origin":"距来源的最大偏移","feature.small_dripstone.max_placements":"最大放置","feature.spring_feature.hole_count":"坑洞数量","feature.spring_feature.required_block_below":"下方需要方块","feature.spring_feature.rock_count":"岩石数量","feature.spring_feature.state":"状态","feature.spring_feature.valid_blocks":"有效方块","feature.string":"引用","feature.tree.decorators":"装饰器","feature.tree.decorators.entry":"树装饰器","feature.tree.foliage_placer":"树叶放置器","feature.tree.heightmap":"高度图","feature.tree.ignore_vines":"忽略藤蔓","feature.tree.leaves_provider":"树叶方块声明","feature.tree.max_water_depth":"树生成的最大水深","feature.tree.minimum_size":"最小尺寸","feature.tree.minimum_size.limit":"限制","feature.tree.minimum_size.lower_size":"下部尺寸","feature.tree.minimum_size.middle_size":"中部尺寸","feature.tree.minimum_size.min_clipped_height":"最小剪裁高度","feature.tree.minimum_size.type":"最小尺寸","feature.tree.minimum_size.upper_limit":"上部限制","feature.tree.minimum_size.upper_size":"上部尺寸","feature.tree.trunk_placer":"树干放置器","feature.tree.trunk_provider":"树干方块声明","feature.type":"类型","fluid.fluid":"流体 ID","fluid.state":"流体状态","fluid.tag":"流体标签","fluid_state.Name":"名称","fluid_state.Properties":"属性","foliage_placer.crown_height":"树冠高度","foliage_placer.height":"高度","foliage_placer.offset":"偏移","foliage_placer.radius":"半径","foliage_placer.trunk_height":"树干高度","foliage_placer.type":"类型","function.apply_bonus.enchantment":"附魔","function.apply_bonus.formula":"公式","function.apply_bonus.formula.binomial_with_bonus_count":"带奖励数量的二项分布","function.apply_bonus.formula.ore_drops":"矿物掉落","function.apply_bonus.formula.uniform_bonus_count":"带奖励数量的均匀分布","function.apply_bonus.parameters":"参数","function.apply_bonus.parameters.bonusMultiplier":"乘数","function.apply_bonus.parameters.extra":"额外值","function.apply_bonus.parameters.probability":"概率","function.copy_name.source":"源","function.copy_nbt.ops":"NBT 操作","function.copy_nbt.ops.entry":"操作","function.copy_nbt.source":"源","function.copy_state.block":"方块","function.copy_state.properties":"方块状态","function.copy_state.properties.entry":"属性","function.enchant_randomly.enchantments":"可选附魔","function.enchant_randomly.enchantments.entry":"魔咒","function.enchant_with_levels.levels":"等级","function.enchant_with_levels.treasure":"宝藏型魔咒","function.exploration_map.decoration":"图标","function.exploration_map.destination":"目标","function.exploration_map.search_radius":"搜寻半径","function.exploration_map.skip_existing_chunks":"跳过已生成区块","function.exploration_map.zoom":"缩放等级","function.fill_player_head.entity":"实体","function.function":"函数","function.limit_count.limit":"限额","function.list":"多个","function.looting_enchant.count":"数量","function.looting_enchant.limit":"限制","function.object":"单个","function.set_attributes.modifiers":"属性修饰符","function.set_attributes.modifiers.entry":"属性修饰符","function.set_banner_pattern.append":"添加","function.set_banner_pattern.patterns":"图案","function.set_contents.entries":"内容物","function.set_contents.entries.entry":"项目","function.set_count.add":"加上","function.set_count.add.help":"若为true,将会相对于目前的物品数量更改","function.set_count.count":"数量","function.set_damage.add":"加上","function.set_damage.add.help":"若为true,将会相对于目前的损伤值更改","function.set_damage.damage":"损伤值","function.set_data.data":"数据值","function.set_enchantments.add":"加上","function.set_enchantments.add.help":"若为true,将会相对于目前的等级更改","function.set_enchantments.enchantments":"魔咒","function.set_loot_table.name":"战利品表名","function.set_loot_table.seed":"种子","function.set_lore.entity":"实体","function.set_lore.lore":"物品描述","function.set_lore.lore.entry":"一行","function.set_lore.replace":"覆盖","function.set_name.entity":"实体","function.set_name.name":"名称","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"状态效果","function.set_stew_effect.effects.entry":"效果种类","function.set_stew_effect.effects.entry.duration":"持续时间","function.set_stew_effect.effects.entry.type":"效果种类","functions":"函数","functions.entry":"函数","gamemode.adventure":"冒险模式","gamemode.creative":"创造模式","gamemode.spectator":"旁观模式","gamemode.survival":"生存模式","generation_step.air":"空气","generation_step.liquid":"液体","generator.biome_source.altitude_noise":"高度噪声","generator.biome_source.biome":"生物群系","generator.biome_source.biomes":"生物群系","generator.biome_source.humidity_noise":"湿度噪声","generator.biome_source.large_biomes":"巨型生物群系","generator.biome_source.legacy_biome_init_layer":"旧版生物群系初始层","generator.biome_source.preset":"生物群系预设","generator.biome_source.preset.nether":"下界","generator.biome_source.scale":"缩放","generator.biome_source.seed":"生物群系种子","generator.biome_source.temperature_noise":"温度噪声","generator.biome_source.type":"生物群系源","generator.biome_source.weirdness_noise":"奇异度噪声","generator.seed":"维度种子","generator.settings":"生成器设置","generator.settings.biome":"生物群系","generator.settings.lakes":"湖","generator.settings.layers":"层","generator.settings.layers.entry":"层","generator.settings.layers.entry.block":"方块 ID","generator.settings.layers.entry.height":"高度","generator.settings.object":"自定义","generator.settings.presets.amplified":"放大化","generator.settings.presets.caves":"洞穴","generator.settings.presets.end":"末地","generator.settings.presets.floating_islands":"浮岛","generator.settings.presets.nether":"下界","generator.settings.presets.overworld":"主世界","generator.settings.string":"预设","generator.settings.structures":"结构","generator.settings.structures.stronghold":"要塞","generator.settings.structures.stronghold.count":"数量","generator.settings.structures.stronghold.distance":"距离","generator.settings.structures.stronghold.spread":"扩散度","generator.settings.structures.structures":"结构","generator.type":"生成器类型","generator_biome.biome":"生物群系","generator_biome.parameters":"参数","generator_biome.parameters.altitude":"海拔","generator_biome.parameters.help":"这些参数决定了该生物群系被生成时的位置。每个生物群系都必须拥有不同的设置组合。设置相近的生物群系会生成在一起。","generator_biome.parameters.humidity":"湿度","generator_biome.parameters.offset":"偏移","generator_biome.parameters.temperature":"温度","generator_biome.parameters.weirdness":"奇异度","generator_biome_noise.amplitudes":"振幅","generator_biome_noise.amplitudes.entry":"倍频 %0%","generator_biome_noise.firstOctave":"主倍频","generator_structure.salt":"盐值","generator_structure.separation":"间隔","generator_structure.separation.help":"以区块为单位该种类的两种结构之间的最小距离。","generator_structure.spacing":"空位","generator_structure.spacing.help":"该种类的两种结构间的平均距离。","heightmap_type.MOTION_BLOCKING":"阻止实体移动层","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"阻止实体移动层(不含树叶)","heightmap_type.OCEAN_FLOOR":"海床层","heightmap_type.OCEAN_FLOOR_WG":"海床层(世界生成)","heightmap_type.WORLD_SURFACE":"地表层","heightmap_type.WORLD_SURFACE_WG":"地表层(世界生成)","hide_source":"隐藏源代码","item.count":"数量","item.durability":"耐久度","item.enchantments":"魔咒","item.enchantments.entry":"附魔","item.item":"名称","item.nbt":"NBT","item.potion":"药水","item.tag":"标签","key.advancements":"进度","key.attack":"攻击/摧毁","key.back":"向后移动","key.chat":"打开聊天栏","key.command":"输入命令","key.drop":"丢弃所选物品","key.forward":"向前移动","key.fullscreen":"全屏显示切换","key.hotbar.1":"快捷栏 1","key.hotbar.2":"快捷栏 2","key.hotbar.3":"快捷栏 3","key.hotbar.4":"快捷栏 4","key.hotbar.5":"快捷栏 5","key.hotbar.6":"快捷栏 6","key.hotbar.7":"快捷栏 7","key.hotbar.8":"快捷栏 8","key.hotbar.9":"快捷栏 9","key.inventory":"开启/关闭物品栏","key.jump":"跳跃","key.left":"向左","key.loadToolbarActivator":"加载物品工具栏","key.pickItem":"选取方块","key.playerlist":"玩家列表","key.right":"向右","key.saveToolbarActivator":"保存物品工具栏","key.screenshot":"截图","key.smoothCamera":"切换电影视角","key.sneak":"潜行","key.spectatorOutlines":"高亮玩家(旁观者)","key.sprint":"疾跑","key.swapOffhand":"与副手交换物品","key.togglePerspective":"切换视角","key.use":"使用物品/放置方块","location.biome":"生物群系","location.block":"方块","location.dimension":"维度","location.feature":"地物","location.fluid":"流体","location.light":"光照","location.light.light":"可见光等级","location.position":"位置","location.position.x":"X 坐标","location.position.y":"Y 坐标","location.position.z":"Z 坐标","location.smokey":"烟熏","loot_condition_type.alternative":"析取范式(或)","loot_condition_type.block_state_property":"方块状态属性","loot_condition_type.damage_source_properties":"伤害源属性","loot_condition_type.entity_properties":"实体属性","loot_condition_type.entity_scores":"实体分数","loot_condition_type.inverted":"取反(非)","loot_condition_type.killed_by_player":"被玩家击杀","loot_condition_type.location_check":"检查位置","loot_condition_type.match_tool":"匹配工具","loot_condition_type.random_chance":"随机概率","loot_condition_type.random_chance_with_looting":"受抢夺魔咒影响的随机概率","loot_condition_type.reference":"引用 predicate 文件","loot_condition_type.survives_explosion":"未被爆炸破坏","loot_condition_type.table_bonus":"附魔奖励","loot_condition_type.time_check":"检查时间","loot_condition_type.value_check":"检查值","loot_condition_type.weather_check":"检查天气","loot_entry.dynamic.name":"名称","loot_entry.item.name":"名称","loot_entry.loot_table.name":"战利品表名","loot_entry.quality":"每级幸运对权重的影响","loot_entry.tag.expand":"展开","loot_entry.tag.expand.help":"如果为 false,该项目将返回指定物品标签的全部内容;否则将会从中随机抽取一个返回。","loot_entry.tag.name":"物品标签名","loot_entry.type":"类型","loot_entry.weight":"权重","loot_function_type.apply_bonus":"应用奖励公式","loot_function_type.copy_name":"复制方块实体显示名","loot_function_type.copy_nbt":"复制 NBT","loot_function_type.copy_state":"复制方块状态","loot_function_type.enchant_randomly":"随机附魔","loot_function_type.enchant_with_levels":"给予等价于经验等级的随机魔咒","loot_function_type.exploration_map":"设置探险家地图","loot_function_type.explosion_decay":"爆炸损耗","loot_function_type.fill_player_head":"填充玩家头颅","loot_function_type.furnace_smelt":"熔炉熔炼","loot_function_type.limit_count":"限制堆叠数量","loot_function_type.looting_enchant":"根据抢夺魔咒调整物品数量","loot_function_type.set_attributes":"设置属性","loot_function_type.set_banner_pattern":"设置旗帜图案","loot_function_type.set_contents":"设置内容物","loot_function_type.set_count":"设置物品数量","loot_function_type.set_damage":"设置损伤值","loot_function_type.set_data":"设置数据值","loot_function_type.set_enchantments":"设置魔咒","loot_function_type.set_loot_table":"设置战利品表","loot_function_type.set_lore":"设置物品描述","loot_function_type.set_name":"设置物品名","loot_function_type.set_nbt":"设置 NBT","loot_function_type.set_stew_effect":"设置迷之炖菜状态效果","loot_pool.bonus_rolls":"每级幸运增加的抽取次数","loot_pool.entries":"项目","loot_pool.entries.entry":"项目","loot_pool.rolls":"抽取次数","loot_pool.rolls.help":"随机抽取的项目数。","loot_pool_entry_type.alternatives":"析取范式","loot_pool_entry_type.alternatives.help":"获取第一个满足条件的子项目。","loot_pool_entry_type.dynamic":"动态","loot_pool_entry_type.dynamic.help":"获取特定方块的特定掉落物。","loot_pool_entry_type.empty":"空","loot_pool_entry_type.empty.help":"不向随机池中加入任何物品。","loot_pool_entry_type.group":"组","loot_pool_entry_type.group.help":"从所有满足条件的子项目中随机抽取一个。","loot_pool_entry_type.item":"物品","loot_pool_entry_type.item.help":"加入一种物品。","loot_pool_entry_type.loot_table":"战利品表","loot_pool_entry_type.loot_table.help":"加入另一个战利品表的内容。","loot_pool_entry_type.sequence":"序列","loot_pool_entry_type.sequence.help":"从第一个不满足条件的子项目之前的所有子项目中随机抽取一个。","loot_pool_entry_type.tag":"物品标签","loot_pool_entry_type.tag.help":"添加一个物品标签的内容。","loot_table.pools":"随机池","loot_table.pools.entry":"随机池","loot_table.type":"类型","luck_based":"受幸运等级影响","nbt_operation.op":"操作类型","nbt_operation.op.append":"追加","nbt_operation.op.merge":"合并","nbt_operation.op.replace":"替换","nbt_operation.source":"复制源","nbt_operation.target":"复制目标","nbt_provider.source":"来源","nbt_provider.target":"目标","nbt_provider.type":"类型","nbt_provider.type.context":"上下文+","nbt_provider.type.storage":"命令存储","nbt_provider.type.string":"上下文","noise_settings.bedrock_floor_position":"基岩地板位置","noise_settings.bedrock_floor_position.help":"基岩地板的位置。数字越大地板越靠上。","noise_settings.bedrock_roof_position":"基岩天花板位置","noise_settings.bedrock_roof_position.help":"基岩天花板从世界高度开始计算的相对位置。数字越大天花板越靠下。","noise_settings.biome":"生物群系","noise_settings.default_block":"默认方块","noise_settings.default_fluid":"默认流体","noise_settings.disable_mob_generation":"禁用生物生成","noise_settings.disable_mob_generation.help":"如果设置为 true,生成世界时不会生成生物。","noise_settings.name":"名称","noise_settings.noise":"噪声选项","noise_settings.noise.amplified":"放大化","noise_settings.noise.bottom_slide":"底部曲线","noise_settings.noise.bottom_slide.help":"改变世界底部曲线。底部曲线大小(size)为0时没有效果。","noise_settings.noise.bottom_slide.offset":"偏移","noise_settings.noise.bottom_slide.size":"大小","noise_settings.noise.bottom_slide.target":"目标","noise_settings.noise.density_factor":"密度因子","noise_settings.noise.density_factor.help":"决定高度影响地形的程度。正值在底部产生陆地。接近0的值产生均匀的地形。","noise_settings.noise.density_offset":"密度偏移","noise_settings.noise.density_offset.help":"影响平均陆地高度。设为0将使平均陆地高度变为高度(height)的一半。设为正值将抬升高度。","noise_settings.noise.height":"高度","noise_settings.noise.island_noise_override":"岛屿噪声覆盖","noise_settings.noise.island_noise_override.help":"如果设置为 true,生成的地形会像末地一样在中心有一个大岛、外部有许多小岛。","noise_settings.noise.min_y":"最小高度","noise_settings.noise.random_density_offset":"随机密度偏移","noise_settings.noise.sampling":"采样","noise_settings.noise.sampling.xz_factor":"XZ 因子","noise_settings.noise.sampling.xz_scale":"XZ 缩放","noise_settings.noise.sampling.y_factor":"Y 因子","noise_settings.noise.sampling.y_scale":"Y 缩放","noise_settings.noise.simplex_surface_noise":"单纯形表面噪声","noise_settings.noise.size_horizontal":"水平大小","noise_settings.noise.size_vertical":"垂直大小","noise_settings.noise.top_slide":"顶部曲线","noise_settings.noise.top_slide.help":"改变世界顶部曲线。顶部曲线大小(Size)为0时没有效果。","noise_settings.noise.top_slide.offset":"偏移","noise_settings.noise.top_slide.size":"大小","noise_settings.noise.top_slide.target":"目标","noise_settings.sea_level":"海平面","noise_settings.structures":"结构","noise_settings.structures.stronghold":"要塞","noise_settings.structures.stronghold.count":"数量","noise_settings.structures.stronghold.distance":"距离","noise_settings.structures.stronghold.spread":"分散","noise_settings.structures.structures":"结构","number_provider.max":"最大值","number_provider.min":"最小值","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"缩放","number_provider.score":"记分项","number_provider.target":"目标","number_provider.type":"类型","number_provider.type.binomial":"二项分布","number_provider.type.constant":"常数+","number_provider.type.number":"常数","number_provider.type.object":"均匀分布","number_provider.type.score":"分数","number_provider.type.uniform":"均匀分布+","number_provider.value":"数字","player.advancements":"进度","player.advancements.entry":"进度","player.gamemode":"游戏模式","player.level":"经验等级","player.recipes":"配方","player.stats":"统计","player.stats.entry":"统计","pos_rule_test.always_true":"总是为真","pos_rule_test.axis":"轴","pos_rule_test.axis.x":"X 轴","pos_rule_test.axis.y":"Y 轴","pos_rule_test.axis.z":"Z 轴","pos_rule_test.axis_aligned_linear_pos":"轴对齐线性插值坐标","pos_rule_test.linear_pos":"线性插值坐标","pos_rule_test.max_chance":"最大几率","pos_rule_test.max_dist":"最大距离","pos_rule_test.min_chance":"最小几率","pos_rule_test.min_dist":"最小距离","pos_rule_test.predicate_type":"类型","processor.block_age.mossiness":"苔藓度","processor.block_ignore.blocks":"方块","processor.block_ignore.blocks.entry":"状态","processor.block_rot.integrity":"完整性","processor.gravity.heightmap":"高度图","processor.gravity.offset":"偏移","processor.processor_type":"类型","processor.rule.rules":"规则","processor.rule.rules.entry":"规则","processor_list.processors":"处理器","processor_list.processors.entry":"处理器","processor_rule.input_predicate":"输入方块处理谓词","processor_rule.location_predicate":"结构生成前位置方块处理谓词","processor_rule.output_nbt":"输出 NBT","processor_rule.output_state":"输出方块状态","processor_rule.position_predicate":"位置方块处理谓词","processors.object":"自定义","processors.string":"引用","range.binomial":"二项分布","range.max":"最大值","range.min":"最小值","range.n":"N","range.number":"精确值","range.object":"范围","range.p":"P","range.type":"类型","range.uniform":"均匀分布","requirements":"应当达成","rule_test.always_true":"总是为真","rule_test.block":"方块","rule_test.block_match":"方块匹配","rule_test.block_state":"状态","rule_test.blockstate_match":"方块状态匹配","rule_test.predicate_type":"类型","rule_test.probability":"概率","rule_test.random_block_match":"方块随机匹配","rule_test.random_blockstate_match":"方块状态随机匹配","rule_test.tag":"标签","rule_test.tag_match":"标签匹配","score_provider.name":"名称","score_provider.target":"目标","score_provider.type":"类型","score_provider.type.context":"上下文+","score_provider.type.fixed":"固定","score_provider.type.string":"上下文","slot.chest":"胸部","slot.feet":"脚部","slot.head":"头部","slot.legs":"腿部","slot.mainhand":"主手","slot.offhand":"副手","statistic.stat":"统计","statistic.type":"类型","statistic.type.broken":"用坏","statistic.type.crafted":"合成","statistic.type.custom":"Custom(其他)","statistic.type.dropped":"掉落","statistic.type.killed":"击杀","statistic.type.killedByTeam":"被队伍击杀","statistic.type.killed_by":"被击杀","statistic.type.mined":"挖掘","statistic.type.picked_up":"捡起","statistic.type.teamkill":"击杀队伍","statistic.type.used":"使用","statistic.value":"值","status_effect.ambient":"是否为信标施加","status_effect.amplifier":"等级","status_effect.duration":"持续时间","status_effect.visible":"是否可见","structure_feature.biome_temp":"生物群系温度","structure_feature.biome_temp.cold":"寒冷","structure_feature.biome_temp.warm":"温暖","structure_feature.cluster_probability":"成簇概率","structure_feature.config":"配置","structure_feature.is_beached":"是否搁浅","structure_feature.large_probability":"大型概率","structure_feature.portal_type":"传送门类型","structure_feature.portal_type.desert":"沙漠","structure_feature.portal_type.jungle":"丛林","structure_feature.portal_type.mountain":"山","structure_feature.portal_type.nether":"下界","structure_feature.portal_type.ocean":"海洋","structure_feature.portal_type.standard":"基本","structure_feature.portal_type.swamp":"沼泽","structure_feature.probability":"概率","structure_feature.size":"尺寸","structure_feature.start_pool":"起始池","structure_feature.type":"类型","structure_feature.type.mesa":"恶地","structure_feature.type.normal":"普通","surface_builder.config":"配置","surface_builder.top_material":"顶部材料","surface_builder.type":"类型","surface_builder.under_material":"下层材料","surface_builder.underwater_material":"水下材料","table.type":"战利品表类型","table.type.block":"方块","table.type.chest":"箱子","table.type.empty":"空","table.type.entity":"实体","table.type.fishing":"钓鱼","table.type.generic":"通用","tag.replace":"覆盖","tag.values":"值","template_element.element_type":"类型","template_element.elements":"元素","template_element.feature":"地物","template_element.location":"结构的命名空间 ID","template_element.processors":"处理器","template_element.projection":"投影","template_element.projection.rigid":"直接生成","template_element.projection.terrain_matching":"匹配地形","template_pool.elements":"元素","template_pool.elements.entry":"元素","template_pool.elements.entry.element":"元素","template_pool.elements.entry.weight":"权重","template_pool.fallback":"回落池","template_pool.name":"名称","text_component":"文本组件","text_component.boolean":"布尔值","text_component.list":"数组","text_component.number":"数字","text_component.object":"对象","text_component.object.keybind":"键位绑定","text_component.object.nbt":"NBT值","text_component.object.score":"分数值","text_component.object.selector":"实体名称","text_component.object.text":"纯文本","text_component.object.translation":"翻译文本","text_component.string":"字符串","text_component_object.block":"方块","text_component_object.bold":"粗体","text_component_object.clickEvent":"点击事件","text_component_object.clickEvent.action":"行为","text_component_object.clickEvent.action.change_page":"翻页","text_component_object.clickEvent.action.copy_to_clipboard":"复制到剪贴板","text_component_object.clickEvent.action.open_file":"打开文件","text_component_object.clickEvent.action.open_url":"打开链接","text_component_object.clickEvent.action.run_command":"运行命令","text_component_object.clickEvent.action.suggest_command":"建议命令","text_component_object.clickEvent.value":"值","text_component_object.color":"颜色","text_component_object.entity":"实体","text_component_object.extra":"附加","text_component_object.font":"字体","text_component_object.hoverEvent":"悬浮事件","text_component_object.hoverEvent.action":"行为","text_component_object.hoverEvent.action.show_entity":"显示实体","text_component_object.hoverEvent.action.show_item":"显示物品","text_component_object.hoverEvent.action.show_text":"显示文字","text_component_object.hoverEvent.contents":"内容","text_component_object.hoverEvent.value":"值","text_component_object.insertion":"插入","text_component_object.interpret":"解析","text_component_object.italic":"斜体","text_component_object.keybind":"键位","text_component_object.nbt":"NBT","text_component_object.obfuscated":"混淆","text_component_object.score":"分数","text_component_object.score.name":"名称","text_component_object.score.objective":"记分项","text_component_object.score.value":"值","text_component_object.selector":"选择器","text_component_object.storage":"储存","text_component_object.strikethrough":"删除线","text_component_object.text":"文本","text_component_object.translate":"可翻译文本","text_component_object.underlined":"下划线","text_component_object.with":"以之翻译","tree_decorator.alter_ground.provider":"状态声明","tree_decorator.beehive.probability":"概率","tree_decorator.cocoa.probability":"概率","tree_decorator.type":"类型","true":"是","trunk_placer.base_height":"基础高度","trunk_placer.height_rand_a":"水平随机高度","trunk_placer.height_rand_b":"竖直随机高度","trunk_placer.type":"类型","uniform_int.base":"基值","uniform_int.number":"常数","uniform_int.object":"均匀分布","uniform_int.spread":"扩散","unset":"未指定","update.pack_format":"将pack_format升级到%0%","world.bonus_chest":"生成奖励箱","world.generate_features":"生成结构","world.seed":"种子","world_settings.bonus_chest":"生成奖励箱","world_settings.dimensions":"维度","world_settings.generate_features":"生成地物","world_settings.seed":"世界种子","worldgen.warning":"本特性为高度实验性的特性,很不稳定,在未来的版本中随时会有变动。请做好游戏在创建世界时崩溃的准备。","worldgen/biome_source.checkerboard":"棋盘","worldgen/biome_source.checkerboard.help":"以棋盘状区块图案生成的生物群系。","worldgen/biome_source.fixed":"固定","worldgen/biome_source.fixed.help":"整个世界只有单一生物群系。","worldgen/biome_source.multi_noise":"多重噪声","worldgen/biome_source.multi_noise.help":"可配置参数的自定义生物群系分布。","worldgen/biome_source.the_end":"末地","worldgen/biome_source.the_end.help":"末地的生物群系分布。","worldgen/biome_source.vanilla_layered":"原版分层","worldgen/biome_source.vanilla_layered.help":"主世界的生物群系分布。","worldgen/block_placer_type.column_placer":"柱状","worldgen/block_placer_type.double_plant_placer":"双层植物","worldgen/block_placer_type.simple_block_placer":"简单","worldgen/block_state_provider_type.forest_flower_provider":"繁花森林方块状态声明","worldgen/block_state_provider_type.plain_flower_provider":"平原花方块状态声明","worldgen/block_state_provider_type.rotated_block_provider":"旋转方块状态声明","worldgen/block_state_provider_type.simple_state_provider":"简单方块状态声明","worldgen/block_state_provider_type.weighted_state_provider":"加权方块状态声明","worldgen/carver.canyon":"峡谷","worldgen/carver.cave":"洞穴","worldgen/carver.nether_cave":"下界洞穴","worldgen/carver.underwater_canyon":"水下峡谷","worldgen/carver.underwater_cave":"水下洞穴","worldgen/chunk_generator.debug":"调试世界","worldgen/chunk_generator.flat":"超平坦","worldgen/chunk_generator.noise":"默认","worldgen/feature_size_type.three_layers_feature_size":"三层","worldgen/feature_size_type.two_layers_feature_size":"两层","worldgen/foliage_placer_type.acacia_foliage_placer":"金合欢","worldgen/foliage_placer_type.blob_foliage_placer":"橡树/白桦","worldgen/foliage_placer_type.bush_foliage_placer":"金字塔形","worldgen/foliage_placer_type.dark_oak_foliage_placer":"深色橡树","worldgen/foliage_placer_type.fancy_foliage_placer":"球形","worldgen/foliage_placer_type.jungle_foliage_placer":"丛林","worldgen/foliage_placer_type.mega_pine_foliage_placer":"双层稀疏云杉","worldgen/foliage_placer_type.pine_foliage_placer":"稀疏云杉","worldgen/foliage_placer_type.spruce_foliage_placer":"云杉","worldgen/structure_pool_element.empty_pool_element":"空","worldgen/structure_pool_element.feature_pool_element":"地物","worldgen/structure_pool_element.legacy_single_pool_element":"单个(旧版)","worldgen/structure_pool_element.list_pool_element":"列表","worldgen/structure_pool_element.single_pool_element":"单个","worldgen/structure_processor.blackstone_replace":"替代黑石","worldgen/structure_processor.block_age":"做旧方块","worldgen/structure_processor.block_ignore":"忽略方块","worldgen/structure_processor.block_rot":"随机移除方块","worldgen/structure_processor.gravity":"重力","worldgen/structure_processor.jigsaw_replacement":"拼图替换","worldgen/structure_processor.lava_submerged_block":"熔岩湮没方块","worldgen/structure_processor.nop":"无","worldgen/structure_processor.rule":"规则","worldgen/tree_decorator_type.alter_ground":"地面方块替换","worldgen/tree_decorator_type.beehive":"蜂箱","worldgen/tree_decorator_type.cocoa":"可可果","worldgen/tree_decorator_type.leave_vine":"树叶藤蔓","worldgen/tree_decorator_type.trunk_vine":"树干藤蔓","worldgen/trunk_placer_type.dark_oak_trunk_placer":"深色橡木型","worldgen/trunk_placer_type.fancy_trunk_placer":"多分叉型","worldgen/trunk_placer_type.forking_trunk_placer":"单分叉型","worldgen/trunk_placer_type.giant_trunk_placer":"2×2竖直型","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"大丛林木型","worldgen/trunk_placer_type.straight_trunk_placer":"竖直型","advancement":"进度","copy":"复制","dimension-type":"维度类型","download":"下载","fields":"字段","item-modifier":"物品修饰器","language":"语言","loot-table":"战利品表","predicate":"断言","preview":"可视化","preview.depth":"深度","preview.scale":"比例","preview.show_density":"显示密度","preview.width":"宽度","redo":"重做","reset":"重置","settings.fields.description":"自定义高级字段设置","settings.fields.name":"名称","settings.fields.path":"上下文","share":"分享","title.generator":"%0% 生成器","title.home":"数据包生成器","undo":"撤销","world":"世界设置","worldgen/biome":"生物群系","worldgen/carver":"地形雕刻器","worldgen/feature":"地物","worldgen/noise-settings":"噪声设置","worldgen/processor-list":"处理器列表","worldgen/structure-feature":"结构地物","worldgen/surface-builder":"地表生成器","worldgen/template-pool":"模板池"} \ No newline at end of file diff --git a/locales/zh-tw.json b/locales/zh-tw.json new file mode 100644 index 00000000..4d48e53e --- /dev/null +++ b/locales/zh-tw.json @@ -0,0 +1 @@ +{"advancement.criteria":"準則","advancement.display":"顯示","advancement.display.announce_to_chat":"在聊天欄提示","advancement.display.background":"背景","advancement.display.description":"描述","advancement.display.frame":"框架類型","advancement.display.frame.challenge":"挑戰","advancement.display.frame.goal":"目標","advancement.display.frame.task":"進度","advancement.display.help":"若存在,該進度會在進度介面中展示。","advancement.display.hidden":"隱藏","advancement.display.icon":"圖示","advancement.display.icon.item":"圖示物品","advancement.display.icon.nbt":"圖示物品 NBT","advancement.display.show_toast":"顯示右上角提示訊息","advancement.display.title":"標題","advancement.parent":"父進度","advancement.rewards":"獎勵","advancement.rewards.experience":"經驗","advancement.rewards.function":"函數","advancement.rewards.loot":"戰利品表","advancement.rewards.recipes":"配方","advancement_trigger.bee_nest_destroyed":"摧毀蜂窩","advancement_trigger.bred_animals":"繁殖動物","advancement_trigger.brewed_potion":"釀製藥水","advancement_trigger.changed_dimension":"改變維度","advancement_trigger.channeled_lightning":"喚雷附魔擊殺實體","advancement_trigger.construct_beacon":"構建烽火台結構","advancement_trigger.consume_item":"消耗物品","advancement_trigger.cured_zombie_villager":"治療殭屍村民","advancement_trigger.effects_changed":"狀態效果改變","advancement_trigger.enchanted_item":"附魔物品","advancement_trigger.enter_block":"進入方塊","advancement_trigger.entity_hurt_player":"實體傷害玩家","advancement_trigger.entity_killed_player":"實體殺死玩家","advancement_trigger.filled_bucket":"填滿鐵桶","advancement_trigger.fishing_rod_hooked":"釣竿勾住東西","advancement_trigger.hero_of_the_village":"村莊英雄","advancement_trigger.impossible":"不可達成","advancement_trigger.inventory_changed":"物品欄改變","advancement_trigger.item_durability_changed":"物品耐久度改變","advancement_trigger.item_used_on_block":"對方塊使用物品","advancement_trigger.killed_by_crossbow":"使用弩箭擊殺","advancement_trigger.levitation":"懸浮","advancement_trigger.location":"位置","advancement_trigger.nether_travel":"地獄旅行","advancement_trigger.placed_block":"放置方塊","advancement_trigger.player_generates_container_loot":"玩家生成容器戰利品","advancement_trigger.player_hurt_entity":"玩家傷害實體","advancement_trigger.player_killed_entity":"玩家殺死實體","advancement_trigger.recipe_unlocked":"配方解鎖","advancement_trigger.safely_harvest_honey":"安全地採集蜂蜜","advancement_trigger.shot_crossbow":"使用弩","advancement_trigger.slept_in_bed":"睡覺","advancement_trigger.slide_down_block":"從蜂蜜塊上滑下","advancement_trigger.summoned_entity":"召喚實體","advancement_trigger.tame_animal":"馴服動物","advancement_trigger.target_hit":"擊中標靶","advancement_trigger.thrown_item_picked_up_by_entity":"丟出的物品被實體撿起","advancement_trigger.tick":"刻","advancement_trigger.used_ender_eye":"使用終界之眼","advancement_trigger.used_totem":"使用不死圖騰","advancement_trigger.villager_trade":"村民交易","advancement_trigger.voluntary_exile":"引發突襲","attribute.generic_armor":"盔甲防禦點數","attribute.generic_armor_toughness":"盔甲強度","attribute.generic_attack_damage":"普通攻擊傷害","attribute.generic_attack_knockback":"擊退距離","attribute.generic_attack_speed":"攻擊速度","attribute.generic_flying_speed":"飛行速度","attribute.generic_follow_range":"追蹤範圍","attribute.generic_knockback_resistance":"抗擊退","attribute.generic_luck":"幸運","attribute.generic_max_health":"最高生命值","attribute.generic_movement_speed":"移動速度","attribute.horse.jump_strength":"跳躍力","attribute.zombie.spawn_reinforcements":"殭屍增援可能性","attribute_modifier.amount":"數量","attribute_modifier.attribute":"屬性","attribute_modifier.name":"名稱","attribute_modifier.operation":"運算模式","attribute_modifier.operation.addition":"加減數量","attribute_modifier.operation.multiply_base":"乘上數量","attribute_modifier.operation.multiply_total":"乘上(數量 + 1)","attribute_modifier.slot":"欄位","attribute_modifier.slot.list":"多個","attribute_modifier.slot.string":"單個","badge.experimental":"實驗性","badge.unstable":"不穩定","biome.carvers":"地形雕刻器","biome.carvers.air":"空氣","biome.carvers.liquid":"液體","biome.category":"分類","biome.creature_spawn_probability":"生物生成機率","biome.depth":"深度","biome.depth.help":"使地形抬升或下沉。正值被認為是陸地,負值被認為是海洋。","biome.downfall":"降水(此引數控制草/樹葉的顏色與火的蔓延速度)","biome.effects":"環境效果","biome.effects.additions_sound":"附加音效","biome.effects.additions_sound.sound":"音效","biome.effects.additions_sound.tick_chance":"每刻播放的機率","biome.effects.ambient_sound":"環境音效","biome.effects.fog_color":"迷霧顏色","biome.effects.foliage_color":"樹葉顏色","biome.effects.grass_color":"草的顏色","biome.effects.grass_color_modifier":"草顏色修飾子","biome.effects.grass_color_modifier.dark_forest":"黑森林","biome.effects.grass_color_modifier.none":"無","biome.effects.grass_color_modifier.swamp":"沼澤","biome.effects.mood_sound":"氛圍音效","biome.effects.mood_sound.block_search_extent":"播放位置搜尋半徑","biome.effects.mood_sound.offset":"偏移","biome.effects.mood_sound.sound":"音效","biome.effects.mood_sound.tick_delay":"刻延時","biome.effects.music":"音樂","biome.effects.music.max_delay":"最大延時","biome.effects.music.min_delay":"最小延時","biome.effects.music.replace_current_music":"替換當前音樂","biome.effects.music.sound":"音效","biome.effects.particle":"粒子","biome.effects.particle.options":"選項","biome.effects.particle.options.type":"粒子類型","biome.effects.particle.probability":"概率","biome.effects.sky_color":"天空顏色","biome.effects.water_color":"水的顏色","biome.effects.water_fog_color":"水中迷霧顏色","biome.features":"地物","biome.features.entry":"步驟 %0%","biome.features.entry.entry":"地物","biome.player_spawn_friendly":"玩家生成偏好","biome.player_spawn_friendly.help":"若為 true,世界出生點會優先選定在此生態域內。","biome.precipitation":"降雨量","biome.precipitation.none":"無","biome.precipitation.rain":"雨","biome.precipitation.snow":"雪","biome.scale":"規模","biome.scale.help":"豎直方向上拉伸地形。值越小,地形越平整。","biome.spawn_costs":"生成代價","biome.spawn_costs.charge":"電荷量","biome.spawn_costs.energy_budget":"電勢預算","biome.spawners":"生成器","biome.spawners.ambient":"環境生物","biome.spawners.creature":"生物(非怪物)","biome.spawners.entry":"生成","biome.spawners.entry.maxCount":"最大數量","biome.spawners.entry.minCount":"最小數量","biome.spawners.entry.type":"類型","biome.spawners.entry.weight":"權重","biome.spawners.misc":"雜項","biome.spawners.monster":"怪物","biome.spawners.water_ambient":"水下環境生物","biome.spawners.water_creature":"水生生物","biome.starts":"起始結構","biome.starts.entry":"結構","biome.starts.help":"配置過的結構地物的列表。","biome.surface_builder":"地表生成器","biome.temperature":"溫度","biome.temperature_modifier":"溫度修飾子","biome.temperature_modifier.frozen":"冰凍","biome.temperature_modifier.none":"無","block.block":"方塊 ID","block.nbt":"NBT","block.state":"方塊狀態","block.tag":"方塊標籤","block_placer.column_placer.extra_size":"額外尺寸","block_placer.column_placer.min_size":"最小尺寸","block_placer.type":"類型","block_state.Name":"名稱","block_state.Properties":"屬性","block_state_provider.rotated_block_provider.state":"狀態","block_state_provider.simple_state_provider.state":"狀態","block_state_provider.type":"類型","block_state_provider.weighted_state_provider.entries":"項目","block_state_provider.weighted_state_provider.entries.entry.data":"狀態","block_state_provider.weighted_state_provider.entries.entry.weight":"權重","carver.config":"配置","carver.config.probability":"概率","carver.type":"類型","children":"子","children.entry":"項目","condition.alternative.terms":"子條件","condition.block_state_property.block":"方塊","condition.block_state_property.properties":"方塊狀態","condition.condition":"條件","condition.damage_source":"傷害來源","condition.entity_properties.entity":"實體","condition.entity_scores.entity":"實體","condition.entity_scores.scores":"分數","condition.entry":"述詞","condition.inverted.term":"條件","condition.item":"物品","condition.killed_by_player.inverse":"取反","condition.list":"多個","condition.location":"位置","condition.location_check.offsetX":"X 座標偏移","condition.location_check.offsetY":"Y 座標偏移","condition.location_check.offsetZ":"Z 座標偏移","condition.object":"單個","condition.random_chance.chance":"機率","condition.random_chance_with_looting.chance":"機率","condition.random_chance_with_looting.looting_multiplier":"每等級掠奪附魔增加的數","condition.reference.name":"述詞 ID","condition.table_bonus.chances":"機率","condition.table_bonus.chances.entry":"機率","condition.table_bonus.enchantment":"附魔","condition.time_check.period":"週期","condition.time_check.period.help":"可選。若指定,在比較前會先將遊戲的時間以該數取模(例如,若設定為 24000,指定的值將會被運算為一天中的時間)。","condition.time_check.value":"值","condition.value_check.range":"範圍","condition.value_check.value":"值","condition.weather_check.raining":"下雨","condition.weather_check.thundering":"雷雨","conditions":"條件","conditions.entry":"條件","conditions.list":"條件","conditions.object":"舊版","copy_source.block_entity":"方塊實體","copy_source.direct_killer":"直接擊殺實體","copy_source.killer":"擊殺實體","copy_source.killer_player":"擊殺玩家","copy_source.this":"自身","criterion.bee_nest_destroyed.block":"方塊","criterion.bee_nest_destroyed.num_bees_inside":"內部蜜蜂的數量","criterion.bred_animals.child":"幼體","criterion.bred_animals.parent":"父或母","criterion.bred_animals.partner":"配偶","criterion.brewed_potion.potion":"藥水 ID","criterion.changed_dimension.from":"出發維度","criterion.changed_dimension.to":"到達維度","criterion.channeled_lightning.victims":"受害實體","criterion.channeled_lightning.victims.entry":"實體","criterion.conditions":"條件","criterion.construct_beacon.beacon_level":"金字塔等級","criterion.consume_item.item":"物品","criterion.cured_zombie_villager.villager":"村民","criterion.cured_zombie_villager.zombie":"殭屍","criterion.effects_changed.effects":"狀態效果","criterion.enchanted_item.item":"物品","criterion.enchanted_item.levels":"經驗等級","criterion.enter_block.block":"方塊","criterion.enter_block.state":"方塊狀態","criterion.entity_hurt_player.damage":"傷害","criterion.entity_killed_player.entity":"源實體","criterion.entity_killed_player.killing_blow":"傷害類型","criterion.filled_bucket.item":"物品","criterion.fishing_rod_hooked.entity":"被拉的實體","criterion.fishing_rod_hooked.item":"物品","criterion.hero_of_the_village.location":"位置","criterion.inventory_changed.items":"物品","criterion.inventory_changed.items.entry":"物品","criterion.inventory_changed.slots":"欄位","criterion.inventory_changed.slots.empty":"空欄位的數量","criterion.inventory_changed.slots.full":"滿欄位的數量","criterion.inventory_changed.slots.occupied":"已用欄位的數量","criterion.item_durability_changed.delta":"差值","criterion.item_durability_changed.durability":"耐久度","criterion.item_durability_changed.item":"物品","criterion.item_used_on_block.item":"物品","criterion.item_used_on_block.location":"位置","criterion.killed_by_crossbow.unique_entity_types":"實體種類的數量","criterion.killed_by_crossbow.victims":"受害實體","criterion.killed_by_crossbow.victims.entry":"實體","criterion.levitation.distance":"距離","criterion.levitation.duration":"維持時間","criterion.location.location":"位置","criterion.nether_travel.distance":"距離","criterion.nether_travel.entered":"進入位置","criterion.nether_travel.exited":"退出位置","criterion.placed_block.block":"方塊","criterion.placed_block.item":"物品","criterion.placed_block.location":"位置","criterion.placed_block.state":"方塊狀態","criterion.player":"玩家","criterion.player_generates_container_loot.loot_table":"戰利品表","criterion.player_hurt_entity.damage":"傷害","criterion.player_hurt_entity.entity":"受害實體","criterion.player_killed_entity.entity":"受害實體","criterion.player_killed_entity.killing_blow":"傷害類型","criterion.recipe_unlocked.recipe":"配方","criterion.rod":"釣竿","criterion.safely_harvest_honey.block":"方塊","criterion.safely_harvest_honey.item":"物品","criterion.shot_crossbow.item":"物品","criterion.slept_in_bed.location":"位置","criterion.slide_down_block.block":"方塊","criterion.summoned_entity.entity":"實體","criterion.tame_animal.entity":"動物","criterion.target_hit.projectile":"投射物","criterion.target_hit.shooter":"射擊者","criterion.target_hit.signal_strength":"訊號強度","criterion.thrown_item_picked_up_by_entity.entity":"實體","criterion.thrown_item_picked_up_by_entity.item":"物品","criterion.trigger":"觸發器","criterion.used_ender_eye.distance":"距離","criterion.used_totem.item":"圖騰物品","criterion.villager_trade.item":"購得物品","criterion.villager_trade.villager":"村民","criterion.voluntary_exile.location":"位置","damage.blocked":"是否被阻擋","damage.dealt":"應當受到傷害","damage.source_entity":"源實體","damage.taken":"實際受到傷害","damage.type":"傷害類型","damage_source.bypasses_armor":"破甲","damage_source.bypasses_invulnerability":"虛空","damage_source.bypasses_magic":"飢餓","damage_source.direct_entity":"直接來源實體","damage_source.is_explosion":"爆炸","damage_source.is_fire":"燃燒","damage_source.is_lightning":"雷擊","damage_source.is_magic":"魔法","damage_source.is_projectile":"投射物","damage_source.source_entity":"根本來源實體","decorator.carving_mask.step":"生成步驟","decorator.config":"配置","decorator.count.count":"數量","decorator.count_extra.count":"數量","decorator.count_extra.extra_chance":"額外機率","decorator.count_extra.extra_count":"額外數量","decorator.count_multilayer.count":"數量","decorator.count_noise.above_noise":"閾值上噪聲","decorator.count_noise.below_noise":"閾值下噪聲","decorator.count_noise.noise_level":"噪聲等級","decorator.count_noise_biased.noise_factor":"噪聲因子","decorator.count_noise_biased.noise_offset":"噪聲偏移量","decorator.count_noise_biased.noise_to_count_ratio":"噪數比","decorator.decorated.inner":"內部","decorator.decorated.outer":"外部","decorator.depth_average.baseline":"基準線","decorator.depth_average.spread":"擴散","decorator.glowstone.count":"數量","decorator.type":"類型","dimension":"維度","dimension.generator":"生成器","dimension.generator.biome_source":"生態域源","dimension.overworld":"主世界","dimension.the_end":"終末之界","dimension.the_nether":"地獄","dimension.type":"維度類型","dimension.type.object":"自訂","dimension.type.string":"預設","dimension_type.ambient_light":"環境光","dimension_type.ambient_light.help":"位於 0 與 1 之間的值。","dimension_type.bed_works":"床有效","dimension_type.bed_works.help":"若為 true,玩家可以使用床來設定重生點並跳過夜晚。若為 false,則使用床會爆炸。","dimension_type.coordinate_scale":"座標縮放","dimension_type.coordinate_scale.help":"在維度間傳送時(使用地獄傳送門或 /execute in)對座標使用的縮放倍數。","dimension_type.effects":"環境效果","dimension_type.effects.help":"天空效果","dimension_type.effects.overworld":"主世界","dimension_type.effects.the_end":"終末之界","dimension_type.effects.the_nether":"地獄","dimension_type.fixed_time":"固定時間","dimension_type.fixed_time.help":"設定該值會導致太陽處在某一固定位置。","dimension_type.has_ceiling":"具有天花板","dimension_type.has_ceiling.help":"影響天氣,地圖物品和重生規則。","dimension_type.has_raids":"生成突襲","dimension_type.has_raids.help":"若為 true,擁有不祥之兆效果的玩家會導致突襲。","dimension_type.has_skylight":"具有天空光照","dimension_type.has_skylight.help":"影響天氣,光照引擎和重生規則。","dimension_type.height":"高度","dimension_type.infiniburn":"無盡燃燒方塊","dimension_type.infiniburn.help":"定義能夠使火在其上永久燃燒的方塊標籤。","dimension_type.logical_height":"合規高度","dimension_type.logical_height.help":"在此高度以上,傳送門不會生成,歌萊果也不再能傳送玩家。","dimension_type.min_y":"最小高度","dimension_type.name":"名稱","dimension_type.natural":"自然","dimension_type.natural.help":"若設定為 true,傳送門中會生成殭屍化豬布林。若設定為 false,指南針與時鐘會不斷隨機旋轉。","dimension_type.piglin_safe":"豬布林不轉換","dimension_type.piglin_safe.help":"若為 false,豬布林會開始顫抖並轉化為殭屍化豬布林。","dimension_type.respawn_anchor_works":"重生錨有效","dimension_type.respawn_anchor_works.help":"若為 true,玩家可以充能並使用重生錨來設定重生點。若為 false,使用重生錨會爆炸。","dimension_type.ultrawarm":"極熱","dimension_type.ultrawarm.help":"若設定為 true,水會蒸發且海綿會變乾。","distance.absolute":"絕對距離","distance.horizontal":"水平距離","distance.x":"X","distance.y":"Y","distance.z":"Z","enchantment.aqua_affinity":"親水性","enchantment.bane_of_arthropods":"節肢剋星","enchantment.binding_curse":"綁定詛咒","enchantment.blast_protection":"爆炸保護","enchantment.channeling":"喚雷","enchantment.depth_strider":"深海漫遊","enchantment.efficiency":"效率","enchantment.enchantment":"附魔","enchantment.feather_falling":"輕盈","enchantment.fire_aspect":"燃燒","enchantment.fire_protection":"火焰保護","enchantment.flame":"火焰","enchantment.fortune":"幸運","enchantment.frost_walker":"冰霜行者","enchantment.impaling":"魚叉","enchantment.infinity":"無限","enchantment.knockback":"擊退","enchantment.levels":"等級","enchantment.looting":"掠奪","enchantment.loyalty":"忠誠","enchantment.luck_of_the_sea":"海洋的祝福","enchantment.lure":"魚餌","enchantment.mending":"修補","enchantment.multishot":"分裂箭矢","enchantment.piercing":"貫穿","enchantment.power":"強力","enchantment.projectile_protection":"投射物保護","enchantment.protection":"保護","enchantment.punch":"衝擊","enchantment.quick_charge":"快速上弦","enchantment.respiration":"水中呼吸","enchantment.riptide":"波濤","enchantment.sharpness":"鋒利","enchantment.silk_touch":"絲綢之觸","enchantment.smite":"不死剋星","enchantment.sweeping":"橫掃之刃","enchantment.thorns":"尖刺","enchantment.unbreaking":"耐久","enchantment.vanishing_curse":"消失詛咒","entity.distance":"到執行位置的距離","entity.effects":"狀態效果","entity.equipment":"裝備","entity.fishing_hook":"浮標","entity.fishing_hook.in_open_water":"位於開闊水域","entity.flags":"實體特徵","entity.isBaby":"是幼體","entity.isOnFire":"正在著火","entity.isSneaking":"正在潛行","entity.isSprinting":"正在疾走","entity.isSwimming":"正在游泳","entity.location":"位置","entity.nbt":"NBT","entity.player":"玩家","entity.targeted_entity":"目標實體","entity.team":"隊伍","entity.type":"實體","entity.vehicle":"載具","entity_source.direct_killer":"直接擊殺實體","entity_source.killer":"擊殺者","entity_source.killer_player":"擊殺者玩家","entity_source.this":"自身","entry":"項目","error":"錯誤","error.expected_boolean":"期望一個布林值","error.expected_integer":"期望一個整數","error.expected_json":"期望 JSON","error.expected_list":"期望一個陣列","error.expected_number":"期望一個數字","error.expected_object":"期望一個物件","error.expected_range":"期望一個範圍","error.expected_string":"期望一個字串","error.expected_uniform_int":"期望一個均勻分布整數","error.height_multiple":"高度必須是 %0% 的倍數","error.invalid_binomial":"不能使用二項分布型的範圍","error.invalid_empty_list":"不能使用空陣列","error.invalid_empty_string":"不能使用空字串","error.invalid_enum_option":"選項「%0%」無效","error.invalid_exact":"不能使用常數型的範圍","error.invalid_list_range.exact":"期望一個長度為 %1% 的串列","error.invalid_list_range.larger":"串列長度 %0% 比最大值 %1% 大","error.invalid_list_range.smaller":"串列長度 %0% 比最小值 %1% 小","error.invalid_number_range.between":"期望一個位於 %0% 與 %1% 之間的數字","error.invalid_number_range.larger":"值 %0% 比最大值 %1% 大","error.invalid_number_range.smaller":"值 %0% 比最小值 %1% 小","error.invalid_pattern":"字串無效:%0%","error.logical_height":"合規高度不能高於高度","error.min_y_multiple":"最小高度必須是 %0% 的倍數","error.min_y_plus_height":"最小高度 + 高度(Min Y + Height)不能高於 %0%","error.recipe.invalid_key":"只能使用單個字元作為鍵","error.separation_smaller_spacing":"間隔(separation)的值必須小於空位(spacing)","false":"否","feature.bamboo.probability":"概率","feature.basalt_columns.height":"高度","feature.basalt_columns.reach":"範圍","feature.block_pile.state_provider":"狀態聲明","feature.config":"配置","feature.decorated.decorator":"裝飾器","feature.decorated.feature":"地物","feature.delta_feature.contents":"三角洲內部方塊","feature.delta_feature.rim":"三角洲邊緣方塊","feature.delta_feature.rim_size":"邊緣尺寸","feature.delta_feature.size":"尺寸","feature.disk.half_height":"半高","feature.disk.radius":"半徑","feature.disk.state":"狀態","feature.disk.targets":"目標","feature.disk.targets.entry":"狀態","feature.dripstone_cluster.density":"密度","feature.dripstone_cluster.dripstone_block_layer_thickness":"方塊層厚度","feature.dripstone_cluster.floor_to_ceiling_search_range":"搜尋範圍","feature.dripstone_cluster.floor_to_ceiling_search_range.help":"地板至天花板的搜尋範圍。","feature.dripstone_cluster.height":"高度","feature.dripstone_cluster.height_deviation":"高度偏差","feature.dripstone_cluster.max_distance_from_center_affecting_chance_of_dripstone_column":"石柱機率距離","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias":"高度偏差距離","feature.dripstone_cluster.max_distance_from_center_affecting_height_bias.help":"影響高度偏差的離中心的最大距離。","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff":"最大高度差","feature.dripstone_cluster.max_stalagmite_stalactite_height_diff.help":"石筍和鐘乳石的最大高度差。","feature.dripstone_cluster.radius":"半徑","feature.dripstone_cluster.wetness":"溼度","feature.dripstone_cluster.wetness_deviation":"溼度偏差","feature.dripstone_cluster.wetness_mean":"溼度平均值","feature.emerald_ore.state":"狀態","feature.emerald_ore.target":"目標","feature.end_gateway.exact":"精確傳送","feature.end_gateway.exit":"出口位置","feature.end_spike.crystal_beam_target":"終界水晶光柱目標","feature.end_spike.crystal_invulnerable":"終界水晶無敵狀態","feature.end_spike.spikes":"終界黑曜石柱","feature.end_spike.spikes.entry":"終界黑曜石柱","feature.end_spike.spikes.entry.centerX":"中心 X 座標","feature.end_spike.spikes.entry.centerZ":"中心 Z 座標","feature.end_spike.spikes.entry.guarded":"鐵柵欄保護","feature.end_spike.spikes.entry.height":"高度","feature.end_spike.spikes.entry.radius":"半徑","feature.fill_layer.height":"高度","feature.fill_layer.state":"狀態","feature.flower.blacklist":"黑名單","feature.flower.block_placer":"方塊放置器","feature.flower.can_replace":"可取代","feature.flower.need_water":"需要水","feature.flower.project":"投影","feature.flower.state_provider":"狀態聲明","feature.flower.tries":"嘗試次數","feature.flower.whitelist":"白名單","feature.flower.xspread":"X 軸擴散","feature.flower.yspread":"Y 軸擴散","feature.flower.zspread":"Z 軸擴散","feature.forest_rock.state":"狀態","feature.huge_brown_mushroom.cap_provider":"菌蓋聲明","feature.huge_brown_mushroom.foliage_radius":"菌蓋大小","feature.huge_brown_mushroom.stem_provider":"菌柄聲明","feature.huge_fungus.decor_state":"裝飾","feature.huge_fungus.hat_state":"頂部","feature.huge_fungus.planted":"已種植","feature.huge_fungus.stem_state":"蕈柄","feature.huge_fungus.valid_base_block":"有效底部方塊","feature.huge_red_mushroom.cap_provider":"菌蓋聲明","feature.huge_red_mushroom.foliage_radius":"菌蓋大小","feature.huge_red_mushroom.stem_provider":"菌柄聲明","feature.ice_patch.half_height":"半高","feature.ice_patch.radius":"半徑","feature.ice_patch.state":"狀態","feature.ice_patch.targets":"目標","feature.ice_patch.targets.entry":"狀態","feature.iceberg.state":"狀態","feature.lake.state":"狀態","feature.large_dripstone.column_radius":"石柱半徑","feature.large_dripstone.floor_to_ceiling_search_range":"搜尋範圍","feature.large_dripstone.floor_to_ceiling_search_range.help":"地板至天花板的搜尋範圍。","feature.large_dripstone.height_scale":"高度比例","feature.large_dripstone.max_column_radius_to_cave_height_ratio":"半徑與洞穴高度比","feature.large_dripstone.min_bluntness_for_wind":"風的最小鈍度","feature.large_dripstone.min_radius_for_wind":"風的最小半徑","feature.large_dripstone.stalactite_bluntness":"鐘乳石鈍度","feature.large_dripstone.stalagmite_bluntness":"石筍鈍度","feature.large_dripstone.wind_speed":"風速","feature.nether_forest_vegetation.state_provider":"狀態聲明","feature.netherrack_replace_blobs.radius":"半徑","feature.netherrack_replace_blobs.state":"狀態","feature.netherrack_replace_blobs.target":"目標","feature.no_surface_ore.size":"尺寸","feature.no_surface_ore.state":"狀態","feature.no_surface_ore.target":"目標","feature.object":"自訂","feature.ore.size":"尺寸","feature.random_boolean_selector.feature_false":"地物 1","feature.random_boolean_selector.feature_true":"地物 2","feature.random_patch.blacklist":"黑名單","feature.random_patch.block_placer":"方塊放置器","feature.random_patch.can_replace":"可取代","feature.random_patch.need_water":"需要水","feature.random_patch.project":"投影","feature.random_patch.state_provider":"狀態聲明","feature.random_patch.tries":"嘗試次數","feature.random_patch.whitelist":"白名單","feature.random_patch.xspread":"X 軸擴散","feature.random_patch.yspread":"Y 軸擴散","feature.random_patch.zspread":"Z 軸擴散","feature.random_selector.default":"預設","feature.random_selector.features":"地物","feature.random_selector.features.entry":"地物","feature.random_selector.features.entry.chance":"機率","feature.random_selector.features.entry.feature":"地物","feature.sea_pickle.count":"數量","feature.seegrass.probability":"概率","feature.simple_block.place_in":"將要放置的位置的方塊","feature.simple_block.place_in.entry":"狀態","feature.simple_block.place_on":"下方的方塊","feature.simple_block.place_on.entry":"狀態","feature.simple_block.place_under":"上方的方塊","feature.simple_block.place_under.entry":"狀態","feature.simple_block.to_place":"將要放置的方塊","feature.simple_random_selector.features":"地物","feature.simple_random_selector.features.entry":"地物","feature.small_dripstone.empty_space_search_radius":"空域搜尋半徑","feature.small_dripstone.max_offset_from_origin":"距來源的最大偏移","feature.small_dripstone.max_placements":"最大放置","feature.spring_feature.hole_count":"坑洞數量","feature.spring_feature.required_block_below":"下方需要方塊","feature.spring_feature.rock_count":"岩石數量","feature.spring_feature.state":"狀態","feature.spring_feature.valid_blocks":"有效方塊","feature.string":"參照","feature.tree.decorators":"裝飾器","feature.tree.decorators.entry":"樹裝飾器","feature.tree.foliage_placer":"樹葉放置器","feature.tree.heightmap":"高度圖","feature.tree.ignore_vines":"忽略藤蔓","feature.tree.leaves_provider":"樹葉方塊聲明","feature.tree.max_water_depth":"樹生成的最大水深","feature.tree.minimum_size":"最小尺寸","feature.tree.minimum_size.limit":"限制","feature.tree.minimum_size.lower_size":"下部尺寸","feature.tree.minimum_size.middle_size":"中部尺寸","feature.tree.minimum_size.min_clipped_height":"最小剪裁高度","feature.tree.minimum_size.type":"最小尺寸","feature.tree.minimum_size.upper_limit":"上部限制","feature.tree.minimum_size.upper_size":"上部尺寸","feature.tree.trunk_placer":"樹幹放置器","feature.tree.trunk_provider":"樹幹方塊聲明","feature.type":"類型","fluid.fluid":"流體 ID","fluid.state":"流體狀態","fluid.tag":"流體標籤","fluid_state.Name":"名稱","fluid_state.Properties":"屬性","foliage_placer.crown_height":"樹冠高度","foliage_placer.height":"高度","foliage_placer.offset":"偏移","foliage_placer.radius":"半徑","foliage_placer.trunk_height":"樹幹高度","foliage_placer.type":"類型","function.apply_bonus.enchantment":"附魔","function.apply_bonus.formula":"公式","function.apply_bonus.formula.binomial_with_bonus_count":"帶獎勵數量的二項分布","function.apply_bonus.formula.ore_drops":"礦物掉落","function.apply_bonus.formula.uniform_bonus_count":"帶獎勵數量的均勻分布","function.apply_bonus.parameters":"引數","function.apply_bonus.parameters.bonusMultiplier":"乘數","function.apply_bonus.parameters.extra":"額外值","function.apply_bonus.parameters.probability":"概率","function.copy_name.source":"源","function.copy_nbt.ops":"NBT 操作","function.copy_nbt.ops.entry":"操作","function.copy_nbt.source":"源","function.copy_state.block":"方塊","function.copy_state.properties":"方塊狀態","function.copy_state.properties.entry":"屬性","function.enchant_randomly.enchantments":"可選附魔","function.enchant_randomly.enchantments.entry":"附魔","function.enchant_with_levels.levels":"等級","function.enchant_with_levels.treasure":"寶藏型附魔","function.exploration_map.decoration":"圖示","function.exploration_map.destination":"目標","function.exploration_map.search_radius":"搜尋半徑","function.exploration_map.skip_existing_chunks":"跳過已生成區塊","function.exploration_map.zoom":"縮放等級","function.fill_player_head.entity":"實體","function.function":"函數","function.limit_count.limit":"限額","function.list":"多個","function.looting_enchant.count":"數量","function.looting_enchant.limit":"限制","function.object":"單個","function.set_attributes.modifiers":"屬性修飾符","function.set_attributes.modifiers.entry":"屬性修飾符","function.set_banner_pattern.append":"追加","function.set_banner_pattern.patterns":"圖案","function.set_contents.entries":"內容物","function.set_contents.entries.entry":"項目","function.set_count.add":"加上","function.set_count.add.help":"若為 true,將會相對於目前的物品數量更改","function.set_count.count":"數量","function.set_damage.add":"加上","function.set_damage.add.help":"若為 true,將會相對於目前的損傷值更改","function.set_damage.damage":"損傷值","function.set_data.data":"資料值","function.set_enchantments.add":"加上","function.set_enchantments.add.help":"若為 true,將會相對於目前的等級更改","function.set_enchantments.enchantments":"附魔","function.set_loot_table.name":"戰利品表名","function.set_loot_table.seed":"種子碼","function.set_lore.entity":"實體","function.set_lore.lore":"物品描述","function.set_lore.lore.entry":"一行","function.set_lore.replace":"覆蓋","function.set_name.entity":"實體","function.set_name.name":"名稱","function.set_nbt.tag":"NBT","function.set_stew_effect.effects":"狀態效果","function.set_stew_effect.effects.entry":"效果種類","function.set_stew_effect.effects.entry.duration":"維持時間","function.set_stew_effect.effects.entry.type":"效果種類","functions":"函數","functions.entry":"函數","gamemode.adventure":"冒險模式","gamemode.creative":"創造模式","gamemode.spectator":"旁觀者模式","gamemode.survival":"生存模式","generation_step.air":"空氣","generation_step.liquid":"液體","generator.biome_source.altitude_noise":"高度噪聲","generator.biome_source.biome":"生態域","generator.biome_source.biomes":"生態域","generator.biome_source.humidity_noise":"溼度噪聲","generator.biome_source.large_biomes":"大型生態域","generator.biome_source.legacy_biome_init_layer":"舊版生態域初始層","generator.biome_source.preset":"生態域預設","generator.biome_source.preset.nether":"地獄","generator.biome_source.scale":"縮放","generator.biome_source.seed":"生態域種子碼","generator.biome_source.temperature_noise":"溫度噪聲","generator.biome_source.type":"生態域源","generator.biome_source.weirdness_noise":"扭曲度噪聲","generator.seed":"維度種子碼","generator.settings":"生成器設定","generator.settings.biome":"生態域","generator.settings.lakes":"湖","generator.settings.layers":"層","generator.settings.layers.entry":"層","generator.settings.layers.entry.block":"方塊 ID","generator.settings.layers.entry.height":"高度","generator.settings.object":"自訂","generator.settings.presets.amplified":"巨大化","generator.settings.presets.caves":"洞穴","generator.settings.presets.end":"終界","generator.settings.presets.floating_islands":"浮空島嶼","generator.settings.presets.nether":"地獄","generator.settings.presets.overworld":"主世界","generator.settings.string":"預設","generator.settings.structures":"結構","generator.settings.structures.stronghold":"要塞","generator.settings.structures.stronghold.count":"數量","generator.settings.structures.stronghold.distance":"距離","generator.settings.structures.stronghold.spread":"擴散度","generator.settings.structures.structures":"結構","generator.type":"生成器類型","generator_biome.biome":"生態域","generator_biome.parameters":"引數","generator_biome.parameters.altitude":"海拔","generator_biome.parameters.help":"這些引數決定了該生態域的生成位置。每個生態域都必須擁有不同的設定組合。設定相近的生態域會生成在一起。","generator_biome.parameters.humidity":"溼度","generator_biome.parameters.offset":"偏移","generator_biome.parameters.temperature":"溫度","generator_biome.parameters.weirdness":"扭曲度","generator_biome_noise.amplitudes":"振幅","generator_biome_noise.amplitudes.entry":"倍頻 %0%","generator_biome_noise.firstOctave":"主倍頻","generator_structure.salt":"鹽值","generator_structure.separation":"間隔","generator_structure.separation.help":"以區塊為單位的此種類的兩個結構之間的最小距離。","generator_structure.spacing":"空位","generator_structure.spacing.help":"以區塊為單位的此種類的兩種結構之間的平均距離。","heightmap_type.MOTION_BLOCKING":"阻擋實體移動層","heightmap_type.MOTION_BLOCKING_NO_LEAVES":"阻擋實體移動層(不含樹葉)","heightmap_type.OCEAN_FLOOR":"海床層","heightmap_type.OCEAN_FLOOR_WG":"海床層(世界生成)","heightmap_type.WORLD_SURFACE":"地表層","heightmap_type.WORLD_SURFACE_WG":"地表層(世界生成)","hide_source":"隱藏原始碼","item.count":"數量","item.durability":"耐久度","item.enchantments":"附魔","item.enchantments.entry":"附魔","item.item":"名稱","item.nbt":"NBT","item.potion":"藥水","item.tag":"標籤","key.advancements":"進度","key.attack":"攻擊/破壞","key.back":"後退","key.chat":"開啟聊天欄","key.command":"開啟指令視窗","key.drop":"丟棄已選擇的物品","key.forward":"前進","key.fullscreen":"切換全螢幕","key.hotbar.1":"快捷欄 1","key.hotbar.2":"快捷欄 2","key.hotbar.3":"快捷欄 3","key.hotbar.4":"快捷欄 4","key.hotbar.5":"快捷欄 5","key.hotbar.6":"快捷欄 6","key.hotbar.7":"快捷欄 7","key.hotbar.8":"快捷欄 8","key.hotbar.9":"快捷欄 9","key.inventory":"開啟/關閉物品欄","key.jump":"跳躍","key.left":"往左","key.loadToolbarActivator":"載入工具列","key.pickItem":"選取方塊","key.playerlist":"列出玩家","key.right":"往右","key.saveToolbarActivator":"儲存工具列","key.screenshot":"擷取螢幕畫面","key.smoothCamera":"切換視角平滑移動","key.sneak":"潛行","key.spectatorOutlines":"標示玩家(旁觀者)","key.sprint":"跑步","key.swapOffhand":"交換兩手物品","key.togglePerspective":"切換視角","key.use":"使用物品/放置方塊","location.biome":"生態域","location.block":"方塊","location.dimension":"維度","location.feature":"地物","location.fluid":"流體","location.light":"光照","location.light.light":"可見光等級","location.position":"位置","location.position.x":"X 座標","location.position.y":"Y 座標","location.position.z":"Z 座標","location.smokey":"煙燻","loot_condition_type.alternative":"析取範式(或)","loot_condition_type.block_state_property":"方塊屬性","loot_condition_type.damage_source_properties":"傷害來源","loot_condition_type.entity_properties":"實體屬性","loot_condition_type.entity_scores":"實體分數","loot_condition_type.inverted":"取反(非)","loot_condition_type.killed_by_player":"被玩家殺死","loot_condition_type.location_check":"檢查位置","loot_condition_type.match_tool":"工具是否符合","loot_condition_type.random_chance":"隨機概率","loot_condition_type.random_chance_with_looting":"受掠奪附魔影響的隨機概率","loot_condition_type.reference":"參照述詞檔案","loot_condition_type.survives_explosion":"未被爆炸破壞","loot_condition_type.table_bonus":"附魔獎勵","loot_condition_type.time_check":"檢查時間","loot_condition_type.value_check":"檢查值","loot_condition_type.weather_check":"檢查天氣","loot_entry.dynamic.name":"名稱","loot_entry.item.name":"名稱","loot_entry.loot_table.name":"戰利品表名","loot_entry.quality":"每等級幸運對權重的影響","loot_entry.tag.expand":"展開","loot_entry.tag.expand.help":"若為 false,該項目將會返回指定物品標籤的全部內容;否則將會從中隨機抽取一個返回。","loot_entry.tag.name":"物品標籤名","loot_entry.type":"類型","loot_entry.weight":"權重","loot_function_type.apply_bonus":"應用獎勵公式","loot_function_type.copy_name":"複製方塊實體顯示名","loot_function_type.copy_nbt":"複製 NBT","loot_function_type.copy_state":"複製方塊狀態","loot_function_type.enchant_randomly":"隨機附魔","loot_function_type.enchant_with_levels":"給予等價于經驗等級的隨機附魔","loot_function_type.exploration_map":"設定探險家地圖","loot_function_type.explosion_decay":"爆炸損耗","loot_function_type.fill_player_head":"填充玩家頭顱","loot_function_type.furnace_smelt":"熔爐熔煉","loot_function_type.limit_count":"限制堆疊數量","loot_function_type.looting_enchant":"根據掠奪附魔調整物品數量","loot_function_type.set_attributes":"設定屬性","loot_function_type.set_banner_pattern":"設定旗幟圖案","loot_function_type.set_contents":"設定內容物","loot_function_type.set_count":"設定物品數量","loot_function_type.set_damage":"設定損傷值","loot_function_type.set_data":"設定資料值","loot_function_type.set_enchantments":"設定附魔","loot_function_type.set_loot_table":"設定戰利品表","loot_function_type.set_lore":"設定物品描述","loot_function_type.set_name":"設定物品名","loot_function_type.set_nbt":"設定 NBT","loot_function_type.set_stew_effect":"設定可疑的燉湯狀態效果","loot_pool.bonus_rolls":"每等級幸運增加的抽取次數","loot_pool.entries":"項目","loot_pool.entries.entry":"項目","loot_pool.rolls":"抽取次數","loot_pool.rolls.help":"隨機抽取的項目數。","loot_pool_entry_type.alternatives":"析取範式","loot_pool_entry_type.alternatives.help":"獲取第一個滿足條件的子項目。","loot_pool_entry_type.dynamic":"動態","loot_pool_entry_type.dynamic.help":"獲取特定方塊的特定掉落物。","loot_pool_entry_type.empty":"空","loot_pool_entry_type.empty.help":"不向隨機池中加入任何物品。","loot_pool_entry_type.group":"組","loot_pool_entry_type.group.help":"從所有滿足條件的子項目中隨機抽取一個。","loot_pool_entry_type.item":"物品","loot_pool_entry_type.item.help":"加入一種物品。","loot_pool_entry_type.loot_table":"戰利品表","loot_pool_entry_type.loot_table.help":"加入另一個戰利品表的內容。","loot_pool_entry_type.sequence":"序列","loot_pool_entry_type.sequence.help":"從第一個不滿足條件的子項目之前的所有子項目中隨機抽取一個。","loot_pool_entry_type.tag":"物品標籤","loot_pool_entry_type.tag.help":"添加一個物品標籤的內容。","loot_table.pools":"隨機池","loot_table.pools.entry":"隨機池","loot_table.type":"類型","luck_based":"受幸運等級影響","nbt_operation.op":"操作類型","nbt_operation.op.append":"追加","nbt_operation.op.merge":"合併","nbt_operation.op.replace":"替換","nbt_operation.source":"複製源","nbt_operation.target":"複製目標","nbt_provider.source":"來源","nbt_provider.target":"目標","nbt_provider.type":"類型","nbt_provider.type.context":"上下文+","nbt_provider.type.storage":"指令容器","nbt_provider.type.string":"上下文","noise_settings.bedrock_floor_position":"基岩地板位置","noise_settings.bedrock_floor_position.help":"基岩地板的位置。數字越大地板越靠上。","noise_settings.bedrock_roof_position":"基岩天花板位置","noise_settings.bedrock_roof_position.help":"基岩天花板從世界高度開始計算的相對位置。數字越大天花板越靠下。","noise_settings.biome":"生態域","noise_settings.default_block":"預設方塊","noise_settings.default_fluid":"預設流體","noise_settings.disable_mob_generation":"禁用生物生成","noise_settings.disable_mob_generation.help":"若設為 true,生成世界時不會生成生物。","noise_settings.name":"名稱","noise_settings.noise":"噪聲選項","noise_settings.noise.amplified":"巨大化","noise_settings.noise.bottom_slide":"底部曲線","noise_settings.noise.bottom_slide.help":"改變世界底部曲線。當底部曲線大小(Size)為 0 時不起作用。","noise_settings.noise.bottom_slide.offset":"偏移","noise_settings.noise.bottom_slide.size":"大小","noise_settings.noise.bottom_slide.target":"目標","noise_settings.noise.density_factor":"密度因子","noise_settings.noise.density_factor.help":"決定高度影響地形的程度。正值在底部產生陸地。接近於 0 的值產生均勻的地形。","noise_settings.noise.density_offset":"密度偏移","noise_settings.noise.density_offset.help":"影響平均陸地高度。設定為 0 將使平均陸地高度變為高度(height)的一半。設定為正值將抬升高度。","noise_settings.noise.height":"高度","noise_settings.noise.island_noise_override":"島嶼噪聲覆蓋","noise_settings.noise.island_noise_override.help":"若設為 true,生成的地形會像終界一樣在中心有一個大島嶼,外部有許多小島嶼。","noise_settings.noise.min_y":"最小高度","noise_settings.noise.random_density_offset":"隨機密度偏移","noise_settings.noise.sampling":"取樣","noise_settings.noise.sampling.xz_factor":"XZ 因子","noise_settings.noise.sampling.xz_scale":"XZ 縮放","noise_settings.noise.sampling.y_factor":"Y 因子","noise_settings.noise.sampling.y_scale":"Y 縮放","noise_settings.noise.simplex_surface_noise":"單體表面噪聲","noise_settings.noise.size_horizontal":"水平大小","noise_settings.noise.size_vertical":"垂直大小","noise_settings.noise.top_slide":"頂部曲線","noise_settings.noise.top_slide.help":"改變世界頂部曲線。當頂部曲線大小(Size)為 0 時不起作用。","noise_settings.noise.top_slide.offset":"偏移","noise_settings.noise.top_slide.size":"大小","noise_settings.noise.top_slide.target":"目標","noise_settings.sea_level":"海平面","noise_settings.structures":"結構","noise_settings.structures.stronghold":"要塞","noise_settings.structures.stronghold.count":"數量","noise_settings.structures.stronghold.distance":"距離","noise_settings.structures.stronghold.spread":"分散","noise_settings.structures.structures":"結構","number_provider.max":"最大值","number_provider.min":"最小值","number_provider.n":"N","number_provider.p":"P","number_provider.scale":"縮放","number_provider.score":"計分板目標","number_provider.target":"目標","number_provider.type":"類型","number_provider.type.binomial":"二項分布","number_provider.type.constant":"常數+","number_provider.type.number":"常數","number_provider.type.object":"均勻分布","number_provider.type.score":"分數","number_provider.type.uniform":"均勻分布+","number_provider.value":"數字","player.advancements":"進度","player.advancements.entry":"進度","player.gamemode":"遊戲模式","player.level":"經驗等級","player.recipes":"配方","player.stats":"統計","player.stats.entry":"統計","pos_rule_test.always_true":"總是為真","pos_rule_test.axis":"軸","pos_rule_test.axis.x":"X 軸","pos_rule_test.axis.y":"Y 軸","pos_rule_test.axis.z":"Z 軸","pos_rule_test.axis_aligned_linear_pos":"軸對齊線性插值座標","pos_rule_test.linear_pos":"線性插值座標","pos_rule_test.max_chance":"最大機率","pos_rule_test.max_dist":"最大距離","pos_rule_test.min_chance":"最小機率","pos_rule_test.min_dist":"最小距離","pos_rule_test.predicate_type":"類型","processor.block_age.mossiness":"青苔度","processor.block_ignore.blocks":"方塊","processor.block_ignore.blocks.entry":"狀態","processor.block_rot.integrity":"完整性","processor.gravity.heightmap":"高度圖","processor.gravity.offset":"偏移","processor.processor_type":"類型","processor.rule.rules":"規則","processor.rule.rules.entry":"規則","processor_list.processors":"處理器","processor_list.processors.entry":"處理器","processor_rule.input_predicate":"輸入方塊處理述詞","processor_rule.location_predicate":"結構生成前位置方塊處理述詞","processor_rule.output_nbt":"輸出 NBT","processor_rule.output_state":"輸出方塊狀態","processor_rule.position_predicate":"位置方塊處理述詞","processors.object":"自訂","processors.string":"參照","range.binomial":"二項分布","range.max":"最大值","range.min":"最小值","range.n":"N","range.number":"精確值","range.object":"範圍","range.p":"P","range.type":"類型","range.uniform":"均勻分布","requirements":"應當達成","rule_test.always_true":"總是為真","rule_test.block":"方塊","rule_test.block_match":"方塊匹配","rule_test.block_state":"狀態","rule_test.blockstate_match":"方塊狀態匹配","rule_test.predicate_type":"類型","rule_test.probability":"概率","rule_test.random_block_match":"方塊隨機匹配","rule_test.random_blockstate_match":"方塊狀態隨機匹配","rule_test.tag":"標籤","rule_test.tag_match":"標籤匹配","score_provider.name":"名稱","score_provider.target":"目標","score_provider.type":"類型","score_provider.type.context":"上下文+","score_provider.type.fixed":"固定","score_provider.type.string":"上下文","slot.chest":"胸部","slot.feet":"腳部","slot.head":"頭部","slot.legs":"腿部","slot.mainhand":"慣用手","slot.offhand":"非慣用手","statistic.stat":"統計","statistic.type":"類型","statistic.type.broken":"損壞","statistic.type.crafted":"合成","statistic.type.custom":"Custom(其他)","statistic.type.dropped":"掉落","statistic.type.killed":"擊殺","statistic.type.killedByTeam":"被隊伍擊殺","statistic.type.killed_by":"被擊殺","statistic.type.mined":"挖掘","statistic.type.picked_up":"撿起","statistic.type.teamkill":"擊殺隊伍","statistic.type.used":"使用","statistic.value":"值","status_effect.ambient":"是否為烽火台施加","status_effect.amplifier":"等級","status_effect.duration":"維持時間","status_effect.visible":"是否可見","structure_feature.biome_temp":"生態域溫度","structure_feature.biome_temp.cold":"寒冷","structure_feature.biome_temp.warm":"溫暖","structure_feature.cluster_probability":"成簇概率","structure_feature.config":"配置","structure_feature.is_beached":"是否擱淺","structure_feature.large_probability":"大型概率","structure_feature.portal_type":"傳送門類型","structure_feature.portal_type.desert":"沙漠","structure_feature.portal_type.jungle":"叢林","structure_feature.portal_type.mountain":"山","structure_feature.portal_type.nether":"地獄","structure_feature.portal_type.ocean":"海洋","structure_feature.portal_type.standard":"基本","structure_feature.portal_type.swamp":"沼澤","structure_feature.probability":"概率","structure_feature.size":"尺寸","structure_feature.start_pool":"起始池","structure_feature.type":"類型","structure_feature.type.mesa":"惡地","structure_feature.type.normal":"普通","surface_builder.config":"配置","surface_builder.top_material":"頂層材料","surface_builder.type":"類型","surface_builder.under_material":"下層材料","surface_builder.underwater_material":"水下材料","table.type":"戰利品表類型","table.type.block":"方塊","table.type.chest":"儲物箱","table.type.empty":"空","table.type.entity":"實體","table.type.fishing":"釣魚","table.type.generic":"通用","tag.replace":"覆蓋","tag.values":"值","template_element.element_type":"類型","template_element.elements":"元素","template_element.feature":"地物","template_element.location":"結構的命名空間 ID","template_element.processors":"處理器","template_element.projection":"投影","template_element.projection.rigid":"直接生成","template_element.projection.terrain_matching":"匹配地形","template_pool.elements":"元素","template_pool.elements.entry":"元素","template_pool.elements.entry.element":"元素","template_pool.elements.entry.weight":"權重","template_pool.fallback":"回落池","template_pool.name":"名稱","text_component":"聊天組合","text_component.boolean":"布林值","text_component.list":"陣列","text_component.number":"數字","text_component.object":"物件","text_component.object.keybind":"鍵位綁定","text_component.object.nbt":"NBT 值","text_component.object.score":"分數值","text_component.object.selector":"實體名稱","text_component.object.text":"純文字","text_component.object.translation":"翻譯文字","text_component.string":"字串","text_component_object.block":"方塊","text_component_object.bold":"粗體","text_component_object.clickEvent":"點擊事件","text_component_object.clickEvent.action":"行為","text_component_object.clickEvent.action.change_page":"翻頁","text_component_object.clickEvent.action.copy_to_clipboard":"複製到剪貼簿","text_component_object.clickEvent.action.open_file":"打開檔案","text_component_object.clickEvent.action.open_url":"打開 URL","text_component_object.clickEvent.action.run_command":"執行指令","text_component_object.clickEvent.action.suggest_command":"建議指令","text_component_object.clickEvent.value":"值","text_component_object.color":"顏色","text_component_object.entity":"實體","text_component_object.extra":"附加","text_component_object.font":"字型","text_component_object.hoverEvent":"懸浮事件","text_component_object.hoverEvent.action":"行為","text_component_object.hoverEvent.action.show_entity":"顯示實體","text_component_object.hoverEvent.action.show_item":"顯示物品","text_component_object.hoverEvent.action.show_text":"顯示文字","text_component_object.hoverEvent.contents":"內容","text_component_object.hoverEvent.value":"值","text_component_object.insertion":"插入","text_component_object.interpret":"解析","text_component_object.italic":"斜體","text_component_object.keybind":"鍵位","text_component_object.nbt":"NBT","text_component_object.obfuscated":"混淆","text_component_object.score":"分數","text_component_object.score.name":"名稱","text_component_object.score.objective":"計分板目標","text_component_object.score.value":"值","text_component_object.selector":"選擇器","text_component_object.storage":"容器","text_component_object.strikethrough":"刪除線","text_component_object.text":"文字","text_component_object.translate":"可翻譯文字","text_component_object.underlined":"下劃線","text_component_object.with":"以之翻譯","tree_decorator.alter_ground.provider":"狀態聲明","tree_decorator.beehive.probability":"概率","tree_decorator.cocoa.probability":"概率","tree_decorator.type":"類型","true":"是","trunk_placer.base_height":"基礎高度","trunk_placer.height_rand_a":"水平隨機高度","trunk_placer.height_rand_b":"豎直隨機高度","trunk_placer.type":"類型","uniform_int.base":"基礎值","uniform_int.number":"常數","uniform_int.object":"均勻分布","uniform_int.spread":"擴散","unset":"未指定","update.pack_format":"將 pack_format 升級至 %0%","world.bonus_chest":"生成獎勵箱","world.generate_features":"生成結構","world.seed":"種子碼","world_settings.bonus_chest":"生成獎勵箱","world_settings.dimensions":"維度","world_settings.generate_features":"生成地物","world_settings.seed":"世界種子碼","worldgen.warning":"本特性為高度實驗性的特性,很不穩定,在未來的版本中隨時會有變動。請做好遊戲在創建世界時崩潰的準備。","worldgen/biome_source.checkerboard":"棋盤","worldgen/biome_source.checkerboard.help":"以棋盤狀區塊圖案生成的生態域。","worldgen/biome_source.fixed":"固定","worldgen/biome_source.fixed.help":"整個世界只有單一生態域。","worldgen/biome_source.multi_noise":"多重噪聲","worldgen/biome_source.multi_noise.help":"可設定參數的自訂生態域分布。","worldgen/biome_source.the_end":"終界","worldgen/biome_source.the_end.help":"終界的生態域分布。","worldgen/biome_source.vanilla_layered":"原版分層","worldgen/biome_source.vanilla_layered.help":"主世界的生態域分布。","worldgen/block_placer_type.column_placer":"柱狀","worldgen/block_placer_type.double_plant_placer":"雙層植物","worldgen/block_placer_type.simple_block_placer":"簡單","worldgen/block_state_provider_type.forest_flower_provider":"繁花森林方塊狀態聲明","worldgen/block_state_provider_type.plain_flower_provider":"平原花方塊狀態聲明","worldgen/block_state_provider_type.rotated_block_provider":"旋轉方塊狀態聲明","worldgen/block_state_provider_type.simple_state_provider":"簡單方塊狀態聲明","worldgen/block_state_provider_type.weighted_state_provider":"加權方塊狀態聲明","worldgen/carver.canyon":"峽谷","worldgen/carver.cave":"洞穴","worldgen/carver.nether_cave":"地獄洞穴","worldgen/carver.underwater_canyon":"水下峽谷","worldgen/carver.underwater_cave":"水下洞穴","worldgen/chunk_generator.debug":"除錯世界","worldgen/chunk_generator.flat":"超平坦","worldgen/chunk_generator.noise":"預設","worldgen/feature_size_type.three_layers_feature_size":"三層","worldgen/feature_size_type.two_layers_feature_size":"兩層","worldgen/foliage_placer_type.acacia_foliage_placer":"相思樹","worldgen/foliage_placer_type.blob_foliage_placer":"橡樹/白樺","worldgen/foliage_placer_type.bush_foliage_placer":"金字塔形","worldgen/foliage_placer_type.dark_oak_foliage_placer":"黑橡樹","worldgen/foliage_placer_type.fancy_foliage_placer":"球形","worldgen/foliage_placer_type.jungle_foliage_placer":"叢林","worldgen/foliage_placer_type.mega_pine_foliage_placer":"雙層稀疏雲杉","worldgen/foliage_placer_type.pine_foliage_placer":"稀疏雲杉","worldgen/foliage_placer_type.spruce_foliage_placer":"雲杉","worldgen/structure_pool_element.empty_pool_element":"空","worldgen/structure_pool_element.feature_pool_element":"地物","worldgen/structure_pool_element.legacy_single_pool_element":"單個(舊版)","worldgen/structure_pool_element.list_pool_element":"串列","worldgen/structure_pool_element.single_pool_element":"單個","worldgen/structure_processor.blackstone_replace":"取代黑石","worldgen/structure_processor.block_age":"做舊方塊","worldgen/structure_processor.block_ignore":"忽略方塊","worldgen/structure_processor.block_rot":"隨機移除方塊","worldgen/structure_processor.gravity":"重力","worldgen/structure_processor.jigsaw_replacement":"拼圖取代","worldgen/structure_processor.lava_submerged_block":"熔岩湮沒方塊","worldgen/structure_processor.nop":"無","worldgen/structure_processor.rule":"規則","worldgen/tree_decorator_type.alter_ground":"地面方塊替換","worldgen/tree_decorator_type.beehive":"蜂箱","worldgen/tree_decorator_type.cocoa":"可可果","worldgen/tree_decorator_type.leave_vine":"樹葉藤蔓","worldgen/tree_decorator_type.trunk_vine":"樹幹藤蔓","worldgen/trunk_placer_type.dark_oak_trunk_placer":"黑橡樹型","worldgen/trunk_placer_type.fancy_trunk_placer":"多分叉型","worldgen/trunk_placer_type.forking_trunk_placer":"單分叉型","worldgen/trunk_placer_type.giant_trunk_placer":"2×2 豎直型","worldgen/trunk_placer_type.mega_jungle_trunk_placer":"大叢林木型","worldgen/trunk_placer_type.straight_trunk_placer":"豎直型","advancement":"進度","copy":"複製","dimension-type":"維度類型","download":"下載","fields":"欄位","item-modifier":"物品修飾器","language":"語言","loot-table":"戰利品表","predicate":"述詞","preview":"可視化","preview.depth":"深度","preview.scale":"比例","preview.show_density":"顯示密度","preview.width":"寬度","redo":"重做","reset":"重設","settings.fields.description":"客製化進階欄位設定","settings.fields.name":"名稱","settings.fields.path":"上下文","share":"分享","title.generator":"%0% 生成器","title.home":"資料包生成器","undo":"復原","world":"世界設定","worldgen/biome":"生態域","worldgen/carver":"地形雕刻器","worldgen/feature":"地物","worldgen/noise-settings":"噪聲設定","worldgen/processor-list":"處理器列表","worldgen/structure-feature":"結構地物","worldgen/surface-builder":"地表生成器","worldgen/template-pool":"模板池"} \ No newline at end of file diff --git a/loot-table/index.html b/loot-table/index.html new file mode 100644 index 00000000..8fa9ef0d --- /dev/null +++ b/loot-table/index.html @@ -0,0 +1,12 @@ +Loot Table Generator Minecraft 1.15, 1.16, 1.17
        \ No newline at end of file diff --git a/predicate/index.html b/predicate/index.html new file mode 100644 index 00000000..e2496fc8 --- /dev/null +++ b/predicate/index.html @@ -0,0 +1,12 @@ +Predicate Generator Minecraft 1.15, 1.16, 1.17
        \ No newline at end of file diff --git a/settings/fields/index.html b/settings/fields/index.html new file mode 100644 index 00000000..6f440e04 --- /dev/null +++ b/settings/fields/index.html @@ -0,0 +1,12 @@ +Data Pack Generators Minecraft 1.15, 1.16, 1.17
        \ No newline at end of file diff --git a/sitemap.txt b/sitemap.txt new file mode 100644 index 00000000..0a279abe --- /dev/null +++ b/sitemap.txt @@ -0,0 +1,16 @@ +https://misode.github.io +https://misode.github.io/loot-table/ +https://misode.github.io/predicate/ +https://misode.github.io/item-modifier/ +https://misode.github.io/advancement/ +https://misode.github.io/dimension/ +https://misode.github.io/dimension-type/ +https://misode.github.io/world/ +https://misode.github.io/worldgen/ +https://misode.github.io/worldgen/biome/ +https://misode.github.io/worldgen/carver/ +https://misode.github.io/worldgen/feature/ +https://misode.github.io/worldgen/noise-settings/ +https://misode.github.io/worldgen/structure-feature/ +https://misode.github.io/worldgen/processor-list/ +https://misode.github.io/worldgen/template-pool/ diff --git a/styles/global.css b/styles/global.css new file mode 100644 index 00000000..0649a20e --- /dev/null +++ b/styles/global.css @@ -0,0 +1,764 @@ +:root { + --background: #ffffff; + --text: #000000; + --nav: #343a40; + --nav-hover: #565d64; + --nav-faded: #9fa2a7; + --nav-faded-hover: #bcbfc3; + --selection: rgba(103, 134, 221, 0.6); + --border: #cccccc; + --nav-menu: #ffffff83; + --btn-background: #1f2020a6; + --btn-hover: #5d5f5fa6; + --btn-text: #ffffff; + --btn-active: #a5e77a; + --errors-background: #f13000c5; + --errors-text: #000000cc; + + --style-transition: 0.3s; +} + +:root[data-theme=dark] { + --background: #222222; + --text: #ffffff; + --nav: #91908f; + --nav-hover: #b4b3b0; + --nav-faded: #4d4c4c; + --nav-faded-hover: #6e6e6e; + --border: #3d3d3d; + --nav-menu: #00000083; + --btn-background: #0a0a0aa6; + --btn-hover: #383838a6; + --errors-text: #ffffffcc; +} + +* { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +a svg { + pointer-events: none; +} + +body { + font-size: 18px; + font-family: Arial, Helvetica, sans-serif; + overflow-x: hidden; + background-color: var(--background); + transition: background-color var(--style-transition); +} + +header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px; + width: 100%; + height: 56px; + z-index: 5; + background-color: var(--background); + border-bottom: 2px solid var(--border); + transition: border-color var(--style-transition), background-color var(--style-transition); +} + +body[data-panel="home"] header, +body[data-panel="settings"] header { + position: fixed; +} + +.header-title { + display: flex; + align-items: center; +} + +.header-title h2 { + color: var(--nav); + transition: color var(--style-transition); +} + +.home-link { + margin: 0 8px 0 0; + height: 32px; + fill: var(--nav); + transition: fill var(--style-transition); +} + +.home-link svg { + width: 32px; + height: 32px; + padding: 2px; +} + +.panel-toggles { + display: none; +} + +nav ul { + display: flex; + align-items: center; +} + +.panel-toggles > *, +nav li { + display: flex; + align-items: center; + cursor: pointer; + margin: 0 16px; + user-select: none; +} + +.panel-toggles > *:hover svg, +.home-link:hover svg, +header .toggle:hover svg, +nav li:hover svg { + fill: var(--nav-hover); +} + +nav > .toggle { + display: none; +} + +nav li.dimmed svg { + fill: var(--nav-faded); +} + +nav li.dimmed:hover svg { + fill: var(--nav-faded-hover); +} + +.panel-toggles svg, +nav > .toggle svg, +nav li > *, +nav li svg { + width: 24px; + height: 24px; + fill: var(--nav); + transition: fill var(--style-transition); +} + +nav > .toggle span { + color: var(--nav); + margin-left: 5px; +} + +.dropdown { + position: relative; +} + +.dropdown > * { + position: absolute; + width: 24px; + height: 24px; +} + +.dropdown > *:not(select) { + pointer-events: none; +} + +.dropdown select { + cursor: pointer; + border: none; + background: none; + color: transparent; + outline: none; +} + +.dropdown option { + color: var(--text); + background-color: var(--background); + font-size: 130%; + border: none; +} + +.content { + display: flex; + height: calc(100vh - 56px); + overflow-y: hidden; + color: var(--text); + fill: var(--text); +} + +.split-group { + display: flex; + width: 100%; + height: 100%; +} + +.split-group.vertical { + flex-direction: column; +} + +.panel { + position: relative; + height: 100%; + overflow: hidden; +} + +.tree { + display: flow-root; + padding: 44px 16px 50vh; + height: 100%; + overflow: auto; +} + +.source { + width: 100%; + height: 100%; + padding: 32px 8px; + border: none; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; + tab-size: 4; + -moz-tab-size: 4; + -o-tab-size: 4; + -webkit-tab-size: 4; + outline: none; + resize: none; + background-color: var(--background); + color: var(--text); + transition: background-color var(--style-transition), color var(--style-transition) +} + +.source::selection { + background-color: var(--selection); +} + +.panel-controls { + display: flex; + position: absolute; + right: 22px; + top: 5px;; + z-index: 1; +} + +.preview-panel .panel-controls { + justify-content: flex-end; + width: 100%; + right: 0; + padding: 0 5px; + opacity: 0; + transition: opacity 0.1s; + pointer-events: none; +} + +.preview-panel .panel-controls > * { + pointer-events: initial; +} + +.preview-panel:hover .panel-controls { + opacity: 1; +} + +.panel-controls > *:not(:last-child) { + margin-right: 5px; +} + +.panel-menu:not(.no-relative) { + position: relative; +} + +.panel-menu > .btn { + height: 100%; +} + +.panel-menu-list { + display: none; + flex-direction: column; + position: absolute; + right: 0; + top: 100%; + margin-top: 5px; +} + +.panel-menu .btn.active ~ .panel-menu-list { + display: flex; +} + +.panel-controls input { + margin-right: 5px; + background: var(--background); + color: var(--text); + font-size: 17px; + border: none; + transition: background-color var(--style-transition), color var(--style-transition); +} + +.panel-controls input::selection { + background-color: var(--selection); +} + +.btn.preview-scale { + display: block; + width: 25%; + text-align: center; + border-bottom: 2px solid #fff; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.gutter { + border-color: var(--border) !important; + transition: border-color var(--style-transition); +} + +.gutter.gutter-vertical { + border-top: 2px solid; + border-bottom: 2px solid; + cursor: ns-resize; +} + +.gutter.gutter-horizontal { + border-left: 2px solid; + border-right: 2px solid; + cursor: ew-resize; +} + +.preview-panel canvas { + width: 100%; + height: 100%; + background-color: var(--nav-faded); + display: block; + cursor: crosshair; + image-rendering: optimizeSpeed; + image-rendering: -moz-crisp-edges; + image-rendering: -webkit-optimize-contrast; + image-rendering: -o-crisp-edges; + image-rendering: pixelated; + -ms-interpolation-mode: nearest-neighbor; +} + +.btn { + display: flex; + align-items: center; + border: none; + border-radius: 3px; + height: 33px; + padding: 7px 11px; + cursor: pointer; + user-select: none; + outline: none; + font-size: 1rem; + white-space: nowrap; + background-color: var(--btn-background); + color: var(--btn-text); + fill: var(--btn-text); + transition: background-color var(--style-transition); +} + +.btn:not(.input):hover { + background-color: var(--btn-hover); +} + +.btn svg:not(:last-child) { + margin-right: 5px; +} + +.btn-group .btn:not(:last-child) { + border-bottom-right-radius: 0px; + border-bottom-left-radius: 0px; +} + +.panel-menu .result-list .btn:first-child, +.btn-group .btn:not(:first-child) { + border-top-right-radius: 0px; + border-top-left-radius: 0px; +} + +.btn.check, +.btn.selected { + fill: var(--btn-active); + color: var(--btn-active); +} + +.btn.input { + cursor: initial; +} + +.btn input { + margin-left: 5px; + width: 100px; +} + +.btn.btn.large-input { + padding: 5px; + padding-left: 11px; +} + +.btn.large-input input { + width: 100%; + height: 100%; + margin-right: 0; +} + +.btn a { + color: var(--btn-text); + text-decoration: none; +} + +.panel-menu .result-list { + display: block; + width: 380px; + height: unset; + overflow-y: auto; + overflow-x: hidden; + + max-height: 240px; +} + +.panel-menu.disabled { + display: none; + margin-right: 0; +} + +.errors { + position: fixed; + display: flex; + bottom: 17px; + right: 17px; + margin: 5px; + border-radius: 3px; + background-color: var(--errors-background); + color: var(--errors-text); + fill: var(--errors-text); + transition: fill var(--style-transition); +} + +.error { + display: flex; + align-items: center; + padding: 7px; +} + +.error span:not(:last-child) { + padding-right: 11px; +} + +.errors .toggle { + padding: 6px; + width: 36px; + height: 36px; + cursor: pointer; + user-select: none; +} + +.errors svg { + width: 24px; + height: 24px; +} + +.home { + display: flex; + padding: 20px; + padding-top: 71px; +} + +.home.center { + flex-direction: column; + align-items: center; + color: var(--nav); +} + +.home.center p { + padding-bottom: 20px; + text-align: center; + font-size: 20px; +} + +.generators-list { + display: flex; + flex-direction: column; + margin: 0 20px; + list-style-type: none; +} + +.generators-card { + margin: 5px 0; + padding: 8px 15px; + cursor: pointer; + user-select: none; + text-decoration: none; + text-transform: capitalize; + border-radius: 3px; + background-color: var(--nav-faded); + color: var(--text); + fill: var(--text); + display: flex; + align-items: center; + justify-content: space-between; + transition: background-color 0.2s; + transition: margin 0.2s; +} + +.generators-card * { + pointer-events: none; +} + +.generators-card:hover, +.generators-card.selected { + background-color: var(--nav-faded-hover); + margin-left: 8px; + margin-right: -8px; +} + +.generators-card svg { + margin-left: 10px; +} + +.settings { + padding: 20px; + padding-top: 71px; +} + +.settings p { + color: var(--nav); + padding: 8px; + border-bottom: 2px solid var(--border); + transition: border-color var(--style-transition), color var(--style-transition); +} + +.field-list { + width: 100%; + border-collapse: collapse; + list-style-type: none; +} + +.field-list li { + display: flex; + justify-content: space-between; + padding: 4px 0; + border-bottom: 1px solid var(--border); + transition: border-color var(--style-transition); +} + +.field-prop { + display: inline-flex; + align-items: center; + max-width: 100%; + margin: 4px; +} + +.field-prop > label, +.field-prop > input { + height: 34px; + color: var(--text); + margin-right: -1px; + border: 1px solid; + border-color: var(--nav-faded-hover); + transition: all var(--style-transition); +} + +.field-prop label { + padding: 0 9px; + line-height: 1.94rem; + background-color: var(--node-background-label); + white-space: nowrap; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.field-prop input { + width: 100%; + line-height: 1.6rem; + background-color: var(--node-background-input); + color: var(--text); + padding-left: 9px; + font-size: 18px; + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.field-prop svg { + padding: 4px; + margin: 0 4px; + height: 28px; + width: 28px; + fill: var(--nav); + cursor: pointer; +} + +.field-prop .hidden svg { + fill: #be4b2e; +} + +.field-prop .dimmed svg { + fill: var(--nav-faded); +} + +.spinner { + margin: 40px auto 0; + width: 80px; + height: 80px; +} + +.spinner:after { + content: ""; + display: block; + width: 64px; + height: 64px; + margin: 8px; + border-radius: 50%; + border: 6px solid var(--border); + border-color: var(--border) transparent var(--border) transparent; + animation: spinner 1.2s linear infinite, fadein 0.4s; + transition: border-color var(--style-transition); +} + +.very-large { + font-size: 80px; + font-weight: 100; +} + +@keyframes spinner { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +@keyframes fadein { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +/* MEDIUM */ +@media screen and (max-width: 580px) { + header { + position: fixed; + } + + .panel-toggles { + display: flex; + } + + body nav ul { + display: none; + } + + body[data-panel="home"] header { + flex-direction: column; + align-items: flex-start; + height: 92px; + } + body[data-panel="home"] nav { + align-self: flex-end; + } + + body[data-panel="home"] nav ul { + display: flex; + } + + .content { + padding-top: 56px; + } + + .content { + height: unset; + min-height: 100%; + } + + textarea.source { + height: calc(100vh - 56px); + } + + .gutter { + display: none; + } + + .content-output, + .tree-panel { + width: 100% !important; + } + + .source-panel, + .preview-panel, + .preview-panel canvas { + height: 100% !important; + } + + .tree-panel .panel-controls { + top: 61px; + right: 5px; + position: fixed; + } + + .btn.btn.large-input, + .panel-menu .result-list { + width: calc(100vw - 10px); + } + + .tree-panel, + .content-output, + .source-panel, + .preview-panel { + display: none; + } + + body[data-panel="tree"] .tree-panel, + body[data-panel="source"] .source-panel, + body[data-panel="source"] .content-output, + body[data-panel="preview"] .preview-panel, + body[data-panel="preview"] .content-output { + display: block; + } + + .home { + padding: 107px 5px 5px; + justify-content: center; + } + + .field-list li { + flex-direction: column; + } + + .field-prop { + width: 100%; + } + + .field-prop input { + width: 100%; + } +} + +/* SMALL */ +@media screen and (max-width: 650px) { + body[data-panel="tree"] .header-title h2, + body[data-panel="source"] .header-title h2, + body[data-panel="preview"] .header-title h2 { + font-size: 22px; + } +} + +/* EXTRA SMALL */ +@media screen and (max-width: 480px) { + .header-title h2 { + font-size: 22px; + } + + body[data-panel="tree"] .header-title h2, + body[data-panel="source"] .header-title h2, + body[data-panel="preview"] .header-title h2 { + font-size: 18px; + } + + body[data-panel="preview"] .preview-panel .panel-controls { + opacity: 1; + } + + .generators-list { + margin: 0 15px; + } + + .home:not(.center) .generators-card { + font-size: 14px; + padding: 8px; + } +} diff --git a/styles/nodes.css b/styles/nodes.css new file mode 100644 index 00000000..fa31300e --- /dev/null +++ b/styles/nodes.css @@ -0,0 +1,420 @@ +:root { + --node-border: #bcbfc3; + --node-background-label: #e4e4e4; + --node-background-input: #ffffff; + --node-text: #000000; + --node-selected: #f0e65e; + --node-selected-border: #b9a327; + --node-add: #9bd464; + --node-add-border: #498d09; + --node-remove: #e76f51; + --node-remove-border: #be4b2e; + --node-indent-border: #b9b9b9; + --node-popup-background: #1f2020e6; + --node-popup-text: #dadada; + --node-popup-text-dimmed: #b4b4b4; + --category-predicate: #65b5b8; + --category-predicate-border: #187e81; + --category-predicate-background: #95c5c7; + --category-function: #979fa7; + --category-function-border: #788086; + --category-function-background: #dce0e4; + --category-pool: #76b865; + --category-pool-border: #398118; + --category-pool-background: #b1d6a6; +} + +:root[data-theme=dark] { + --node-border: #4e4e4e; + --node-background-label: #1b1b1b; + --node-background-input: #272727; + --node-text: #dadada; + --node-selected: #ad9715; + --node-selected-border: #8d7a0d; + --node-add: #5a961e; + --node-add-border: #3b6e0c; + --node-remove: #b64023; + --node-remove-border: #7e1d05; + --node-indent-border: #454749; + --node-popup-background: #0a0a0ae6; + --node-popup-text: #dadada; + --node-popup-text-dimmed: #b4b4b4; + --category-predicate: #306163; + --category-predicate-border: #224849; + --category-predicate-background: #1d3333; + --category-function: #838383; + --category-function-border: #6b6b6b; + --category-function-background: #414141; + --category-pool: #386330; + --category-pool-border: #2e4922; + --category-pool-background: #21331d; +} + +/* Node headers */ + +.node-header { + display: inline-flex; + position: relative; + align-items: center; + width: 100%; +} + +.node-header > * { + height: 34px; + border: 1px solid; + color: var(--node-text); + border-color: var(--node-border); + transition: all var(--style-transition); +} + +.node-header > label { + padding: 0 9px; + line-height: 1.94rem; + white-space: nowrap; + user-select: none; + background-color: var(--node-background-label); +} + +.node-header > input { + font-size: 18px; + padding-left: 9px; + background-color: var(--node-background-input); +} + +.node-header > input[type="color"] { + padding: 0 2px; +} + +.node-header > select { + font-size: 18px; + padding-left: 6px; + background-color: var(--node-background-input); +} + +.node-header > button { + font-size: 18px; + padding: 0 9px; + line-height: 1.94rem; + white-space: nowrap; + user-select: none; + cursor: pointer; + background-color: var(--node-background-input); +} + +.object-node > .node-header > .collapse { + cursor: pointer; +} + +/** Rounded corners */ + +.node-header > .node-icon { + order: 1; +} + +.node-header > *:first-child, +.node-header > .node-icon + * { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.node-header > *:last-child, +.node-header > input[list]:nth-last-child(2) { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.node-header > * { + margin-right: -1px; +} + +.object-node:not(.no-body) > .node-header > *:first-child, +.map-node > .node-header > *:first-child, +.list-node > .node-header > *:first-child { + border-top-left-radius: 8px; + border-bottom-left-radius: 0; +} + +/* Buttons */ + +button.selected { + background-color: var(--node-selected); + border-color: var(--node-selected-border); +} + +.collapse svg { + fill: var(--node-text); + transition: fill var(--style-transition); +} + +.collapse.closed, +button.add { + background-color: var(--node-add); + border-color: var(--node-add-border); +} + +.collapse.open, +button.remove { + background-color: var(--node-remove); + border-color: var(--node-remove-border); +} + +.node-header > button svg { + display: inline-block; + position: relative; + top: 2px; + fill: var(--node-text); + transition: fill var(--style-transition); +} + +.node-header > button.collapse:last-child, +.node-header > button.add:last-child { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.node-icon { + border: none; + position: relative; + display: inline-block; +} + +.node-icon .icon-popup { + visibility: hidden; + width: 240px; + background-color: var(--node-popup-background); + color: var(--node-popup-text); + text-align: center; + border-radius: 6px; + padding: 8px 4px; + position: absolute; + z-index: 1; + top: 125%; + left: 50%; + margin-left: -120px; +} + +.node-icon .icon-popup::after { + content: ""; + position: absolute; + bottom: 100%; + left: 50%; + margin-left: -3px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent var(--node-popup-background) transparent; +} + +.node-icon:hover .icon-popup, +.node-icon .icon-popup.show { + visibility: visible; +} + +.node-icon svg { + height: 34px; + width: 34px; + min-width: 34px; + margin-left: 6px; + cursor: pointer; + transition: fill var(--style-transition); +} + +.node-icon.node-help svg { + fill: var(--node-border); +} + +.node-icon.node-error svg { + fill: var(--node-remove); +} + +.node-menu { + position: absolute; + left: 0; + top: 100%; + width: min-content; + margin-top: 4px; + margin-left: 4px; + z-index: 1; + color: var(--node-popup-text); + font-size: 16px; + border-radius: 3px; + background-color: var(--node-popup-background); +} + +.node-menu::after { + content: ""; + position: absolute; + bottom: 100%; + left: 0; + margin-left: 6px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent var(--node-popup-background) transparent; +} + +.menu-item { + padding: 4px; + display: flex; + align-items: center; + white-space: normal; +} + +.menu-item > * { + margin-right: 4px; +} + +.menu-item .btn { + padding: 8px; +} + +span.menu-item { + padding: 4px 8px; +} + +.menu-item-context { + color: var(--node-popup-text-dimmed); +} + +/* Node body and list entry */ + +.node { + margin-bottom: 4px; +} + +.node-body > .node:first-child { + margin-top: 4px; +} + +.node:last-child { + margin-bottom: 0; +} + +.node-body { + border-left: 3px solid var(--node-indent-border); + transition: border-color var(--style-transition); +} + +.node-body { + display: flex; + flex-direction: column; + padding-left: 18px; +} + +.node-entry > .object-node > .node-body { + padding-left: 0; +} + +.node-entry > .object-node > .node-body > .node > .node-body { + border-left: none; +} + +.node-entry > .object-node > .node-body > .node > .node-header > .node-icon + *, +.node-entry > .object-node > .node-body > .node > .node-header > *:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: none; +} + +.node-entry { + display: flex; + flex-direction: column; + margin-top: 4px; +} + +.node-entry > .object-node[data-category], +.node-entry > .list-node[data-category], +.node-entry > .map-node[data-category] { + width: 100%; + min-width: max-content; + padding: 5px; + padding-left: 0px; + margin-top: 8px; + border: 2px solid var(--node-border); + border-radius: 3px; + transition: background-color var(--style-transition); +} + +.node-entry:first-child > .object-node[data-category], +.node-entry:first-child > .list-node[data-category], +.node-entry:first-child > .map-node[data-category] { + margin-top: 4px; +} + +.node-entry > .object-node[data-category] > .node-header > .node-icon + *, +.node-entry > .object-node[data-category] > .node-header > *:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: none; +} + +.node-entry > .object-node[data-category] > .node-body, +.node-entry > .list-node[data-category] > .node-body, +.node-entry > .map-node[data-category] > .node-body { + border: none; +} + +/* Node type specifics */ + +.range-node select { + width: 25px; +} + +.number-node input, +.range-node input { + width: 100px; +} + +/* Color categories */ + +[data-category=predicate] > .node-header > label, +[data-category=predicate] > .node-body > .node > .node-header > label { + background-color: var(--category-predicate) !important; +} + +[data-category=predicate] > .node-body, +[data-category=predicate] > .node-header > label, +[data-category=predicate] > .node-body > .node > .node-header > *:not(.selected) { + border-color: var(--category-predicate-border) !important; +} + +.node-entry > .node.object-node[data-category=predicate], +.node-entry > .node.list-node[data-category=predicate], +.node-entry > .node.map-node[data-category=predicate] { + background-color: var(--category-predicate-background); + border-color: var(--category-predicate-border); +} + +[data-category=function] > .node-header > label, +[data-category=function] > .node-body > .node > .node-header > label { + background-color: var(--category-function) !important; +} + +[data-category=function] > .node-body, +[data-category=function] > .node-header > label, +[data-category=function] > .node-body > .node > .node-header > *:not(.selected) { + border-color: var(--category-function-border) !important; +} + +.node-entry > .node.object-node[data-category=function], +.node-entry > .node.list-node[data-category=function], +.node-entry > .node.map-node[data-category=function] { + background-color: var(--category-function-background); + border-color: var(--category-function-border); +} + +[data-category=pool] > .node-header > label, +[data-category=pool] > .node-body > .node > .node-header > label { + background-color: var(--category-pool) !important; +} + +[data-category=pool] > .node-body, +[data-category=pool] > .node-header > label, +[data-category=pool] > .node-body > .node > .node-header > *:not(.selected) { + border-color: var(--category-pool-border) !important; +} + +.node-entry > .node.object-node[data-category=pool], +.node-entry > .node.list-node[data-category=pool], +.node-entry > .node.map-node[data-category=pool] { + background-color: var(--category-pool-background); + border-color: var(--category-pool-border); +} diff --git a/world/index.html b/world/index.html new file mode 100644 index 00000000..bad5928c --- /dev/null +++ b/world/index.html @@ -0,0 +1,12 @@ +World Settings Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/biome/index.html b/worldgen/biome/index.html new file mode 100644 index 00000000..9246cd0c --- /dev/null +++ b/worldgen/biome/index.html @@ -0,0 +1,12 @@ +Biome Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/carver/index.html b/worldgen/carver/index.html new file mode 100644 index 00000000..cec4f377 --- /dev/null +++ b/worldgen/carver/index.html @@ -0,0 +1,12 @@ +Carver Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/feature/index.html b/worldgen/feature/index.html new file mode 100644 index 00000000..93bf7d30 --- /dev/null +++ b/worldgen/feature/index.html @@ -0,0 +1,12 @@ +Feature Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/index.html b/worldgen/index.html new file mode 100644 index 00000000..e96c4baf --- /dev/null +++ b/worldgen/index.html @@ -0,0 +1,12 @@ +Worldgen Generators Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/noise-settings/index.html b/worldgen/noise-settings/index.html new file mode 100644 index 00000000..df088dac --- /dev/null +++ b/worldgen/noise-settings/index.html @@ -0,0 +1,12 @@ +Noise Settings Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/processor-list/index.html b/worldgen/processor-list/index.html new file mode 100644 index 00000000..c9bc82f8 --- /dev/null +++ b/worldgen/processor-list/index.html @@ -0,0 +1,12 @@ +Processor List Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/structure-feature/index.html b/worldgen/structure-feature/index.html new file mode 100644 index 00000000..185632c1 --- /dev/null +++ b/worldgen/structure-feature/index.html @@ -0,0 +1,12 @@ +Structure Feature Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/surface-builder/index.html b/worldgen/surface-builder/index.html new file mode 100644 index 00000000..cc4e75a1 --- /dev/null +++ b/worldgen/surface-builder/index.html @@ -0,0 +1,12 @@ +Surface Builder Generator Minecraft 1.16, 1.17
        \ No newline at end of file diff --git a/worldgen/template-pool/index.html b/worldgen/template-pool/index.html new file mode 100644 index 00000000..e77ae3c0 --- /dev/null +++ b/worldgen/template-pool/index.html @@ -0,0 +1,12 @@ +Template Pool Generator Minecraft 1.16, 1.17
        \ No newline at end of file