From fbcb3bb57914e14fea514d49e21da24b79ecc2da Mon Sep 17 00:00:00 2001 From: misode Date: Fri, 16 Apr 2021 15:31:26 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=201f775?= =?UTF-8?q?c4dd2e6568b1cc826e13867a3d9ce1ea2d1=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/bundle.js | 2 +- js/bundle.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/js/bundle.js b/js/bundle.js index 7da29edd..d6f9c045 100644 --- a/js/bundle.js +++ b/js/bundle.js @@ -1,2 +1,2 @@ -!function(e){var t={};function i(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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 r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)i.d(r,o,function(t){return e[t]}.bind(null,o));return r},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 r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||t.hasOwnProperty(i)||r(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),o(i(27),t),o(i(11),t),o(i(12),t),o(i(5),t),o(i(28),t),o(i(29),t),o(i(14),t),o(i(30),t),o(i(31),t),o(i(32),t),o(i(33),t),o(i(34),t),o(i(15),t),o(i(35),t),o(i(36),t),o(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 r=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 o=r.StringNode.bind(void 0,i),n=r.Reference.bind(void 0,e);e.register("block_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:r.Opt(r.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",r.Mod(r.ListNode(r.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),t.Range=e=>r.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:r.NumberNode(e),change:e=>{var t,i,r;return void 0===e?0:null!==(r=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==r?r:0}}],{type:"object",priority:-1,node:r.ObjectNode({min:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.NumberNode(e)),max:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.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:r.ObjectNode({type:o({enum:["minecraft:binomial"]}),n:r.NumberNode({integer:!0,min:0}),p:r.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=>r.ChoiceNode([{type:"number",node:r.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:r.ObjectNode({base:r.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:r.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:r.ListNode(n("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:o({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:o({enum:"entity_source"}),scores:r.MapNode(o({validator:"objective"}),t.Range({forceRange:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:r.Opt(r.BooleanNode())},"minecraft:location_check":{offsetX:r.Opt(r.NumberNode({integer:!0})),offsetY:r.Opt(r.NumberNode({integer:!0})),offsetZ:r.Opt(r.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:r.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:r.NumberNode({min:0,max:1}),looting_multiplier:r.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:r.ListNode(r.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:r.Opt(r.NumberNode())},"minecraft:weather_check":{raining:r.Opt(r.BooleanNode()),thundering:r.Opt(r.BooleanNode())}},t.DimensionTypePresets=e=>r.ObjectOrPreset(o({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=>r.ObjectOrPreset(o({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.IntProvider=t.FloatProvider=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.FunctionCases=t.ConditionCases=void 0;const r=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 o=r.StringNode.bind(void 0,i),n=r.Reference.bind(void 0,e);e.register("block_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:r.Opt(r.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",r.Mod(r.ListNode(r.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>r.Opt(r.ChoiceNode([{type:"number",node:r.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:r.ObjectNode({min:r.Opt(r.NumberNode({integer:e})),max:r.Opt(r.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",r.ChoiceNode([{type:"object",node:r.ObjectNode({min:r.Opt(n("number_provider")),max:r.Opt(n("number_provider"))})},{type:"number",node:r.NumberNode({integer:!0})}],{context:"range"}));const s=(e,t,i,n,a,s,c)=>{let l={};a&&Object.keys(c[a]).forEach(e=>{l[e]=r.Mod(c[a][e],{enabled:e=>void 0===e.push("type").get()})});const d=r.ObjectNode({type:r.Mod(r.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[r.Switch]:[{push:"type"}],[r.Case]:c,...l},{context:s,disableSwitchContext:!0}),m=[{type:t,node:c[n][i]}];return a&&m.push({type:"object",priority:-1,node:d}),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 r=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==r?void 0:r.length)||1===(null==r?void 0:r.length)&&"type"===(null==r?void 0:r[0]))},node:d,change:t=>({type:e})})}),r.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:r.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:o({validator:"objective"}),scale:r.Opt(r.NumberNode())}})),e.register("scoreboard_name_provider",s("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:r.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),e.register("nbt_provider",s("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:r.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),t.FloatProvider=e=>s("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:r.NumberNode(e)},"minecraft:uniform":{value:r.ObjectNode({min_inclusive:r.NumberNode(e),max_exclusive:r.NumberNode(e)})},"minecraft:clamped_normal":{value:r.ObjectNode({min:r.NumberNode(),max:r.NumberNode(),mean:r.NumberNode(),deviation:r.NumberNode()})},"minecraft:trapezoid":{value:r.ObjectNode({min:r.NumberNode(),max:r.NumberNode(),plateau:r.NumberNode()})}}),e.register("float_provider",t.FloatProvider()),t.IntProvider=e=>s("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:r.NumberNode({integer:!0,...e})},"minecraft:uniform":{value:r.ObjectNode({min_inclusive:r.NumberNode({integer:!0,...e}),max_inclusive:r.NumberNode({integer:!0,...e})})},"minecraft:biased_to_bottom":{value:r.ObjectNode({min_inclusive:r.NumberNode({integer:!0,...e}),max_inclusive:r.NumberNode({integer:!0,...e})})},"minecraft:clamped":{value:r.ObjectNode({min_inclusive:r.NumberNode({integer:!0,...e}),max_inclusive:r.NumberNode({integer:!0,...e}),source:n("int_provider")})}}),e.register("int_provider",t.IntProvider()),e.register("vertical_anchor",r.ChoiceNode(["absolute","above_bottom","below_top"].map(e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,r,o;return{[e]:null!==(o=null!==(r=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==r?r:t.below_top)&&void 0!==o?o:0}},node:r.ObjectNode({[e]:r.NumberNode({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),e.register("height_provider",s("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:r.Opt(r.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:r.Opt(r.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:r.Opt(r.NumberNode({integer:!0}))}})),t.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:r.ListNode(n("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.MapNode(o(),o(),{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:r.MapNode(o({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:r.Opt(r.BooleanNode())},"minecraft:location_check":{offsetX:r.Opt(r.NumberNode({integer:!0})),offsetY:r.Opt(r.NumberNode({integer:!0})),offsetZ:r.Opt(r.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:r.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:r.NumberNode({min:0,max:1}),looting_multiplier:r.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:r.ListNode(r.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:r.Opt(r.NumberNode({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:r.Opt(r.BooleanNode()),thundering:r.Opt(r.BooleanNode())}}),t.FunctionCases=(e,t=o({enum:"copy_source"}),a=o({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:r.Mod(r.ObjectNode({bonusMultiplier:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:r.Mod(r.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:r.ListNode(r.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:r.Opt(r.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:r.Opt(r.BooleanNode())},"minecraft:exploration_map":{destination:r.Opt(o({enum:"map_feature"})),decoration:r.Opt(o({enum:"map_decoration"})),zoom:r.Opt(r.NumberNode({integer:!0})),search_radius:r.Opt(r.NumberNode({integer:!0})),skip_existing_chunks:r.Opt(r.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:r.ListNode(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:r.ListNode(r.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:r.Opt(r.BooleanNode())},"minecraft:set_contents":{entries:r.ListNode(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:r.Opt(r.BooleanNode())},"minecraft:set_damage":{damage:n("number_provider"),add:r.Opt(r.BooleanNode())},"minecraft:set_enchantments":{enchantments:r.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:r.Opt(r.BooleanNode())},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:r.Opt(a),lore:r.ListNode(n("text_component")),replace:r.Opt(r.BooleanNode())},"minecraft:set_name":{entity:r.Opt(a),name:r.Opt(n("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:r.Opt(r.ListNode(r.ObjectNode({type:o({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=>r.ObjectOrPreset(o({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=>r.ObjectOrPreset(o({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 r=i(0);t.initCommonSchemas=function(e,i){const o=r.StringNode.bind(void 0,i),n=r.Reference.bind(void 0,e);e.register("block_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:r.Opt(r.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",r.Mod(r.ListNode(r.NumberNode({integer:!0})),{default:()=>[0,0,0]})),t.Range=e=>r.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:r.NumberNode(e),change:e=>{var t,i,r;return void 0===e?0:null!==(r=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==r?r:0}}],{type:"object",priority:-1,node:r.ObjectNode({min:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.NumberNode(e)),max:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.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:r.ObjectNode({type:o({enum:["minecraft:binomial"]}),n:r.NumberNode({integer:!0,min:0}),p:r.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:r.ListNode(n("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:o({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:o({enum:"entity_source"}),scores:r.MapNode(o({validator:"objective"}),t.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:r.Opt(r.BooleanNode())},"minecraft:location_check":{offsetX:r.Opt(r.NumberNode({integer:!0})),offsetY:r.Opt(r.NumberNode({integer:!0})),offsetZ:r.Opt(r.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:r.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:r.NumberNode({min:0,max:1}),looting_multiplier:r.NumberNode()},"minecraft:requirements":{terms:r.ListNode(n("condition"))},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:r.ListNode(r.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:r.Opt(r.NumberNode())},"minecraft:weather_check":{raining:r.Opt(r.BooleanNode()),thundering:r.Opt(r.BooleanNode())}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=t.Processors=void 0;const r=i(0);t.initProcessorListSchemas=function(e,i){const o=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,i);t.Processors=r.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:o("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",r.Mod(r.ObjectNode({processors:r.ListNode(o("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",r.Mod(r.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[r.Switch]:[{push:"processor_type"}],[r.Case]:{"minecraft:block_age":{mossiness:r.NumberNode()},"minecraft:block_ignore":{blocks:r.ListNode(o("block_state"))},"minecraft:block_rot":{integrity:r.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:r.NumberNode({integer:!0})},"minecraft:rule":{rules:r.ListNode(o("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",r.Mod(r.ObjectNode({position_predicate:r.Opt(o("pos_rule_test")),location_predicate:o("rule_test"),input_predicate:o("rule_test"),output_state:o("block_state"),output_nbt:r.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:r.NumberNode({min:0,max:255,integer:!0}),max_dist:r.NumberNode({min:0,max:255,integer:!0}),min_chance:r.NumberNode({min:0,max:1}),max_chance:r.NumberNode({min:0,max:1})};e.register("pos_rule_test",r.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.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",r.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:o("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:r.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:o("block_state"),probability:r.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 r=i(90),o=i(91),n=i(92),a=i(93),s=i(94),c=i(95),l=i(96);l.alea=r,l.xor128=o,l.xorwow=n,l.xorshift7=a,l.xor4096=s,l.tychei=c,e.exports=l},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 r{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 r(this.modelArr.slice(e,t),this.contextArr)}shift(){return new r(this.modelArr.slice(1),this.contextArr)}pop(){return new r(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new r([...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 r([...this.modelArr],[...this.contextArr,t])}copy(){return new r([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new o(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=r;class o extends r{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 o(this.model,super.slice(e,t))}shift(){return new o(this.model,super.shift())}pop(){return new o(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new o(this.model,super.modelPush(e))}contextPush(e){return new o(this.model,super.contextPush(e))}copy(){return new o(this.model,super.copy())}}t.ModelPath=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Errors=void 0;class r{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=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=void 0;const r=i(0);t.initProcessorListSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("processor_list",r.Mod(r.ObjectNode({processors:r.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",r.Mod(r.ObjectNode({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[r.Switch]:[{push:"processor_type"}],[r.Case]:{"minecraft:block_age":{mossiness:r.NumberNode()},"minecraft:block_ignore":{blocks:r.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:r.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:r.NumberNode({integer:!0})},"minecraft:rule":{rules:r.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",r.Mod(r.ObjectNode({position_predicate:r.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:r.Opt(o({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:r.NumberNode({min:0,max:255,integer:!0}),max_dist:r.NumberNode({min:0,max:255,integer:!0}),min_chance:r.NumberNode({min:0,max:1}),max_chance:r.NumberNode({min:0,max:1})};e.register("pos_rule_test",r.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.Case]:{"minecraft:axis_aligned_linear_pos":{axis:o({enum:["x","y","z"]}),...n},"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",r.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:r.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:r.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({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 r=i(5);t.ListNode=(e,t)=>{var i,o;const n=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,a=null!==(o=null==t?void 0:t.maxLength)&&void 0!==o?o:1/0,s=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return{...r.Base,type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(n)].map(t=>e.default()):[],navigate(t,i){const r=i+1;return t.getArray().length<=r?this:e.navigate(t,r)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,r,o){return o.loose&&!Array.isArray(i)&&(i=this.default()),Array.isArray(i)?(s&&(i.lengtha)?n===a?r.add(t,"error.invalid_list_range.exact",i.length,n):r.add(t,"error.invalid_list_range.between",i.length,n,a):i.lengtha&&r.add(t,"error.invalid_list_range.larger",i.length,a),i.map((i,n)=>e.validate(t.push(n),i,r,o))):(r.add(t,"error.expected_list"),i)},hook(i,r,...o){var n;return(null!==(n=i.list)&&void 0!==n?n:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},r,...o)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwitchNode=void 0;const r=i(5);t.SwitchNode=e=>({...r.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 r=t+1;return null===(i=this.activeCase(e.slice(0,r)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,r;return null!==(r=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==r?r:e},suggest(t,i){var r,o;return null!==(o=null===(r=this.activeCase(t))||void 0===r?void 0:r.node.suggest(t,i))&&void 0!==o?o:e.filter(e=>e.match(t)).map(e=>e.node.suggest(t,i)).reduce((e,t)=>e.concat(t))},validate(e,t,i,r){let o=this.activeCase(e);return void 0===o?t:o.node.validate(e,t,i,r)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const r=(e,t)=>{var i,r;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(r=e.priority)&&void 0!==r?r:0)},o=e.filter(e=>e.match(t)).sort(r);return i&&0===o.length?e.sort(r)[0]:o.length>0?o[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}})},function(e,t,i){"use strict";function r(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(t,"__esModule",{value:!0}),t.quoteString=t.escapeString=void 0,t.escapeString=r,t.quoteString=function(e){return`"${r(e)}"`}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=t.LocationFields=void 0;const r=i(0),o=i(8);t.initPredicatesSchemas=function(e,i){const n=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,i),s=r.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:r.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:r.ObjectNode({min:r.Opt(r.NumberNode({integer:!0})),max:r.Opt(r.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:r.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",r.ObjectNode({item:r.Opt(a({validator:"resource",params:{pool:"item"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:r.Opt(o.Range()),durability:r.Opt(o.Range()),potion:r.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:r.Opt(r.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",r.ObjectNode({enchantment:r.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:r.Opt(o.Range())},{context:"enchantment"})),e.register("block_predicate",r.ObjectNode({block:r.Opt(a({validator:"resource",params:{pool:"block"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:r.Opt(r.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",r.ObjectNode({fluid:r.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:r.Opt(r.MapNode(a(),s))},{context:"fluid"})),t.LocationFields={position:r.Opt(r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range())})),biome:r.Opt(a({enum:"biome"})),feature:r.Opt(a({enum:"structure_feature"})),dimension:r.Opt(a({enum:"dimension"})),light:r.Opt(r.ObjectNode({light:r.Opt(o.Range({integer:!0,min:0,max:15}))})),block:r.Opt(n("block_predicate")),fluid:r.Opt(n("fluid_predicate"))},e.register("location_predicate",r.ObjectNode(t.LocationFields,{context:"location"})),e.register("statistic_predicate",r.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:o.Range(),[r.Switch]:[{push:"type"}],[r.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",r.ObjectNode({gamemode:r.Opt(a({enum:"gamemode"})),level:r.Opt(o.Range()),advancements:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),r.ChoiceNode([{type:"boolean",node:r.BooleanNode(),change:e=>!0},{type:"object",node:r.MapNode(a(),r.BooleanNode())}]))),recipes:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),r.BooleanNode())),stats:r.Opt(r.ListNode(n("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",r.ObjectNode({amplifier:r.Opt(o.Range()),duration:r.Opt(o.Range()),ambient:r.Opt(r.BooleanNode()),visible:r.Opt(r.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range()),absolute:r.Opt(o.Range()),horizontal:r.Opt(o.Range())},{context:"distance"})),e.register("entity_predicate",r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:r.Opt(a({validator:"team"})),location:r.Opt(n("location_predicate")),distance:r.Opt(n("distance_predicate")),flags:r.Opt(r.ObjectNode({is_on_fire:r.Opt(r.BooleanNode()),is_sneaking:r.Opt(r.BooleanNode()),is_sprinting:r.Opt(r.BooleanNode()),is_swimming:r.Opt(r.BooleanNode()),is_baby:r.Opt(r.BooleanNode())})),equipment:r.Opt(r.MapNode(a({enum:"slot"}),n("item_predicate"))),player:r.Opt(n("player_predicate")),effects:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",r.ObjectNode({is_explosion:r.Opt(r.BooleanNode()),is_fire:r.Opt(r.BooleanNode()),is_magic:r.Opt(r.BooleanNode()),is_projectile:r.Opt(r.BooleanNode()),is_lightning:r.Opt(r.BooleanNode()),bypasses_armor:r.Opt(r.BooleanNode()),bypasses_invulnerability:r.Opt(r.BooleanNode()),bypasses_magic:r.Opt(r.BooleanNode()),source_entity:r.Opt(n("entity_predicate")),direct_entity:r.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",r.ObjectNode({dealt:r.Opt(o.Range()),taken:r.Opt(o.Range()),blocked:r.Opt(r.BooleanNode()),source_entity:r.Opt(n("entity_predicate")),type:r.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 r=i(0),o=i(3);t.initDecoratorSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={maximum:r.NumberNode({integer:!0}),bottom_offset:r.NumberNode({integer:!0}),top_offset:r.NumberNode({integer:!0})},s={chance:r.NumberNode({integer:!0,min:0})},c={count:o.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:r.NumberNode({min:0,max:1})},"minecraft:chance":s,"minecraft:count":c,"minecraft:count_extra":{count:r.NumberNode({integer:!0,min:0}),extra_count:r.NumberNode({integer:!0,min:0}),extra_chance:r.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:r.NumberNode(),below_noise:r.NumberNode({integer:!0}),above_noise:r.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:r.NumberNode({integer:!0}),noise_factor:r.NumberNode(),noise_offset:r.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:r.NumberNode({integer:!0}),spread:r.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 r=i(0),o=i(4);t.initDecoratorSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={count:o.IntProvider({min:0,max:256})};e.register("configured_decorator",r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:r.NumberNode({integer:!0})},"minecraft:chance":{chance:r.NumberNode({integer:!0,min:0})},"minecraft:count":a,"minecraft:count_extra":{count:r.NumberNode({integer:!0,min:0}),extra_count:r.NumberNode({integer:!0,min:0}),extra_chance:r.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:r.NumberNode(),below_noise:r.NumberNode({integer:!0}),above_noise:r.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:r.NumberNode({integer:!0}),noise_factor:r.NumberNode(),noise_offset:r.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_with_water_threshold":{max_water_depth:r.NumberNode({integer:!0})},"minecraft:range":{height:i("height_provider")}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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)&&r(t,e,i);return o(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 r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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)&&r(t,e,i);return o(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 r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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)&&r(t,e,i);return o(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 r=i(11),o=i(12);t.DataModel=class{constructor(e,t){var i;this.schema=e,this.data=e.default(),this.listeners=[],this.errors=new o.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 r=this.data;e.pop().forEach(e=>{void 0!==r[e]&&"string"!=typeof r[e]&&"number"!=typeof r[e]||(r[e]={}),r=r[e]}),void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?r.splice(e.last(),1):delete r[e.last()]:r[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(r)})}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanNode=void 0;const r=i(5);t.BooleanNode=()=>({...r.Base,type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,r){return r.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 r;return(null!==(r=e.boolean)&&void 0!==r?r: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 r=i(14),o=i(15);t.ChoiceNode=(e,t)=>{const i=o.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,r,o){let n=i.activeCase(e,!0);return n.node.optional()?t:n.node.validate(e,t,r,o)},hook(r,o,...n){var a;return(null!==(a=r.choice)&&void 0!==a?a:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:i},o,...n)}}};const n=e=>(i,o)=>t.ChoiceNode([{type:e,node:i,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:i.default()}},{type:"list",node:r.ListNode(i),change:e=>e?[e]:[]}],o);t.ObjectOrList=n("object"),t.StringOrList=n("string"),t.ObjectOrPreset=(e,i,r)=>t.ChoiceNode([{type:"string",priority:1,node:e,change:e=>Object.keys(r)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=r[e])&&void 0!==t?t:r[Object.keys(r)[0]]}}])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MapNode=void 0;const r=i(5);t.MapNode=(e,t,i)=>({...r.Base,type:()=>"map",default:()=>({}),navigate(e,i){const r=i+1;return e.getArray().length<=r?this:t.navigate(e,r)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,r,o,n){if(n.loose&&"object"!=typeof r&&(r=this.default()),null===r||"object"!=typeof r)return o.add(i,"error.expected_object"),r;let a={};return Object.keys(r).forEach(s=>{e.validate(i,s,o,n),a[s]=t.validate(i.push(s),r[s],o,n)}),a},validationOption(t){var r;return null!==(r=null==i?void 0:i.validation)&&void 0!==r?r:e.validationOption(t.push(""))},hook(r,o,...n){var a;return(null!==(a=r.map)&&void 0!==a?a:r.base).call(r,{node:this,keys:e,children:t,config:null!=i?i:{}},o,...n)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNode=void 0;const r=i(5);t.NumberNode=e=>{var t,i,o;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!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,c=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return{...r.Base,type:()=>"number",default:()=>a>0?a:0,validate(e,t,i,r){return r.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,...r){var o;return(null!==(o=t.number)&&void 0!==o?o:t.base).call(t,{node:this,integer:n,min:a,max:s,between:c,config:null!=e?e:{}},i,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectNode=t.Case=t.Switch=void 0;const r=i(5),o=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,...l}=e,d=e=>{if(void 0===s)return l;const t=o.relativePath(e,s).get(),i=c[t];return{...l,...i}},m=(e,t)=>{var r;const n=s?o.relativePath(e,s).get():void 0,a=s&&null!==(r=c[n])&&void 0!==r?r:{},l=Object.keys(a),d=(null==i?void 0:i.context)?new o.ModelPath(e.getModel(),new o.Path(e.getArray(),[i.context])):e;return(!(null==i?void 0:i.disableSwitchContext)&&n&&l.includes(t)?d.contextPush(n):d).push(t)};return{...r.Base,type:()=>"object",category:()=>null==i?void 0:i.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,r=e.getArray();if(r.length<=i)return this;const o=d(e.slice(0,i))[r[i]];return null==o?void 0:o.navigate(e,i)},pathPush:(e,t)=>m(e,t.toString()),suggest(e,t){const i=d(e),r=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter(t=>i[t].enabled(e)).filter(e=>!r.includes(e)).map(a.quoteString)},validate(e,t,i,r){if(r.loose&&"object"!=typeof t&&(t=this.default()),"object"!=typeof t)return i.add(e,"error.expected_object"),t;let a=l;if(s){const i=o.relativePath(e,s);let d=i.get();if(e.equals(i.pop())){const o=i.last();d=l[o].validate(e.push(o),t[o],new n.Errors,r)}a={...a,...c[d]}}const d=Object.keys(a),m=d.filter(e=>!a[e].optional()),p=new Set([...m,...Object.keys(t)]);let u={};return p.forEach(o=>{if(d.includes(o)){if(!a[o].enabled(e))return;const n=a[o].validate(e.push(o),t[o],i,r);!a[o].keep()&&a[o].optional()&&(void 0===n||Array.isArray(n)&&0===n.length||n.constructor===Object&&0===Object.keys(n).length)?u[o]=void 0:(u[o]=n,e.getModel().set(e.push(o),n,!0))}else u[o]=t[o]}),u},hook(e,t,...i){var r;return(null!==(r=e.object)&&void 0!==r?r:e.base).call(e,{node:this,fields:l,filter:s,cases:c,getActiveFields:d,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,r)=>e.get(t).transform(i,r),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,r){return e.get(t).navigate.bind(this)(i,r)},pathPush(i,r){return e.get(t).pathPush.bind(this)(i,r)},suggest(i,r){return e.get(t).suggest.bind(this)(i,r)},validate(i,r,o,n){return e.get(t).validate.bind(this)(i,r,o,n)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,r,...o){return e.get(t).hook.bind(this)(i,r,...o)},activeCase(i,r){return e.get(t).activeCase.bind(this)(i,r)},canUpdate(i,r){return e.get(t).canUpdate.bind(this)(i,r)},update(i,r){return e.get(t).update.bind(this)(i,r)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringNode=void 0;const r=i(5),o=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{...r.Base,type:()=>"string",default:()=>"",validate(e,r,o,s){if(s.loose&&"string"!=typeof r&&(r=this.default()||void 0),"string"!=typeof r)return o.add(e,"error.expected_string"),r;if(a(t)&&("resource"===t.validator&&r.length>0&&!r.includes(":")&&(r="#"===r[0]?"#minecraft:"+r.slice(1):"minecraft:"+r),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===r[0]||t.params.isDefinition||t.params.allowUnknown)))return r;if(n(t)&&t.additional)return r;const c=i();return c.length>0&&!c.includes(r)&&o.add(e,"error.invalid_enum_option",r),r},suggest:()=>i().map(o.quoteString),validationOption:()=>a(t)?t:void 0,hook(e,r,...o){var n;return(null!==(n=e.string)&&void 0!==n?n:e.base).call(e,{node:this,getValues:i,config:t},r,...o)}}}},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 r=i(40),o=i(8),n=i(41),a=i(42),s=i(43),c=i(17),l=i(44),d=i(45),m=i(46);t.initSchemas=function(e,t){o.initCommonSchemas(e,t),c.initPredicatesSchemas(e,t),r.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),a.initLootTableSchemas(e,t),s.initPackMcmetaSchemas(e,t),l.initRecipeSchemas(e,t),d.initTagsSchemas(e,t),m.initTextComponentSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const r=i(0),o=i(8),n=i(17);t.initAdvancementSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t);e.register("advancement",r.Mod(r.ObjectNode({display:r.Opt(r.Mod(r.ObjectNode({icon:r.ObjectNode({item:a({validator:"resource",params:{pool:"item"}}),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:r.Opt(a()),frame:r.Opt(a({enum:["task","challenge","goal"]})),show_toast:r.Opt(r.BooleanNode()),announce_to_chat:r.Opt(r.BooleanNode()),hidden:r.Opt(r.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:r.Opt(a({validator:"resource",params:{pool:"$advancement"}})),criteria:r.MapNode(a(),i("advancement_criteria")),requirements:r.Opt(r.ListNode(r.ListNode(a()))),rewards:r.Opt(r.ObjectNode({function:r.Opt(a({validator:"resource",params:{pool:"$function"}})),loot:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"$loot_table"}}))),recipes:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"$recipe"}}))),experience:r.Opt(r.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",r.ObjectNode({trigger:a({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:r.Opt(r.ObjectNode({[r.Switch]:["pop",{push:"trigger"}],[r.Case]:{"minecraft:bee_nest_destroyed":{block:r.Opt(a({validator:"resource",params:{pool:"block"}})),num_bees_inside:r.Opt(r.NumberNode({integer:!0})),item:r.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r.Opt(i("entity_predicate")),partner:r.Opt(i("entity_predicate")),child:r.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:r.Opt(a({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:r.Opt(a({enum:"dimension"})),to:r.Opt(a({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:r.Opt(r.ListNode(r.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:r.Opt(o.Range())},"minecraft:consume_item":{item:r.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r.Opt(i("entity_predicate")),zombie:r.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),r.ObjectNode({amplifier:o.Range(),duration:o.Range()})))},"minecraft:enter_block":{block:r.Opt(a({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:r.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r.Opt(i("entity_predicate")),killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:r.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r.Opt(i("entity_predicate")),item:r.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":n.LocationFields,"minecraft:inventory_changed":{slots:r.Opt(r.ObjectNode({empty:r.Opt(o.Range()),occupied:r.Opt(o.Range()),full:r.Opt(o.Range())})),items:r.Opt(r.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:r.Opt(o.Range()),durability:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r.Opt(o.Range()),victims:r.Opt(r.ListNode(r.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:r.Opt(o.Range()),duration:r.Opt(o.Range())},"minecraft:location":n.LocationFields,"minecraft:nether_travel":{distance:r.Opt(o.Range()),entered:r.Opt(i("location_predicate")),exited:r.Opt(i("location_predicate"))},"minecraft:placed_block":{block:r.Opt(a({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:r.Opt(i("damage_predicate")),entity:r.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:r.Opt(i("entity_predicate")),killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:a({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:r.Opt(r.ObjectNode({block:r.Opt(a({validator:"resource",params:{pool:"block"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/block"}}))})),item:r.Opt(i("item_predicate"))},"minecraft:slept_in_bed":n.LocationFields,"minecraft:slide_down_block":{block:r.Opt(a({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:r.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:r.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:r.Opt(o.Range())},"minecraft:used_totem":{item:r.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:r.Opt(i("entity_predicate")),item:r.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 r=i(0),o=i(8);t.initConditionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("predicate",r.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",r.Mod(r.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[r.Switch]:[{push:"condition"}],[r.Case]:o.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 r=i(0),o=i(18),n=i(8);t.initLootTableSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={conditions:r.Opt(r.ListNode(i("loot_condition")))},c={functions:r.Opt(r.ListNode(i("loot_function"))),...s};function l(e,i,n){const a=[],s=r=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>r.includes(e))});for(const[e,{allows:t,requires:i}]of o.LootTableTypes){const o=[...t,...i];a.push({match:t=>t.getModel().get(new r.Path(["type"]))===e,node:n(s(o))})}return a.push({match:e=>!0,node:n(i)}),r.SwitchNode(a)}const d=l(o.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=l(o.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=l(o.LootEntitySources,"entity_source",e=>a({enum:e})),u=l(o.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",r.Mod(r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:r.Opt(r.ListNode(r.Mod(r.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:r.Opt(n.Range({integer:!0})),entries:r.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:r.Opt(r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:r.Opt(r.Mod(r.NumberNode({integer:!0,min:1}),_)),quality:r.Opt(r.Mod(r.NumberNode({integer:!0}),_)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":{children:r.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:r.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:r.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:r.Opt(r.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",r.Mod(r.ObjectNode({function:m,[r.Switch]:[{push:"function"}],[r.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:r.Mod(r.ObjectNode({bonusMultiplier:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:r.Mod(r.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:r.ListNode(r.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:r.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}})),...s},"minecraft:enchant_randomly":{enchantments:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"enchantment"}}))),...s},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:r.Opt(r.BooleanNode()),...s},"minecraft:exploration_map":{destination:r.Opt(a({enum:"structure_feature"})),decoration:r.Opt(a({enum:"map_decoration"})),zoom:r.Opt(r.NumberNode({integer:!0})),search_radius:r.Opt(r.NumberNode({integer:!0})),skip_existing_chunks:r.Opt(r.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:r.Opt(r.NumberNode({integer:!0})),...s},"minecraft:set_attributes":{modifiers:r.ListNode(i("attribute_modifier")),...s},"minecraft:set_contents":{entries:r.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:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:r.Opt(p),lore:r.ListNode(i("text_component")),replace:r.Opt(r.BooleanNode()),...s},"minecraft:set_name":{entity:r.Opt(p),name:r.Opt(i("text_component")),...s},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}}),...s},"minecraft:set_stew_effect":{effects:r.Opt(r.ListNode(r.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",r.Mod(r.ObjectNode({condition:d,[r.Switch]:[{push:"condition"}],[r.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:r.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",r.Mod(r.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:r.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 r=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",r.Mod(r.ObjectNode({pack:r.Mod(r.ObjectNode({pack_format:r.Mod(r.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:r.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 r=i(0);t.initRecipeSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("recipe",r.Mod(r.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:crafting_shaped":{group:r.Opt(o({enum:"recipe_group",additional:!0})),pattern:r.ListNode(o()),key:r.MapNode(o(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:r.Opt(o()),ingredients:r.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:r.NumberNode({integer:!0})},"minecraft:smithing":{group:r.Opt(o()),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",r.Mod(r.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:r.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",r.Mod(r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",r.Mod(r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.Mod(r.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 r=i(0);t.initTagsSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=e=>r.Mod(r.ObjectNode({replace:r.Opt(r.BooleanNode()),values:r.ListNode(r.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:r.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:r.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const r=i(0);t.initTextComponentSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.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",r.Mod(r.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:o(),change:n},{type:"number",node:r.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:r.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:r.Opt(r.BooleanNode()),italic:r.Opt(r.BooleanNode()),underlined:r.Opt(r.BooleanNode()),strikethrough:r.Opt(r.BooleanNode()),obfuscated:r.Opt(r.BooleanNode()),insertion:r.Opt(o()),clickEvent:r.Opt(r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[r.Switch]:[{push:"action"}],[r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:r.Opt(r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[r.Switch]:[{push:"action"}],[r.Case]:{show_text:{value:r.Opt(i("text_component"))},show_item:{value:r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:r.Opt(r.ObjectNode({name:r.Opt(o()),type:r.Opt(o()),id:r.Opt(o())}))}}})),extra:r.Opt(i("text_component_list"))};e.register("text_component_object",r.Mod(r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:r.ObjectNode({text:o(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:r.ObjectNode({translate:o(),with:r.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:r.ObjectNode({score:r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:r.Opt(o())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:r.ObjectNode({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:r.ObjectNode({keybind:o({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:r.ObjectNode({nbt:o({validator:"nbt_path"}),block:r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:r.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:r.Opt(r.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",r.Mod(r.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 r=i(49),o=i(3),n=i(50),a=i(51),s=i(52),c=i(53),l=i(54),d=i(55),m=i(56),p=i(57),u=i(58),_=i(59),f=i(67);t.initSchemas=function(e,t){o.initCommonSchemas(e,t),r.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initLootTableSchemas(e,t),l.initPackMcmetaSchemas(e,t),d.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 r=i(0),o=i(3);t.initAdvancementSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=r.ChoiceNode([{type:"object",node:r.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:r.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",r.Mod(r.ObjectNode({display:r.Opt(r.Mod(r.ObjectNode({icon:r.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:r.Opt(n()),frame:r.Opt(n({enum:["task","challenge","goal"]})),show_toast:r.Opt(r.BooleanNode()),announce_to_chat:r.Opt(r.BooleanNode()),hidden:r.Opt(r.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:r.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:r.MapNode(n(),i("advancement_criteria")),requirements:r.Opt(r.ListNode(r.ListNode(n()))),rewards:r.Opt(r.ObjectNode({function:r.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:r.Opt(r.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:r.Opt(r.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:r.Opt(r.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",r.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:r.Opt(r.ObjectNode({player:r.Mod(a,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[r.Switch]:["pop",{push:"trigger"}],[r.Case]:{"minecraft:bee_nest_destroyed":{block:r.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:r.Opt(r.NumberNode({integer:!0})),item:r.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:a,partner:a,child:a},"minecraft:brewed_potion":{potion:r.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:r.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:r.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:r.Opt(r.ListNode(a))},"minecraft:construct_beacon":{level:r.Opt(o.Range())},"minecraft:consume_item":{item:r.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:a,zombie:a},"minecraft:effects_changed":{effects:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:r.Opt(n({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:r.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:a,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:r.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:a,item:r.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:r.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:r.Opt(r.ObjectNode({empty:r.Opt(o.Range()),occupied:r.Opt(o.Range()),full:r.Opt(o.Range())})),items:r.Opt(r.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:r.Opt(o.Range()),durability:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r.Opt(o.Range()),victims:r.Opt(r.ListNode(a))},"minecraft:levitation":{distance:r.Opt(o.Range()),duration:r.Opt(o.Range())},"minecraft:location":{location:r.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:r.Opt(o.Range()),entered:r.Opt(i("location_predicate")),exited:r.Opt(i("location_predicate"))},"minecraft:placed_block":{block:r.Opt(n({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:r.Opt(i("damage_predicate")),entity:a},"minecraft:player_interacted_with_entity":{item:r.Opt(i("item_predicate")),entity:a},"minecraft:player_killed_entity":{entity:a,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:r.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:r.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:r.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:a},"minecraft:tame_animal":{entity:a},"minecraft:target_hit":{projectile:a,shooter:a,signal_strength:r.Opt(o.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:r.Opt(i("entity_predicate")),item:r.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:r.Opt(o.Range())},"minecraft:used_totem":{item:r.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:r.Opt(i("entity_predicate")),item:r.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 r=i(0),o=i(3);t.initConditionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("predicate",r.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",r.Mod(r.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[r.Switch]:[{push:"condition"}],[r.Case]:o.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 r=i(0),o=i(3);t.initDimensionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=e=>r.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",r.Mod(r.ObjectNode({type:o.DimensionTypePresets(i("dimension_type")),generator:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:noise":{biome_source:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:r.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(r.Mod(r.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:r.Opt(r.NumberNode({integer:!0,min:0,max:62})),biomes:r.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:r.Opt(r.BooleanNode()),legacy_biome_init_layer:r.Opt(r.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:o.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:r.ObjectNode({biome:r.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:r.Opt(r.BooleanNode()),features:r.Opt(r.BooleanNode()),layers:r.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",r.Mod(r.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:r.ObjectNode({altitude:r.NumberNode({min:-1,max:1}),temperature:r.NumberNode({min:-1,max:1}),humidity:r.NumberNode({min:-1,max:1}),weirdness:r.NumberNode({min:-1,max:1}),offset:r.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",r.Mod(r.ObjectNode({firstOctave:r.NumberNode({integer:!0}),amplitudes:r.ListNode(r.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 r=i(0),o=i(3);t.initDimensionTypeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("dimension_type",r.Mod(r.ObjectNode({name:r.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:r.BooleanNode(),natural:r.BooleanNode(),piglin_safe:r.BooleanNode(),respawn_anchor_works:r.BooleanNode(),bed_works:r.BooleanNode(),has_raids:r.BooleanNode(),has_skylight:r.BooleanNode(),has_ceiling:r.BooleanNode(),coordinate_scale:r.NumberNode({min:1e-5,max:3e7}),ambient_light:r.NumberNode(),fixed_time:r.Opt(r.NumberNode({integer:!0})),logical_height:r.NumberNode({integer:!0,min:0,max:256}),effects:r.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>o.DefaultDimensionType}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const r=i(0),o=i(19),n=i(3);t.initLootTableSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={conditions:r.Opt(r.ListNode(i("loot_condition")))},c={functions:r.Opt(r.ListNode(i("loot_function"))),...s};function l(e,i,n){const a=[],s=r=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>r.includes(e))});for(const[e,{allows:t,requires:i}]of o.LootTableTypes){const o=[...t,...i];a.push({match:t=>t.getModel().get(new r.Path(["type"]))===e,node:n(s(o))})}return a.push({match:e=>!0,node:n(i)}),r.SwitchNode(a)}const d=l(o.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=l(o.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=l(o.LootEntitySources,"entity_source",e=>a({enum:e})),u=l(o.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",r.Mod(r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:r.Opt(r.ListNode(r.Mod(r.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:r.Opt(n.Range({integer:!0})),entries:r.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:r.Opt(r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:r.Opt(r.Mod(r.NumberNode({integer:!0,min:1}),_)),quality:r.Opt(r.Mod(r.NumberNode({integer:!0}),_)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":{children:r.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:r.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:r.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:r.Opt(r.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",r.Mod(r.ObjectNode({function:m,[r.Switch]:[{push:"function"}],[r.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:r.Mod(r.ObjectNode({bonusMultiplier:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:r.Mod(r.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:r.ListNode(r.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:r.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:r.Opt(r.BooleanNode())},"minecraft:exploration_map":{destination:r.Opt(a({enum:"map_feature"})),decoration:r.Opt(a({enum:"map_decoration"})),zoom:r.Opt(r.NumberNode({integer:!0})),search_radius:r.Opt(r.NumberNode({integer:!0})),skip_existing_chunks:r.Opt(r.BooleanNode())},"minecraft:fill_player_head":{entity:p},"minecraft:limit_count":{limit:n.Range({bounds:!0})},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:r.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:r.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:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:r.Opt(p),lore:r.ListNode(i("text_component")),replace:r.Opt(r.BooleanNode())},"minecraft:set_name":{entity:r.Opt(p),name:r.Opt(i("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:r.Opt(r.ListNode(r.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()})))}},o={};return t.get("loot_function_type").forEach(t=>{o[t]={...e[t],...s}}),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",r.Mod(r.ObjectNode({condition:d,[r.Switch]:[{push:"condition"}],[r.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:r.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",r.Mod(r.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:r.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 r=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",r.Mod(r.ObjectNode({pack:r.Mod(r.ObjectNode({pack_format:r.Mod(r.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:r.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 r=i(0),o=i(3);t.initPredicatesSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=r.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:r.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:r.ObjectNode({min:r.Opt(r.NumberNode({integer:!0})),max:r.Opt(r.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:r.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",r.ObjectNode({item:r.Opt(n({validator:"resource",params:{pool:"item"}})),tag:r.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r.Opt(o.Range()),durability:r.Opt(o.Range()),potion:r.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:r.Opt(r.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",r.ObjectNode({enchantment:r.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r.Opt(o.Range())},{context:"enchantment"})),e.register("block_predicate",r.ObjectNode({block:r.Opt(n({validator:"resource",params:{pool:"block"}})),tag:r.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:r.Opt(r.MapNode(n(),a,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",r.ObjectNode({fluid:r.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:r.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:r.Opt(r.MapNode(n(),a))},{context:"fluid"})),e.register("location_predicate",r.ObjectNode({position:r.Opt(r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range())})),biome:r.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:r.Opt(n({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:r.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:r.Opt(r.ObjectNode({light:r.Opt(o.Range({integer:!0,min:0,max:15}))})),smokey:r.Opt(r.BooleanNode()),block:r.Opt(i("block_predicate")),fluid:r.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",r.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:o.Range(),[r.Switch]:[{push:"type"}],[r.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",r.ObjectNode({gamemode:r.Opt(n({enum:"gamemode"})),level:r.Opt(o.Range()),advancements:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),r.ChoiceNode([{type:"boolean",node:r.BooleanNode(),change:e=>!0},{type:"object",node:r.MapNode(n(),r.BooleanNode())}]))),recipes:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),r.BooleanNode())),stats:r.Opt(r.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",r.ObjectNode({amplifier:r.Opt(o.Range()),duration:r.Opt(o.Range()),ambient:r.Opt(r.BooleanNode()),visible:r.Opt(r.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range()),absolute:r.Opt(o.Range()),horizontal:r.Opt(o.Range())},{context:"distance"})),e.register("entity_predicate",r.ObjectNode({type:r.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:r.Opt(n({validator:"team"})),location:r.Opt(i("location_predicate")),distance:r.Opt(i("distance_predicate")),flags:r.Opt(r.ObjectNode({is_on_fire:r.Opt(r.BooleanNode()),is_sneaking:r.Opt(r.BooleanNode()),is_sprinting:r.Opt(r.BooleanNode()),is_swimming:r.Opt(r.BooleanNode()),is_baby:r.Opt(r.BooleanNode())})),equipment:r.Opt(r.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:r.Opt(i("entity_predicate")),targeted_entity:r.Opt(i("entity_predicate")),player:r.Opt(i("player_predicate")),fishing_hook:r.Opt(r.ObjectNode({in_open_water:r.Opt(r.BooleanNode())})),effects:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",r.ObjectNode({is_explosion:r.Opt(r.BooleanNode()),is_fire:r.Opt(r.BooleanNode()),is_magic:r.Opt(r.BooleanNode()),is_projectile:r.Opt(r.BooleanNode()),is_lightning:r.Opt(r.BooleanNode()),bypasses_armor:r.Opt(r.BooleanNode()),bypasses_invulnerability:r.Opt(r.BooleanNode()),bypasses_magic:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),direct_entity:r.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",r.ObjectNode({dealt:r.Opt(o.Range()),taken:r.Opt(o.Range()),blocked:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),type:r.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const r=i(0);t.initRecipeSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("recipe",r.Mod(r.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:crafting_shaped":{group:r.Opt(o({enum:"recipe_group",additional:!0})),pattern:r.ListNode(o()),key:r.MapNode(o(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:r.Opt(o()),ingredients:r.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:r.NumberNode({integer:!0})},"minecraft:smithing":{group:r.Opt(o()),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",r.Mod(r.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:r.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",r.Mod(r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",r.Mod(r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.Mod(r.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 r=i(0);t.initTagsSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=e=>r.Mod(r.ObjectNode({replace:r.Opt(r.BooleanNode()),values:r.ListNode(r.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:r.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:r.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const r=i(0);t.initTextComponentSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.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",r.Mod(r.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:o(),change:n},{type:"number",node:r.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:r.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:r.Opt(o()),font:r.Opt(o()),bold:r.Opt(r.BooleanNode()),italic:r.Opt(r.BooleanNode()),underlined:r.Opt(r.BooleanNode()),strikethrough:r.Opt(r.BooleanNode()),obfuscated:r.Opt(r.BooleanNode()),insertion:r.Opt(o()),clickEvent:r.Opt(r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[r.Switch]:[{push:"action"}],[r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:r.Opt(r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[r.Switch]:[{push:"action"}],[r.Case]:{show_text:{value:r.Opt(i("text_component")),contents:r.Opt(i("text_component"))},show_item:{value:r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:r.Opt(r.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.NumberNode({integer:!0})),tag:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:r.Opt(r.ObjectNode({name:r.Opt(o()),type:r.Opt(o()),id:r.Opt(o())})),contents:r.Opt(r.Mod(r.ObjectNode({name:r.Opt(i("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:r.Opt(i("text_component_list"))};e.register("text_component_object",r.Mod(r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:r.ObjectNode({text:o(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:r.ObjectNode({translate:o(),with:r.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:r.ObjectNode({score:r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:r.Opt(o())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:r.ObjectNode({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:r.ObjectNode({keybind:o({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:r.ObjectNode({nbt:o({validator:"nbt_path"}),block:r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:r.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:r.Opt(r.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",r.Mod(r.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const r=i(60),o=i(61),n=i(20),a=i(62),s=i(63),c=i(13),l=i(64),d=i(65),m=i(66);t.initWorldgenSchemas=function(e,t){r.initBiomeSchemas(e,t),o.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),c.initProcessorListSchemas(e,t),l.initStructureFeatureSchemas(e,t),d.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const r=i(0);t.initBiomeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("biome",r.Mod(r.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:r.NumberNode(),scale:r.NumberNode(),temperature:r.NumberNode(),downfall:r.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:r.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:r.Opt(r.BooleanNode()),creature_spawn_probability:r.Opt(r.NumberNode({min:0,max:1})),effects:r.ObjectNode({sky_color:r.NumberNode({color:!0}),fog_color:r.NumberNode({color:!0}),water_color:r.NumberNode({color:!0}),water_fog_color:r.NumberNode({color:!0}),grass_color:r.Opt(r.NumberNode({color:!0})),foliage_color:r.Opt(r.NumberNode({color:!0})),grass_color_modifier:r.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:r.Opt(i()),mood_sound:r.Opt(r.ObjectNode({sound:i(),tick_delay:r.NumberNode({integer:!0}),block_search_extent:r.NumberNode({integer:!0}),offset:r.NumberNode()})),additions_sound:r.Opt(r.ObjectNode({sound:i(),tick_chance:r.NumberNode({min:0,max:1})})),music:r.Opt(r.ObjectNode({sound:i(),min_delay:r.NumberNode({integer:!0,min:0}),max_delay:r.NumberNode({integer:!0,min:0}),replace_current_music:r.BooleanNode()})),particle:r.Opt(r.ObjectNode({options:r.ObjectNode({type:i()}),probability:r.NumberNode({min:0,max:1})}))}),starts:r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:r.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),r.Mod(r.ListNode(r.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:r.NumberNode({integer:!0}),minCount:r.NumberNode({integer:!0}),maxCount:r.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:r.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),r.Mod(r.ObjectNode({energy_budget:r.NumberNode(),charge:r.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:r.MapNode(i({enum:["air","liquid"]}),r.Mod(r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:r.ListNode(r.Mod(r.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 r=i(0);t.initCarverSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("configured_carver",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:r.ObjectNode({probability:r.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 r=i(0),o=i(3);i(20),i(13),t.initFeatureSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={can_replace:r.BooleanNode(),project:r.BooleanNode(),need_water:r.BooleanNode(),xspread:r.NumberNode({integer:!0}),yspread:r.NumberNode({integer:!0}),zspread:r.NumberNode({integer:!0}),tries:r.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:r.ListNode(i("block_state")),blacklist:r.ListNode(i("block_state"))},s={state:i("block_state"),radius:o.UniformInt({min:0,max:4,maxSpread:4}),half_height:r.NumberNode({integer:!0,min:0,max:4}),targets:r.ListNode(i("block_state"))},c={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:r.NumberNode({integer:!0})},l={state:i("block_state"),size:r.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},d={count:o.UniformInt({min:-10,max:128,maxSpread:128})},m=r.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bamboo":{probability:r.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:o.UniformInt({min:0,max:2,maxSpread:1}),height:o.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:o.UniformInt({min:0,max:8,maxSpread:8}),rim_size:o.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:r.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:r.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:r.ListNode(r.ObjectNode({centerX:r.NumberNode({integer:!0}),centerZ:r.NumberNode({integer:!0}),radius:r.NumberNode({integer:!0}),height:r.NumberNode({integer:!0}),guarded:r.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:r.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:r.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:o.UniformInt()},"minecraft:no_surface_ore":l,"minecraft:ore":l,"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:m,feature_true:m},"minecraft:random_selector":{features:r.ListNode(r.ObjectNode({chance:r.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:sea_pickle":d,"minecraft:seagrass":{probability:r.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:r.ListNode(i("block_state")),place_in:r.ListNode(i("block_state")),place_under:r.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:r.ListNode(m)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:r.NumberNode({integer:!0}),hole_count:r.NumberNode({integer:!0}),requires_block_below:r.BooleanNode(),valid_blocks:r.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:r.NumberNode({integer:!0}),ignore_vines:r.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:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:r.NumberNode({integer:!0,min:0,max:32}),height_rand_a:r.NumberNode({integer:!0,min:0,max:24}),height_rand_b:r.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:o.UniformInt({min:0,max:8,maxSpread:8}),offset:o.UniformInt({min:0,max:8,maxSpread:8}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:blob_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:o.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:o.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:o.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:r.ListNode(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:r.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:r.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",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:r.Opt(r.NumberNode({min:0,max:80})),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:two_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:81})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),upper_limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),middle_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:r.ListNode(r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:column_placer":{min_size:r.NumberNode({integer:!0}),extra_size:r.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 r=i(0),o=i(3);t.initNoiseSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("noise_settings",r.Mod(r.ObjectNode({name:r.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:r.NumberNode({integer:!0}),bedrock_floor_position:r.NumberNode({integer:!0}),sea_level:r.NumberNode({integer:!0}),disable_mob_generation:r.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:r.ObjectNode({height:r.NumberNode({integer:!0}),density_factor:r.NumberNode(),density_offset:r.NumberNode(),size_horizontal:r.NumberNode({integer:!0}),size_vertical:r.NumberNode({integer:!0}),simplex_surface_noise:r.BooleanNode(),random_density_offset:r.Opt(r.BooleanNode()),island_noise_override:r.Opt(r.BooleanNode()),amplified:r.Opt(r.BooleanNode()),sampling:r.ObjectNode({xz_scale:r.NumberNode(),y_scale:r.NumberNode(),xz_factor:r.NumberNode(),y_factor:r.NumberNode()}),bottom_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0}),offset:r.NumberNode({integer:!0})}),top_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0}),offset:r.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>o.DefaultNoiseSettings})),e.register("generator_structures",r.ObjectNode({stronghold:r.Opt(r.ObjectNode({distance:r.NumberNode({integer:!0,min:0,max:1023}),spread:r.NumberNode({integer:!0,min:0,max:1023}),count:r.NumberNode({integer:!0,min:1,max:4095})})),structures:r.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),r.Mod(r.ObjectNode({spacing:r.NumberNode({integer:!0,min:0,max:4096}),separation:r.Mod(r.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,r,o)=>(t.pop().push("spacing").get()<=i&&r.add(t,"error.separation_smaller_spacing"),e.validate(t,i,r,o))})),salt:r.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",r.Mod(r.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:r.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 r=i(0);t.initStructureFeatureSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:r.NumberNode({integer:!0})};e.register("configured_structure_feature",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bastion_remnant":o,"minecraft:buried_treasure":{probability:r.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:r.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:r.NumberNode({min:0,max:1}),cluster_probability:r.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":o,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:r.BooleanNode()},"minecraft:village":o}},{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 r=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=r.Reference.bind(void 0,e);e.register("configured_surface_builder",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:r.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 r=i(0);i(13),t.initTemplatePoolSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t),n=r.ChoiceNode([{type:"string",node:o({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",r.Mod(r.ObjectNode({name:o(),fallback:o(),elements:r.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",r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[r.Switch]:[{push:"element_type"}],[r.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:n},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:n},"minecraft:list_pool_element":{elements:r.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:o({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 r=i(0);t.initWorldSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("world_settings",r.Mod(r.ObjectNode({generate_features:r.BooleanNode(),bonus_chest:r.BooleanNode(),seed:r.NumberNode({integer:!0}),dimensions:r.MapNode(o({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 r=i(70),o=i(4),n=i(71),a=i(72),s=i(73),c=i(74),l=i(75),d=i(76),m=i(77),p=i(78),u=i(79),_=i(80),f=i(81),g=i(89);t.initSchemas=function(e,t){o.initCommonSchemas(e,t),r.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initItemModifierSchemas(e,t),l.initLootTableSchemas(e,t),d.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 r=i(0);t.initAdvancementSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t),n=r.ChoiceNode([{type:"object",node:r.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:r.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",r.Mod(r.ObjectNode({display:r.Opt(r.Mod(r.ObjectNode({icon:r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:r.Opt(o()),frame:r.Opt(o({enum:["task","challenge","goal"]})),show_toast:r.Opt(r.BooleanNode()),announce_to_chat:r.Opt(r.BooleanNode()),hidden:r.Opt(r.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:r.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:r.MapNode(o(),i("advancement_criteria")),requirements:r.Opt(r.ListNode(r.ListNode(o()))),rewards:r.Opt(r.ObjectNode({function:r.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:r.Opt(r.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:r.Opt(r.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:r.Opt(r.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",r.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:r.Opt(r.ObjectNode({player:r.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[r.Switch]:["pop",{push:"trigger"}],[r.Case]:{"minecraft:bee_nest_destroyed":{block:r.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:r.Opt(r.NumberNode({integer:!0})),item:r.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:r.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:r.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:r.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:r.Opt(r.ListNode(n))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:r.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")})))},"minecraft:enter_block":{block:r.Opt(o({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:r.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:r.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:r.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:r.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:r.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:r.Opt(r.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:r.Opt(r.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:r.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:r.Opt(r.ListNode(n))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:location":{location:r.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:r.Opt(i("location_predicate")),exited:r.Opt(i("location_predicate"))},"minecraft:placed_block":{block:r.Opt(o({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:r.Opt(i("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:r.Opt(i("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:r.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:r.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:r.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:r.Opt(i("entity_predicate")),item:r.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:r.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:r.Opt(i("entity_predicate")),item:r.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 r=i(0),o=i(4);t.initConditionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("predicate",r.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",r.Mod(r.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[r.Switch]:[{push:"condition"}],[r.Case]:o.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 r=i(0),o=i(4);t.initDimensionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=e=>r.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",r.Mod(r.ObjectNode({type:o.DimensionTypePresets(i("dimension_type")),generator:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:noise":{biome_source:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:r.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(r.Mod(r.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:r.Opt(r.NumberNode({integer:!0,min:0,max:62})),biomes:r.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:r.Opt(r.BooleanNode()),legacy_biome_init_layer:r.Opt(r.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:o.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:r.ObjectNode({biome:r.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:r.Opt(r.BooleanNode()),features:r.Opt(r.BooleanNode()),layers:r.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",r.Mod(r.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:r.ObjectNode({altitude:r.NumberNode({min:-1,max:1}),temperature:r.NumberNode({min:-1,max:1}),humidity:r.NumberNode({min:-1,max:1}),weirdness:r.NumberNode({min:-1,max:1}),offset:r.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",r.Mod(r.ObjectNode({firstOctave:r.NumberNode({integer:!0}),amplitudes:r.ListNode(r.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 r=i(0),o=i(4);t.initDimensionTypeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("dimension_type",r.Mod(r.ObjectNode({name:r.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:r.BooleanNode(),natural:r.BooleanNode(),piglin_safe:r.BooleanNode(),respawn_anchor_works:r.BooleanNode(),bed_works:r.BooleanNode(),has_raids:r.BooleanNode(),has_skylight:r.BooleanNode(),has_ceiling:r.BooleanNode(),coordinate_scale:r.NumberNode({min:1e-5,max:3e7}),ambient_light:r.NumberNode(),fixed_time:r.Opt(r.NumberNode({integer:!0})),logical_height:r.NumberNode({integer:!0,min:0,max:4096}),effects:r.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:r.NumberNode({integer:!0,min:-2048,max:2047}),height:r.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),e=>({default:()=>o.DefaultDimensionType,validate:(t,i,r,o)=>((null==(i=e.validate(t,i,r,o))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&r.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&r.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&r.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&r.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 r=i(0),o=i(4);t.initItemModifierSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("item_modifier",r.ObjectOrList(i("function"),{choiceContext:"function"}));const a={conditions:r.Opt(r.ListNode(i("condition")))};e.register("function",r.Mod(r.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[r.Switch]:[{push:"function"}],[r.Case]:o.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 r=i(0),o=i(21),n=i(4);t.initLootTableSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={conditions:r.Opt(r.ListNode(i("loot_condition")))},c={functions:r.Opt(r.ListNode(i("loot_function"))),...s};function l(e,i,n){const a=[],s=r=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>r.includes(e))});for(const[e,{allows:t,requires:i}]of o.LootTableTypes){const o=[...t,...i];a.push({match:t=>t.getModel().get(new r.Path(["type"]))===e,node:n(s(o))})}return a.push({match:e=>!0,node:n(i)}),r.SwitchNode(a)}const d=l(o.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=l(o.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=l(o.LootEntitySources,"entity_source",e=>a({enum:e})),u=l(o.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",r.Mod(r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:r.Opt(r.ListNode(r.Mod(r.ObjectNode({rolls:i("number_provider"),bonus_rolls:r.Opt(i("number_provider")),entries:r.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:r.Opt(r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:r.Opt(r.Mod(r.NumberNode({integer:!0,min:1}),_)),quality:r.Opt(r.Mod(r.NumberNode({integer:!0}),_)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":{children:r.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:r.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:r.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:r.Opt(r.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",r.Mod(r.ObjectNode({function:m,[r.Switch]:[{push:"function"}],[r.Case]:n.FunctionCases(s,u,p)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",r.Mod(r.ObjectNode({condition:d,[r.Switch]:[{push:"condition"}],[r.Case]:n.ConditionCases(p)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",r.Mod(r.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:i("number_provider"),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:r.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 r=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",r.Mod(r.ObjectNode({pack:r.Mod(r.ObjectNode({pack_format:r.Mod(r.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:r.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 r=i(0);t.initPredicatesSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t),n=r.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:r.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:r.ObjectNode({min:r.Opt(r.NumberNode({integer:!0})),max:r.Opt(r.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:r.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:r.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:r.Opt(r.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",r.ObjectNode({enchantment:r.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",r.ObjectNode({block:r.Opt(o({validator:"resource",params:{pool:"block"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:r.Opt(r.MapNode(o(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",r.ObjectNode({fluid:r.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:r.Opt(r.MapNode(o(),n))},{context:"fluid"})),e.register("location_predicate",r.ObjectNode({position:r.Opt(r.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:r.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:r.Opt(o({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:r.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:r.Opt(r.ObjectNode({light:i("int_bounds")})),smokey:r.Opt(r.BooleanNode()),block:r.Opt(i("block_predicate")),fluid:r.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",r.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:i("int_bounds"),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",r.ObjectNode({gamemode:r.Opt(o({enum:"gamemode"})),level:i("int_bounds"),advancements:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),r.ChoiceNode([{type:"boolean",node:r.BooleanNode(),change:e=>!0},{type:"object",node:r.MapNode(o(),r.BooleanNode())}]))),recipes:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),r.BooleanNode())),stats:r.Opt(r.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",r.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:r.Opt(r.BooleanNode()),visible:r.Opt(r.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",r.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",r.ObjectNode({type:r.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:r.Opt(o({validator:"team"})),location:r.Opt(i("location_predicate")),distance:r.Opt(i("distance_predicate")),flags:r.Opt(r.ObjectNode({is_on_fire:r.Opt(r.BooleanNode()),is_sneaking:r.Opt(r.BooleanNode()),is_sprinting:r.Opt(r.BooleanNode()),is_swimming:r.Opt(r.BooleanNode()),is_baby:r.Opt(r.BooleanNode())})),equipment:r.Opt(r.MapNode(o({enum:"slot"}),i("item_predicate"))),vehicle:r.Opt(i("entity_predicate")),targeted_entity:r.Opt(i("entity_predicate")),player:r.Opt(i("player_predicate")),fishing_hook:r.Opt(r.ObjectNode({in_open_water:r.Opt(r.BooleanNode())})),effects:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",r.ObjectNode({is_explosion:r.Opt(r.BooleanNode()),is_fire:r.Opt(r.BooleanNode()),is_magic:r.Opt(r.BooleanNode()),is_projectile:r.Opt(r.BooleanNode()),is_lightning:r.Opt(r.BooleanNode()),bypasses_armor:r.Opt(r.BooleanNode()),bypasses_invulnerability:r.Opt(r.BooleanNode()),bypasses_magic:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),direct_entity:r.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",r.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),type:r.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const r=i(0);t.initRecipeSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("recipe",r.Mod(r.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:crafting_shaped":{group:r.Opt(o({enum:"recipe_group",additional:!0})),pattern:r.ListNode(o()),key:r.MapNode(o(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:r.Opt(o()),ingredients:r.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:r.NumberNode({integer:!0})},"minecraft:smithing":{group:r.Opt(o()),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",r.Mod(r.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:r.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",r.Mod(r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",r.Mod(r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.Mod(r.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 r=i(0);t.initTagsSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=e=>r.Mod(r.ObjectNode({replace:r.Opt(r.BooleanNode()),values:r.ListNode(r.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:r.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:r.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("game_event_tag",o("game_event")),e.register("item_tag",o("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const r=i(0);t.initTextComponentSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.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",r.Mod(r.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:o(),change:n},{type:"number",node:r.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:r.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:r.Opt(o()),font:r.Opt(o()),bold:r.Opt(r.BooleanNode()),italic:r.Opt(r.BooleanNode()),underlined:r.Opt(r.BooleanNode()),strikethrough:r.Opt(r.BooleanNode()),obfuscated:r.Opt(r.BooleanNode()),insertion:r.Opt(o()),clickEvent:r.Opt(r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[r.Switch]:[{push:"action"}],[r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:r.Opt(r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[r.Switch]:[{push:"action"}],[r.Case]:{show_text:{value:r.Opt(i("text_component")),contents:r.Opt(i("text_component"))},show_item:{value:r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:r.Opt(r.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.NumberNode({integer:!0})),tag:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:r.Opt(r.ObjectNode({name:r.Opt(o()),type:r.Opt(o()),id:r.Opt(o())})),contents:r.Opt(r.Mod(r.ObjectNode({name:r.Opt(i("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:r.Opt(i("text_component_list"))};e.register("text_component_object",r.Mod(r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:r.ObjectNode({text:o(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:r.ObjectNode({translate:o(),with:r.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:r.ObjectNode({score:r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:r.Opt(o())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:r.ObjectNode({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:r.Opt(i("text_component")),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:r.ObjectNode({keybind:o({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:r.ObjectNode({nbt:o({validator:"nbt_path"}),block:r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:r.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:r.Opt(r.BooleanNode()),separator:r.Opt(i("text_component")),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",r.Mod(r.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const r=i(82),o=i(83),n=i(22),a=i(84),s=i(85),c=i(9),l=i(86),d=i(87),m=i(88);t.initWorldgenSchemas=function(e,t){c.initProcessorListSchemas(e,t),r.initBiomeSchemas(e,t),o.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),l.initStructureFeatureSchemas(e,t),d.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const r=i(0);t.initBiomeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("biome",r.Mod(r.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:r.NumberNode(),scale:r.NumberNode(),temperature:r.NumberNode(),downfall:r.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:r.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:r.Opt(r.BooleanNode()),creature_spawn_probability:r.Opt(r.NumberNode({min:0,max:1})),effects:r.ObjectNode({sky_color:r.NumberNode({color:!0}),fog_color:r.NumberNode({color:!0}),water_color:r.NumberNode({color:!0}),water_fog_color:r.NumberNode({color:!0}),grass_color:r.Opt(r.NumberNode({color:!0})),foliage_color:r.Opt(r.NumberNode({color:!0})),grass_color_modifier:r.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:r.Opt(i()),mood_sound:r.Opt(r.ObjectNode({sound:i(),tick_delay:r.NumberNode({integer:!0}),block_search_extent:r.NumberNode({integer:!0}),offset:r.NumberNode()})),additions_sound:r.Opt(r.ObjectNode({sound:i(),tick_chance:r.NumberNode({min:0,max:1})})),music:r.Opt(r.ObjectNode({sound:i(),min_delay:r.NumberNode({integer:!0,min:0}),max_delay:r.NumberNode({integer:!0,min:0}),replace_current_music:r.BooleanNode()})),particle:r.Opt(r.ObjectNode({options:r.ObjectNode({type:i()}),probability:r.NumberNode({min:0,max:1})}))}),starts:r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:r.MapNode(i({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),r.Mod(r.ListNode(r.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:r.NumberNode({integer:!0}),minCount:r.NumberNode({integer:!0}),maxCount:r.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:r.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),r.Mod(r.ObjectNode({energy_budget:r.NumberNode(),charge:r.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:r.MapNode(i({enum:["air","liquid"]}),r.Mod(r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:r.ListNode(r.Mod(r.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 r=i(0),o=i(4);t.initCarverSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={vertical_rotation:o.FloatProvider(),shape:r.ObjectNode({distance_factor:o.FloatProvider(),thickness:o.FloatProvider(),width_smoothness:r.NumberNode({integer:!0,min:0}),horizontal_radius_factor:o.FloatProvider(),vertical_radius_default_factor:r.NumberNode(),vertical_radius_center_factor:r.NumberNode()})},s={horizontal_radius_multiplier:o.FloatProvider(),vertical_radius_multiplier:o.FloatProvider(),floor_level:o.FloatProvider({min:-1,max:1})};e.register("configured_carver",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:r.ObjectNode({probability:r.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:o.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:r.Opt(r.ObjectNode({debug_mode:r.Opt(r.BooleanNode()),air_state:r.Opt(i("block_state"))})),[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:canyon":a,"minecraft:cave":s,"minecraft:nether_cave":s}})},{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 r=i(0),o=i(4);i(22),i(9);const n=i(9);t.initFeatureSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={can_replace:r.Opt(r.BooleanNode()),project:r.Opt(r.BooleanNode()),need_water:r.Opt(r.BooleanNode()),xspread:r.Opt(r.NumberNode({integer:!0,min:0})),yspread:r.Opt(r.NumberNode({integer:!0,min:0})),zspread:r.Opt(r.NumberNode({integer:!0,min:0})),tries:r.Opt(r.NumberNode({integer:!0,min:1})),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:r.ListNode(i("block_state")),blacklist:r.ListNode(i("block_state"))},c={state:i("block_state"),radius:o.IntProvider({min:0,max:8}),half_height:r.NumberNode({integer:!0,min:0,max:4}),targets:r.ListNode(i("block_state"))},l={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:r.NumberNode({integer:!0})},d={size:r.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:r.NumberNode({min:0,max:1}),targets:r.ListNode(r.ObjectNode({target:i("rule_test"),state:i("block_state")}))},m=r.ChoiceNode([{type:"string",node:a({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),p={surface:a({enum:["floor","ceiling"]}),depth:o.IntProvider({min:1,max:128}),vertical_range:r.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:r.NumberNode({min:0,max:1}),extra_edge_column_chance:r.NumberNode({min:0,max:1}),vegetation_chance:r.NumberNode({min:0,max:1}),xz_radius:o.IntProvider(),replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:m};e.register("configured_feature",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bamboo":{probability:r.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:o.IntProvider({min:0,max:3}),height:o.IntProvider({min:1,max:10})},"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:o.IntProvider({min:0,max:16}),rim_size:o.IntProvider({min:0,max:16})},"minecraft:disk":c,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:r.NumberNode({integer:!0,min:1,max:512}),height:o.IntProvider({min:0,max:128}),radius:o.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:r.NumberNode({integer:!0,min:0,max:64}),height_deviation:r.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:o.IntProvider({min:0,max:128}),density:o.FloatProvider({min:0,max:2}),wetness:o.FloatProvider({min:0,max:2}),wetness_mean:r.NumberNode({min:0,max:1}),wetness_deviation:r.NumberNode({min:0,max:1}),chance_of_dripstone_column_at_max_distance_from_center:r.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:r.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:r.NumberNode({integer:!0,min:1,max:64})},"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:r.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:r.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:r.ListNode(r.ObjectNode({centerX:r.NumberNode({integer:!0}),centerZ:r.NumberNode({integer:!0}),radius:r.NumberNode({integer:!0}),height:r.NumberNode({integer:!0}),guarded:r.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:r.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":s,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:r.NumberNode({integer:!0,min:0,max:7}),fossil_structures:r.ListNode(a({validator:"resource",params:{pool:"$structure"}})),overlay_structures:r.ListNode(a({validator:"resource",params:{pool:"$structure"}})),fossil_processors:n.Processors,overlay_processors:n.Processors},"minecraft:geode":{blocks:r.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:r.ListNode(i("block_state"))}),layers:r.ObjectNode({filling:r.Opt(r.NumberNode({min:.01,max:50})),inner_layer:r.Opt(r.NumberNode({min:.01,max:50})),middle_layer:r.Opt(r.NumberNode({min:.01,max:50})),outer_layer:r.Opt(r.NumberNode({min:.01,max:50}))}),crack:r.ObjectNode({generate_crack_chance:r.Opt(r.NumberNode({min:0,max:1})),base_crack_size:r.Opt(r.NumberNode({min:0,max:5})),crack_point_offset:r.Opt(r.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:r.Opt(r.NumberNode({min:0,max:1})),use_potential_placements_chance:r.Opt(r.NumberNode({min:0,max:1})),use_alternate_layer0_chance:r.Opt(r.NumberNode({min:0,max:1})),placements_require_layer0_alternate:r.Opt(r.BooleanNode()),outer_wall_distance:r.Opt(o.IntProvider({min:1,max:20})),distribution_points:r.Opt(o.IntProvider({min:1,max:20})),point_offset:r.Opt(o.IntProvider({min:0,max:10})),min_gen_offset:r.Opt(r.NumberNode({integer:!0})),max_gen_offset:r.Opt(r.NumberNode({integer:!0})),invalid_blocks_threshold:r.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:r.Opt(r.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:r.Opt(r.NumberNode({min:0,max:1})),can_place_on_floor:r.Opt(r.BooleanNode()),can_place_on_ceiling:r.Opt(r.BooleanNode()),can_place_on_wall:r.Opt(r.BooleanNode()),can_be_placed_on:r.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:a({enum:["up","down","north","east","south","west"]}),allow_water:r.BooleanNode(),height_distribution:r.ListNode(r.ObjectNode({weight:r.NumberNode({integer:!0}),data:o.IntProvider()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":l,"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:r.BooleanNode()},"minecraft:huge_red_mushroom":l,"minecraft:ice_patch":c,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:r.Opt(r.NumberNode({integer:!0,min:1,max:512})),column_radius:o.IntProvider({min:0,max:60}),height_scale:o.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:r.NumberNode({min:0,max:1}),stalactite_bluntness:o.FloatProvider({min:.1,max:10}),stalagmite_bluntness:o.FloatProvider({min:.1,max:10}),wind_speed:o.FloatProvider({min:0,max:2}),min_radius_for_wind:r.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:r.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:o.IntProvider()},"minecraft:ore":d,"minecraft:random_patch":s,"minecraft:random_boolean_selector":{feature_false:m,feature_true:m},"minecraft:random_selector":{features:r.ListNode(r.ObjectNode({chance:r.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:root_system":{required_vertical_space_for_tree:r.NumberNode({integer:!0,min:1,max:64}),root_radius:r.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:r.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:r.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:r.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:r.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:r.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:m},"minecraft:scattered_ore":d,"minecraft:sea_pickle":{count:o.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:r.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:r.ListNode(i("block_state")),place_in:r.ListNode(i("block_state")),place_under:r.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:r.ListNode(m)},"minecraft:small_dripstone":{max_placements:r.NumberNode({integer:!0,min:0,max:100}),empty_space_search_radius:r.NumberNode({integer:!0,min:0,max:20}),max_offset_from_origin:r.NumberNode({integer:!0,min:0,max:20}),chance_of_taller_dripstone:r.Opt(r.NumberNode({integer:!0,min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:r.NumberNode({integer:!0}),hole_count:r.NumberNode({integer:!0}),requires_block_below:r.BooleanNode(),valid_blocks:r.ListNode(a({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:r.Opt(r.BooleanNode()),force_dirt:r.Opt(r.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:r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:r.NumberNode({integer:!0,min:0,max:32}),height_rand_a:r.NumberNode({integer:!0,min:0,max:24}),height_rand_b:r.NumberNode({integer:!0,min:0,max:24}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:bending_trunk_placer":{bend_length:o.IntProvider({min:1,max:64}),min_height_for_leaves:r.Opt(r.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:o.IntProvider({min:0,max:16}),offset:o.IntProvider({min:0,max:16}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:blob_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:o.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:o.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:o.IntProvider({min:1,max:512}),leaf_placement_attempts:r.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:o.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:r.ListNode(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:r.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:r.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:r.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:r.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:r.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:r.Opt(r.NumberNode({min:0,max:80})),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:two_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:81})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),upper_limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),middle_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:randomized_int_state_provider":{property:a(),values:o.IntProvider(),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:r.ListNode(r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:column_placer":{size:o.IntProvider({min: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 r=i(0),o=i(4);t.initNoiseSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("noise_settings",r.Mod(r.ObjectNode({name:r.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:r.NumberNode({integer:!0}),bedrock_floor_position:r.NumberNode({integer:!0}),sea_level:r.NumberNode({integer:!0}),disable_mob_generation:r.BooleanNode(),noise_caves_enabled:r.BooleanNode(),aquifers_enabled:r.BooleanNode(),deepslate_enabled:r.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:r.ObjectNode({min_y:r.NumberNode({integer:!0,min:-2048,max:2047}),height:r.NumberNode({integer:!0,min:0,max:4096}),density_factor:r.NumberNode(),density_offset:r.NumberNode(),size_horizontal:r.NumberNode({integer:!0}),size_vertical:r.NumberNode({integer:!0}),simplex_surface_noise:r.BooleanNode(),random_density_offset:r.Opt(r.BooleanNode()),island_noise_override:r.Opt(r.BooleanNode()),amplified:r.Opt(r.BooleanNode()),sampling:r.ObjectNode({xz_scale:r.NumberNode(),y_scale:r.NumberNode(),xz_factor:r.NumberNode(),y_factor:r.NumberNode()}),bottom_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0,min:0}),offset:r.NumberNode({integer:!0})}),top_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0,min:0}),offset:r.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),e=>({default:()=>o.DefaultNoiseSettings,validate:(t,i,r,o)=>{var n,a,s,c;return(null===(n=null==(i=e.validate(t,i,r,o))?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&&r.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&&r.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&&r.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}}))),e.register("generator_structures",r.ObjectNode({stronghold:r.Opt(r.ObjectNode({distance:r.NumberNode({integer:!0,min:0,max:1023}),spread:r.NumberNode({integer:!0,min:0,max:1023}),count:r.NumberNode({integer:!0,min:1,max:4095})})),structures:r.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),r.Mod(r.ObjectNode({spacing:r.NumberNode({integer:!0,min:0,max:4096}),separation:r.Mod(r.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,r,o)=>(t.pop().push("spacing").get()<=i&&r.add(t,"error.separation_smaller_spacing"),e.validate(t,i,r,o))})),salt:r.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",r.Mod(r.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:r.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 r=i(0);t.initStructureFeatureSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:r.NumberNode({integer:!0})};e.register("configured_structure_feature",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bastion_remnant":o,"minecraft:buried_treasure":{probability:r.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:r.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:r.NumberNode({min:0,max:1}),cluster_probability:r.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":o,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:r.BooleanNode()},"minecraft:village":o}},{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 r=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=r.Reference.bind(void 0,e);e.register("configured_surface_builder",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:r.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 r=i(0);i(9);const o=i(9);t.initTemplatePoolSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("template_pool",r.Mod(r.ObjectNode({name:n(),fallback:n(),elements:r.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",r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[r.Switch]:[{push:"element_type"}],[r.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:o.Processors},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:o.Processors},"minecraft:list_pool_element":{elements:r.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:o.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 r=i(0);t.initWorldSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("world_settings",r.Mod(r.ObjectNode({generate_features:r.BooleanNode(),bonus_chest:r.BooleanNode(),seed:r.NumberNode({integer:!0}),dimensions:r.MapNode(o({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 r;!function(e,o,n){function a(e){var t,i=this,r=(t=4022871197,function(e){e=String(e);for(var i=0;i>>0,t=(r*=t)>>>0,t+=4294967296*(r-=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=r(" "),i.s1=r(" "),i.s2=r(" "),i.s0-=r(e),i.s0<0&&(i.s0+=1),i.s1-=r(e),i.s1<0&&(i.s1+=1),i.s2-=r(e),i.s2<0&&(i.s2+=1),r=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),r=t&&t.state,o=i.next;return o.int32=function(){return 4294967296*i.next()|0},o.double=function(){return o()+11102230246251565e-32*(2097152*o()|0)},o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.alea=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,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 r=0;r>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xor128=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,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 r=0;r>>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),r=t&&t.state,o=function(){return(i.next()>>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xorwow=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,n){function a(e){var t=this;t.next=function(){var e,i,r=t.x,o=t.i;return e=r[o],i=(e^=e>>>7)^e<<24,i^=(e=r[o+1&7])^e>>>10,i^=(e=r[o+3&7])^e>>>3,i^=(e=r[o+4&7])^e<<7,e=r[o+7&7],i^=(e^=e<<13)^e<<9,r[o]=i,t.i=o+1&7,i},function(e,t){var i,r=[];if(t===(0|t))r[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),r=t&&t.state,o=function(){return(i.next()>>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&(r.x&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xorshift7=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,n){function a(e){var t=this;t.next=function(){var e,i,r=t.w,o=t.X,n=t.i;return t.w=r=r+1640531527|0,i=o[n+34&127],e=o[n=n+1&127],i^=i<<13,e^=e<<17,i^=i>>>15,e^=e>>>12,i=o[n]=i^e,t.i=n,i+(r^r>>>16)|0},function(e,t){var i,r,o,n,a,s=[],c=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,c=Math.max(c,t.length)),o=0,n=-32;n>>15,r^=r<<4,r^=r>>>13,n>=0&&(a=a+1640531527|0,o=0==(i=s[127&n]^=r+a)?o+1:0);for(o>=128&&(s[127&(t&&t.length||0)]=-1),o=127,n=512;n>0;--n)r=s[o+34&127],i=s[o=o+1&127],r^=r<<13,i^=i<<17,r^=r>>>15,i^=i>>>12,s[o]=r^i;e.w=a,e.X=s,e.i=o}(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),r=t&&t.state,o=function(){return(i.next()>>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&(r.X&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xor4096=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,n){function a(e){var t=this,i="";t.next=function(){var e=t.b,i=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^i,i=i-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^i,t.c=i=i-r|0,t.d=r<<16^i>>>16^o,t.a=o-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 r=0;r>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.tychei=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){var r;!function(o,n,a){var s,c=a.pow(256,6),l=a.pow(2,52),d=2*l;function m(e,t,i){var r=[],m=_(function e(t,i){var r,o=[],n=typeof t;if(i&&"object"==n)for(r in t)try{o.push(e(t[r],i-1))}catch(e){}return o.length?o:"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),(o.crypto||o.msCrypto).getRandomValues(e)),f(e)}catch(e){var t=o.navigator,i=t&&t.plugins;return[+new Date,o,i,o.screen,f(n)]}}():e,3),r),g=new p(r),h=function(){for(var e=g.g(6),t=c,i=0;e=d;)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,r){return r&&(r.S&&u(r,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,r=this,o=0,n=r.i=r.j=0,a=r.S=[];for(i||(e=[i++]);o<256;)a[o]=o++;for(o=0;o<256;o++)a[o]=a[n=255&n+e[o%i]+(t=a[o])],a[n]=t;(r.g=function(e){for(var t,i=0,o=r.i,n=r.j,a=r.S;e--;)t=a[o=255&o+1],i=256*i+a[255&(a[o]=a[n=255&n+t])+(a[n]=t)];return r.i=o,r.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,r=e+"",o=0;o("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 l(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function d(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,r,o,n){return u(t,u(e,i,r),u(e,o,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,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.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:"88cfe4c348afe83336669990e8cb3b7f927ab991",url:y},{id:"vanilla_datapack_summary",hash:"8a0a444a01d20589b006415d25dae03a264b084d",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 r of yield t.keys())e(r.url)&&i.push(t.delete(r));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 r=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(r,e=>e.values))}catch(e){console.warn(`Error occurred while registry ${i.id}:`,e)}}))));{const r=`${y}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=yield S(r,e=>{const t={};return Object.keys(e).forEach(i=>{t[i.slice(10)]=Object.keys(e[i].entries)}),t});i.forEach(i=>{var r;t.register(i.id,null!==(r=e[i.id])&&void 0!==r?r:[])})}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 r=`${N}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=yield S(r);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"),r=yield i.match(e);if(r&&r.ok)return yield r.json();const o=yield fetch(e),n=t(yield o.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),r=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=r}}noise(e,t,i,r,o){const n=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(n),l=Math.floor(a),d=Math.floor(s),m=n-c,p=a-l,u=s-d,_=f(m),g=f(p),h=f(u);let b=0;return 0!==r&&(b=Math.floor(Math.min(o,p)/r)*r),this.sampleAndLerp(c,l,d,m,p-b,u,_,g,h)}gradDot(e,t,i,r){const o=L.GRADIENT[15&e];return o[0]*t+o[1]*i+o[2]*r}P(e){return 255&this.p[255&e]}sampleAndLerp(e,t,i,r,o,n,a,s,c){const l=this.P(e)+t,d=this.P(l)+i,m=this.P(l+1)+i,p=this.P(e+1)+t,f=this.P(p)+i,g=this.P(p+1)+i;return function(e,t,i,r,o,n,a,s,c,l,d){return u(i,_(e,t,r,o,n,a),_(e,t,s,c,l,d))}(a,s,c,this.gradDot(this.P(d),r,o,n),this.gradDot(this.P(f),r-1,o,n),this.gradDot(this.P(m),r,o-1,n),this.gradDot(this.P(g),r-1,o-1,n),this.gradDot(this.P(d+1),r,o,n-1),this.gradDot(this.P(f+1),r-1,o,n-1),this.gradDot(this.P(m+1),r,o-1,n-1),this.gradDot(this.P(g+1),r-1,o-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 P{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 r.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 $(this.seed+t,i.firstOctave,i.amplitudes)});const r={};this.state.biomes.forEach(e=>{r[e.biome]=this.getBiomeColor(e.biome)});const o=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,l=(a-this.offsetY)*n-50*n,d=this.closestBiome(c,l),m=null!==(i=r[d])&&void 0!==i?i:[128,128,128];o[s]=m[0],o[s+1]=m[1],o[s+2]=m[2],o[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 r=1/0,o="";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,r,o;return null!==(o=I(null!==(r=null===(i=R[ue.language.get()])||void 0===i?void 0:i[e])&&void 0!==r?r:R.en[e],t))&&void 0!==o?o:e}function q(e,t,i=5,r=1){return[ue.language.get(),"en"].reduce((o,n)=>{var a;if(void 0!==o)return o;const s=e.slice(-i);for(;s.length>=r;){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 r=e.getAttribute("data-id");null===(i=(t=this.registry)[r])||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 r;i.target.matches(".btn.input")||(null===(r=i.target.closest(".btn"))||void 0===r?void 0:r.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=P.fromRange(c(),-15,0),this.maxLimitPerlinNoise=P.fromRange(c(),-15,0),this.mainPerlinNoise=P.fromRange(c(),-7,0),this.depthNoise=P.fromRange(c(),-15,0)}reset(e,t,i,r,o){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(o).fill(null),this.xOffset=r}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(e/this.chunkWidth),r=Math.floor(e%this.chunkWidth)/this.chunkWidth,o=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,r,o[e],o[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),r=684.412*this.settings.sampling.xz_scale,o=684.412*this.settings.sampling.y_scale,n=r/this.settings.sampling.xz_factor,a=o/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,r,o,n,a);const l=((1-2*t/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;c+=l*(l>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,r,o,n,a){let s=0,c=0,l=0,d=1;for(let m=0;m<16;m+=1){const p=P.wrap(e*r*d),u=P.wrap(t*o*d),_=P.wrap(i*r*d),f=o*d,g=this.minLimitPerlinNoise.getOctaveNoise(m);g&&(s+=g.noise(p,u,_,f,t*f)/d);const h=this.maxLimitPerlinNoise.getOctaveNoise(m);if(h&&(c+=h.noise(p,u,_,f,t*f)/d),m<8){const r=this.mainPerlinNoise.getOctaveNoise(m);r&&(l+=r.noise(P.wrap(e*n*d),P.wrap(t*a*d),P.wrap(i*n*d),a*d,t*a*d)/d)}d/=2}return p(s/512,c/512,(l/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],H=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];const U=(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=>U("Generator","set-version",e),G=e=>U("Preview","set-preview",e),X=()=>U("Generator","reset"),K=(e=!1)=>U("Generator","undo",e?"Hotkey":"Menu"),Z=(e=!1)=>U("Generator","redo",e?"Hotkey":"Menu"),Q=()=>U("JsonOutput","copy"),ee=()=>U("JsonOutput","download"),te=()=>U("JsonOutput","share"),ie=()=>U("Preview","hide-preview"),re=e=>U("Generator","toggle-minimize",e?"minimized":"unminimized"),oe=e=>U("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 le=function(e,t,i,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const de={1.15:o,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 r.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,r;for(const o of null!==(i=null==e?void 0:e.features)&&void 0!==i?i:[])if(this.random()<(null!==(r=null==o?void 0:o.chance)&&void 0!==r?r:0))return this.getPlacements(t,o.feature);return this.getPlacements(t,null==e?void 0:e.default)},simple_random_selector:(e,t)=>{var i,r,o;const n=null===(i=null==e?void 0:e.features)||void 0===i?void 0:i[this.nextInt(null!==(o=null===(r=null==e?void 0:e.features)||void 0===r?void 0:r.length)&&void 0!==o?o: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,r,o;let n=null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1;return null!==(r=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),r=this.biomeInfoNoise.getValue(t[0]/i,0,t[2]/i),o=Math.max(0,Math.ceil((r+e.noise_offset)*e.noise_to_count_ratio));return new Array(o).fill(t)},dark_oak_tree:(e,t)=>[...new Array(16)].map((e,i)=>{const r=4*Math.floor(i/4)+1+this.nextInt(3)+t[0];return[r,Math.max(63,V[m(0,63,r)]),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,r,o,n;const a=this.nextInt(null!==(i=null==e?void 0:e.spread)&&void 0!==i?i:0)+this.nextInt(null!==(r=null==e?void 0:e.spread)&&void 0!==r?r:0)-(null!==(o=e.spread)&&void 0!==o?o: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,r;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!==(r=null==e?void 0:e.chance)&&void 0!==r?r:1)/8)){return[[this.nextInt(16)+t[0],i,this.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t)=>{var i,r,o;const n=this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(r=null==e?void 0:e.top_offset)&&void 0!==r?r:0))+(null!==(o=null==e?void 0:e.bottom_offset)&&void 0!==o?o:0);return this.decorateY(t,n)},range_biased:(e,t)=>{var i,r,o;const n=this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(r=null==e?void 0:e.top_offset)&&void 0!==r?r:0))+(null!==(o=null==e?void 0:e.bottom_offset)&&void 0!==o?o:0));return this.decorateY(t,n)},range_very_biased:(e,t)=>{var i,r,o,n;const a=this.nextInt(this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(r=null==e?void 0:e.top_offset)&&void 0!==r?r:0))+(null!==(o=null==e?void 0:e.bottom_offset)&&void 0!==o?o: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 P(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 r.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 r=[];for(let e=0;ee.pos.every((e,t)=>e>=0&&em(50,205,e)),r)}for(let e=0;ee.schema).forEach(e=>pe[e.id]=new r.DataModel(Object(r.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=>le(void 0,void 0,void 0,(function*(){ue.schemasLoaded.set(!1),yield function(e){return le(this,void 0,void 0,(function*(){ue.blockStateRegistry={};const t=de[e].getCollections();ue.collections.set(t),yield O(t,e);const i=de[e].getSchemas(t);b.models.filter(e=>e.schema).filter(e=>fe(ue.version.get(),e.minVersion)).forEach(e=>{const t=pe[e.id],r=i.get(e.schema);r&&(t.schema=r,"{}"===JSON.stringify(t.data)&&(t.reset(r.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 r=b.versions.findIndex(t=>t.id===e),o=t?b.versions.findIndex(e=>e.id===t):0,n=i?b.versions.findIndex(e=>e.id===i):b.versions.length-1;return o<=r&&r<=n}ue.language.watchRun(e=>le(void 0,void 0,void 0,(function*(){ue.localesLoaded.set(!1),yield function(e){return le(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,r)=>{const o=()=>{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=o(),"toggle")})}">${o()}
`},he=(e,t,i="/")=>{const r=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((r,o)=>{null===r&&"preview"===ue.mobilePanel.get()&&ue.mobilePanel.set("tree"),null!==r&&null!==o||e.mount(t,i(),!1)})});return`
\n
\n ${M.three_bars}\n

${t}

\n
\n \n
`};const be=(e,t,i,r)=>`\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 r=ue.settings.fields;return r.map((o,n)=>{const a=e.register(a=>{var s;a.value=null!==(s=o.path)&&void 0!==s?s:"",a.addEventListener("change",()=>{r[n]=Object.assign(Object.assign({},o),{path:a.value}),ue.settings.save(),e.mount(t,i(),!1)})}),s=e.register(a=>{var s;a.value=null!==(s=o.name)&&void 0!==s?s:"",a.addEventListener("change",()=>{r[n]=Object.assign(Object.assign({},o),{name:a.value}),ue.settings.save(),e.mount(t,i(),!1)})});return`
  • \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n ${o.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 r=e[t];return void 0!==r?r:i},ze=function(e,t,i,r){if(t){if("end"===r)return 0;if("center"===r)return e/2}else if(i){if("start"===r)return 0;if("center"===r)return e/2}return e},Le=function(e,t){var i=ke.createElement("div");return i.className="gutter gutter-"+t,i},Pe=function(e,t,i){var r={};return Se(t)?r[e]=t:r[e]=je+"("+t+"% - "+i+"px)",r},$e=function(e,t){var i;return(i={})[e]=t+"px",i},Be=function(e,t){if(void 0===t&&(t={}),Oe)return{};var i,r,o,n,a,s,c=e;Array.from&&(c=Array.from(c));var l=Me(c[0]).parentNode,d=getComputedStyle?getComputedStyle(l):null,m=d?d.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",Pe),k=Ce(t,"gutterStyle",$e);function x(e,t,r,o){var n=O(i,t,r,o);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][r]:e[r]}function M(e){var t=s[this.a],i=s[this.b],r=t.size+i.size;t.size=e/this.size*r,i.size=r-e/this.size*r,x(t.element,t.size,this._b,t.i),x(i.element,i.size,this._c,i.i)}function C(e){var i,r=s[this.a],o=s[this.b];this.dragging&&(i=S(e)-this.start+(this._b-this.dragOffset),v>1&&(i=Math.round(i/v)*v),i<=r.minSize+b+this._b?i=r.minSize+this._b:i>=this.size-(o.minSize+b+this._c)&&(i=this.size-(o.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,r=e.getBoundingClientRect(),a=t.getBoundingClientRect();this.size=r[i]+a[i]+this._b+this._c,this.start=r[o],this.end=r[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)}(l);if(null===t)return e;if(_.reduce((function(e,t){return e+t}),0)>t)return e;var i=0,r=[],o=e.map((function(o,n){var a=t*o/100,s=ze(g,0===n,n===e.length-1,h),c=_[n]+s;return a0&&r[o]-i>0){var a=Math.min(i,r[o]-i);i-=a,n=e-a}return n/t*100}))}function P(){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 $(e){if(!("button"in e)||0===e.button){var i=s[this.a].element,r=s[this.b].element;this.dragging||Ce(t,"onDragStart",xe)(j()),e.preventDefault(),this.dragging=!0,this.move=C.bind(this),this.stop=P.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),r.addEventListener("selectstart",xe),r.addEventListener("dragstart",xe),i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.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",r="clientX",o="left",n="right",a="clientWidth"):"vertical"===y&&(i="height",r="clientY",o="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 r=t?i.size-e.minSize-i._c:e.minSize+i._b;M.call(i,r)}return(s=c.map((function(e,t){var r,o={element:Me(e),size:p[t],minSize:_[t],i:t};if(t>0&&((r={a:t-1,b:t,dragging:!1,direction:y,parent:l})._b=ze(g,t-1==0,!1,h),r._c=ze(g,!1,t===c.length-1,h),"row-reverse"===m||"column-reverse"===m)){var n=r.a;r.a=r.b,r.b=n}if(t>0){var a=w(t,y,o.element);!function(e,t,r){var o=k(i,t,r);Object.keys(o).forEach((function(t){e.style[t]=o[t]}))}(a,g,t),r._a=$.bind(r),a.addEventListener("mousedown",r._a),a.addEventListener("touchstart",r._a),l.insertBefore(a,o.element),r.gutter=a}return x(o.element,o.size,ze(g,0===t,t===c.length-1,h),t),t>0&&B.push(r),o}))).forEach((function(e){var t=e.element.getBoundingClientRect()[i];t0){var r=B[i-1],o=s[r.a],n=s[r.b];o.size=t[i-1],n.size=e,x(o.element,o.size,r._b,o.i),x(n.element,n.size,r._c,n.i)}}))},getSizes:j,collapse:function(e){A(s[e])},destroy:function(e,t){B.forEach((function(r){if(!0!==t?r.parent.removeChild(r.gutter):(r.gutter.removeEventListener("mousedown",r._a),r.gutter.removeEventListener("touchstart",r._a)),!0!==e){var o=O(i,r.a.size,r._b);Object.keys(o).forEach((function(e){s[r.a].element.style[e]="",s[r.b].element.style[e]=""}))}}))},parent:l,pairs:B}};const Ae=(e,t,i)=>{var r;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 r.Path(["biome"]))&&e.pop().pop().endsWith(new r.Path(["generator","biome_source","biomes"]))){const i=me.biome_noise,r=e.get(),o=t.onChange(e=>{i.setBiomeColor(r,e.value)});return``}}};function Ie(e,t,i){return``}const Ee={base:()=>null,object({filter:e,getActiveFields:t},i,o,n=0){if(n>2)return null;if(e){const t=Object(r.relativePath)(i,e);if(t&&t.pop().equals(o))return t.last()}const a=t(i);for(const e of Object.keys(a)){const t=a[e].hook(this,i.push(e),o,n+=1);if(t)return t}return null}},qe=new r.DataModel(Object(r.MapNode)(Object(r.StringNode)(),Object(r.StringNode)()),{historyMax:0}),Te={base:()=>["","",""],boolean({node:e},t,i,r){const o=r.onClick(r=>{t.model.set(t,!(!e.optional()||!1!==i)&&void 0)}),n=r.onClick(r=>{t.model.set(t,!e.optional()||!0!==i||void 0)});return["",`${l(E("false"))}\n ${l(E("true"))}`,""]},choice({choices:e,config:t,switchNode:i},o,n,a){const s=i.activeCase(o,!0),c=(null==t?void 0:t.context)?new r.ModelPath(o.getModel(),new r.Path(o.getArray(),[t.context])):o,d=(null==t?void 0:t.choiceContext)?new r.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new r.Path([],[t.context]):o,[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,r){const o=r.onClick(r=>{Array.isArray(i)||(i=[]),t.model.set(t,[e.default(),...i])}),n=r.onClick(r=>{Array.isArray(i)||(i=[]),t.model.set(t,[...i,e.default()])}),a=``;let s="";return Array.isArray(i)&&(s=i.map((i,o)=>{const n=r.onClick(e=>t.model.set(t.push(o),void 0)),a=t.push(o).contextPush("entry"),s=e.category(a),[c,d,m]=e.hook(this,a,i,r);return`
      \n
      \n ${Ue(a,r)}\n ${We(a,r)}\n \n ${c}\n \n ${d}\n
      \n ${m?`
      ${m}
      `:""}\n
      `}).join(""),i.length>2&&(s+=`
      \n
      \n \n
      \n
      `)),["",a,s]},map({keys:e,children:t,config:i},o,n,a){var s,c,d;const m=new r.ModelPath(qe,new r.Path([Ve(o.toString())])),p=a.onClick(e=>{const i=m.get();o.model.set(o.push(i),t.default())});let u="";const _="block_state_map"===(null===(s=i.validation)||void 0===s?void 0:s.validator)?ue.blockStateRegistry[Object(r.relativePath)(o,i.validation.params.id).get()]:null;if(!_||_.properties){u=(_?Object(r.StringNode)(null,{enum:Object.keys(null!==(c=_.properties)&&void 0!==c?c:{})}):e).hook(this,m,null!==(d=m.get())&&void 0!==d?d:"",a)[1]+``}let f="";return"object"==typeof n&&void 0!==n&&(f=Object.keys(n).map(e=>{const i=a.onClick(t=>o.model.set(o.push(e),void 0)),s=o.modelPush(e),c=t.category(s),[d,m,p]=(_?Object(r.StringNode)(null,_.properties&&{enum:_.properties[e]}):t).hook(this,s,n[e],a);return`
      \n
      \n ${Ue(s,a)}\n ${We(s,a)}\n \n ${d}\n \n ${m}\n
      \n ${p?`
      ${p}
      `:""}\n
      `}).join("")),["",u,f]},number({integer:e,config:t},i,r,o){var n;const a=o.onChange(r=>{const o=r.value;let n=(null==t?void 0:t.color)?parseInt(o.slice(1),16):e?parseInt(o):parseFloat(o);i.model.set(i,n)});if(null==t?void 0:t.color){return["",``,""]}return["",``,""]},object({node:e,getActiveFields:t,getChildModelPath:i},r,o,n){let a="";e.optional()&&(a=void 0===o?``:``);let s="",c="";if("object"==typeof o&&void 0!==o&&(!e.optional()||void 0!==o)){const d=t(r),m=Object.keys(d),p=0===r.modelArr.length?null:e.hook(Ee,r,r);!p||d[p].hidden&&d[p].hidden()||(a+=Ue(r.push(p),n),a+=We(r.push(p),n),s+=d[p].hook(this,r.push(p),o[p],n)[1]);c=(ue.treeMinimized.get()?m.filter(e=>void 0!==o[e]):m).filter(e=>p!==e).filter(e=>d[e].enabled(r)).map(e=>{var t;const a=d[e],s=i(r,e),c=s.getContext().join("."),m=ue.settings.fields.find(e=>(null==e?void 0:e.path)&&c.endsWith(e.path));if(a.hidden&&a.hidden()||(null==m?void 0:m.hidden))return"";const p=a.category(s),[u,_,f]=a.hook(this,s,o[e],n);return"Properties"===e&&""===_?"":`
      \n
      \n ${Ue(s,n)}\n ${We(s,n)}\n ${u}\n \n ${_}\n
      \n ${f?`
      ${f}
      `:""}\n
      `}).join("")}return s+=e.hook(Re,r,n)||"",["",a+s,c]},string(e,t,i,r){const o=r.register(e=>{e.value=null!=i?i:"",e.addEventListener("change",i=>{const r=e.value;t.model.set(t,0===r.length?void 0:r),i.stopPropagation()})}),n=e.node.hook(Re,t,r)||"";return["",De(e,t,o)+n,""]}};function De({node:e,getValues:t,config:i},o,n){const a=t();if((null===(s=i)||void 0===s?void 0:s.enum)&&!i.additional){return Fe(e,"string"==typeof i.enum?new r.Path(o.getArray(),[i.enum]):o,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 r.Path(o.getArray(),[i.params.pool]);if(q(t.contextPush(a[0]).getContext()))return Fe(e,t,a,n)}const d=c();return`\n ${0===a.length?"":`\n ${a.map(e=>``}`}function Fe(e,t,i,r){return``}function Ve(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
      `,Ye=(e,t)=>`data-id="${t.register(t=>{const i=()=>{var i;const r=document.createElement("div");r.classList.add("node-menu");const o=q(e.contextPush("help").getContext(),[],6);o&&r.insertAdjacentHTML("beforeend",`${o}`);const n=e.getContext().join(".");r.insertAdjacentHTML("beforeend",`\n `),null===(i=r.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(r),document.body.addEventListener("click",()=>{try{t.removeChild(r)}catch(e){}},{capture:!0,once:!0}),document.body.addEventListener("contextmenu",()=>{try{t.removeChild(r)}catch(e){}},{capture:!0,once:!0})};t.addEventListener("contextmenu",e=>{i(),e.preventDefault()});let r=null;t.addEventListener("touchstart",()=>{r=setTimeout(()=>{i(),r=null},800)}),t.addEventListener("touchend",()=>{r&&(clearTimeout(r),r=null)})})}"`;var Ge=function(e,t,i,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const Xe=(e,t)=>{const i=()=>{if(ue.loaded.get()){const i=new r.ModelPath(t),o=t.schema.hook(Te,i,t.data,e),n=t.schema.category(i);return o[1]?`
      \n
      ${o[1]}
      \n
      ${o[2]}
      \n
      `:o[2]}return'
      '},o=e.register(r=>{ue.loaded.watchRun(t=>{t?e.mount(r,i(),!1):new Promise(e=>setTimeout(e,100)).then(()=>{ue.loaded.get()||e.mount(r,i(),!1)})}),ue.treeMinimized.watch(()=>{e.mount(r,i(),!1)}),t.addListener({invalidated(){e.mount(r,i(),!1)}}),me.biome_noise.biomeColors.watch(()=>{e.mount(r,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),l=i=>{var r,o;const s=(null!=i?i:"").trim().split(" ");return(null!==(o=null===(r=ue.collections.get())||void 0===r?void 0:r.get(a))&&void 0!==o?o:[]).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,l(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),re(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
      `},Ke={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,r)=>e.hook(this,t.push(r),i)):i},map({children:e},t,i){if(void 0===i)return;let r={};return Object.keys(i).forEach(o=>r[o]=e.hook(this,t.push(o),i[o])),r},object({getActiveFields:e},t,i){if(null==i||"object"!=typeof i)return i;let r={};const o=e(t);return Object.keys(o).filter(e=>o[e].enabled(t)).forEach(e=>{r[e]=o[e].hook(this,t.push(e),i[e])}),r}},Ze=(e,t)=>{const i=e=>{const i=t.schema.hook(Ke,new r.ModelPath(t),t.data);ue.jsonOutput.set(JSON.stringify(i,null,2)),e.value=ue.jsonOutput.get()},o=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
      `},Qe=(e,t)=>`
      {const e=ue.preview.get();if(e&&e.path&&e.path.withModel(t).get()){const i=r.getContext("2d"),o=e.path.withModel(t).get();e.state=JSON.parse(JSON.stringify(o));const[n,a]=e.getSize();r.width=n,r.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:o}),ue.preview.watchRun(t=>{var r,n;t&&(t.redraw=o,o(),e.mount(i.querySelector(".panel-controls"),`\n ${null!==(n=null===(r=ue.preview.get())||void 0===r?void 0:r.menu(e,o))&&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/r.clientWidth,c=(e.offsetY-n[1])*a/r.clientHeight;0===s&&0===c||(null===(i=ue.preview.get())||void 0===i||i.onDrag(s,c),o())}n=[e.offsetX,e.offsetY]}}),i.addEventListener("mouseup",e=>{n=void 0})})}">\n
      \n \n
      `,et=(tt={base(){},map({config:e},t,i){var o,n,a;if("block_state_map"===(null===(o=e.validation)||void 0===o?void 0:o.validator)){const o=Object(r.relativePath)(t,e.validation.params.id).get(),s=t.getModel().errors,c=null!==(a=(null!==(n=ue.blockStateRegistry[o])&&void 0!==n?n:{}).properties)&&void 0!==a?a:{},l=Object.keys(null!=i?i:{});Object.keys(c).forEach(e=>{l.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,r){let o=t(i);const n=0===i.modelArr.length?null:e.hook(Ee,i,i),a=Object.keys(o).filter(e=>n!==e).filter(e=>o[e].enabled(i));1===a.length&&"object"===o[a[0]].type(i.push(a[0]))&&o[a[0]].optional()&&"{}"===JSON.stringify(r[a[0]])&&i.push(a[0]).set(void 0)}},Object.assign(Object.assign({},tt),{choice(e,t,i,...r){var o;(null!==(o=tt.choice)&&void 0!==o?o:tt.base)(e,t,i,...r),e.switchNode.hook(this,t,i,...r)},list(e,t,i,...r){var o;(null!==(o=tt.list)&&void 0!==o?o:tt.base)(e,t,i,...r),Array.isArray(i)&&i.forEach((i,o)=>e.children.hook(this,t.push(o),i,...r))},map(e,t,i,...r){var o;(null!==(o=tt.map)&&void 0!==o?o:tt.base)(e,t,i,...r),"object"==typeof i&&Object.keys(i).forEach(o=>e.children.hook(this,t.push(o),i[o],...r))},object(e,t,i,...r){var o;if((null!==(o=tt.object)&&void 0!==o?o:tt.base)(e,t,i,...r),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],...r)})}}));var tt;const it=e=>{const t=pe[ue.model.get().id];t.listeners=[];const i=()=>ue.preview.get()?Ae(e,{direction:"vertical",sizes:[60,40]},[Ze(e,t),Qe(e,t)]):Ze(e,t),o=()=>{var e;const i=ue.preview.get(),r=null===(e=null==i?void 0:i.path)||void 0===e?void 0:e.withModel(t);r&&r.get()&&(null==i?void 0:i.active(r))||ue.preview.set(null)};t.addListener({invalidated:()=>{o(),t.schema.hook(et,new r.ModelPath(t,new r.Path),t.data,t.errors)}}),ue.schemasLoaded.watch(e=>{e&&(t.validate(),t.invalidate(),o())},"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((r,o)=>{r&&o||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]},[Xe(e,t),`
      ${i()}
      `])}\n
      \n ${((e,t)=>{const i=()=>ue.jsonError.get()?`
      \n
      \n ${l(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 ${l(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,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const ot=b.models.filter(e=>!0===e.category),nt=()=>rt(void 0,void 0,void 0,(function*(){var e,t;const i=location.pathname.split("/").filter(e=>e),r=new URLSearchParams(location.search),o=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&&ot.map(e=>e.id).includes(i[0]))ue.model.set(ot.find(e=>e.id===i[0])),a=ve;else{s="tree";const o=null!==(e=b.models.find(e=>e.id===i.join("/")))&&void 0!==e?e:null;if(ue.model.set(o),o){if(r.has("q"))try{const e=atob(null!==(t=r.get("q"))&&void 0!==t?t:"");pe[o.id].reset(JSON.parse(e))}catch(e){}a=it,n=E("title.generator",[E(o.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 l=new T;l.mount(o,a(l),!0)}));window.addEventListener("popstate",nt),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),nt()}}),nt()})}]); +!function(e){var t={};function i(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=e,i.c=t,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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 r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)i.d(r,o,function(t){return e[t]}.bind(null,o));return r},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 r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||t.hasOwnProperty(i)||r(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),o(i(27),t),o(i(11),t),o(i(12),t),o(i(5),t),o(i(28),t),o(i(29),t),o(i(14),t),o(i(30),t),o(i(31),t),o(i(32),t),o(i(33),t),o(i(34),t),o(i(15),t),o(i(35),t),o(i(36),t),o(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 r=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 o=r.StringNode.bind(void 0,i),n=r.Reference.bind(void 0,e);e.register("block_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:r.Opt(r.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",r.Mod(r.ListNode(r.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),t.Range=e=>r.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:r.NumberNode(e),change:e=>{var t,i,r;return void 0===e?0:null!==(r=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==r?r:0}}],{type:"object",priority:-1,node:r.ObjectNode({min:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.NumberNode(e)),max:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.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:r.ObjectNode({type:o({enum:["minecraft:binomial"]}),n:r.NumberNode({integer:!0,min:0}),p:r.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=>r.ChoiceNode([{type:"number",node:r.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:r.ObjectNode({base:r.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:r.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:r.ListNode(n("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:o({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:o({enum:"entity_source"}),scores:r.MapNode(o({validator:"objective"}),t.Range({forceRange:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:r.Opt(r.BooleanNode())},"minecraft:location_check":{offsetX:r.Opt(r.NumberNode({integer:!0})),offsetY:r.Opt(r.NumberNode({integer:!0})),offsetZ:r.Opt(r.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:r.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:r.NumberNode({min:0,max:1}),looting_multiplier:r.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:r.ListNode(r.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:r.Opt(r.NumberNode())},"minecraft:weather_check":{raining:r.Opt(r.BooleanNode()),thundering:r.Opt(r.BooleanNode())}},t.DimensionTypePresets=e=>r.ObjectOrPreset(o({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=>r.ObjectOrPreset(o({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.IntProvider=t.FloatProvider=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.FunctionCases=t.ConditionCases=void 0;const r=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 o=r.StringNode.bind(void 0,i),n=r.Reference.bind(void 0,e);e.register("block_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:r.Opt(r.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",r.Mod(r.ListNode(r.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>r.Opt(r.ChoiceNode([{type:"number",node:r.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:r.ObjectNode({min:r.Opt(r.NumberNode({integer:e})),max:r.Opt(r.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",r.ChoiceNode([{type:"object",node:r.ObjectNode({min:r.Opt(n("number_provider")),max:r.Opt(n("number_provider"))})},{type:"number",node:r.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]=r.Mod(c[a][e],{enabled:e=>void 0===e.push("type").get()})});const l=r.ObjectNode({type:r.Mod(r.Opt(o({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[r.Switch]:[{push:"type"}],[r.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 r=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==r?void 0:r.length)||1===(null==r?void 0:r.length)&&"type"===(null==r?void 0:r[0]))},node:l,change:t=>({type:e})})}),r.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:r.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:o({validator:"objective"}),scale:r.Opt(r.NumberNode())}})),e.register("scoreboard_name_provider",s("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:o({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:r.Mod(o({enum:"entity_source"}),{default:()=>"this"})}})),e.register("nbt_provider",s("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:o({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:r.Mod(o({enum:"copy_source"}),{default:()=>"this"})}})),t.FloatProvider=e=>s("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:r.NumberNode(e)},"minecraft:uniform":{value:r.ObjectNode({min_inclusive:r.NumberNode(e),max_exclusive:r.NumberNode(e)})},"minecraft:clamped_normal":{value:r.ObjectNode({min:r.NumberNode(),max:r.NumberNode(),mean:r.NumberNode(),deviation:r.NumberNode()})},"minecraft:trapezoid":{value:r.ObjectNode({min:r.NumberNode(),max:r.NumberNode(),plateau:r.NumberNode()})}}),e.register("float_provider",t.FloatProvider()),t.IntProvider=e=>s("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:r.NumberNode({integer:!0,...e})},"minecraft:uniform":{value:r.ObjectNode({min_inclusive:r.NumberNode({integer:!0,...e}),max_inclusive:r.NumberNode({integer:!0,...e})})},"minecraft:biased_to_bottom":{value:r.ObjectNode({min_inclusive:r.NumberNode({integer:!0,...e}),max_inclusive:r.NumberNode({integer:!0,...e})})},"minecraft:clamped":{value:r.ObjectNode({min_inclusive:r.NumberNode({integer:!0,...e}),max_inclusive:r.NumberNode({integer:!0,...e}),source:n("int_provider")})}}),e.register("int_provider",t.IntProvider()),e.register("vertical_anchor",r.ChoiceNode(["absolute","above_bottom","below_top"].map(e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,r,o;return{[e]:null!==(o=null!==(r=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==r?r:t.below_top)&&void 0!==o?o:0}},node:r.ObjectNode({[e]:r.NumberNode({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"})),e.register("height_provider",s("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:r.Opt(r.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:r.Opt(r.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:r.Opt(r.NumberNode({integer:!0}))}})),t.ConditionCases=(e=o({enum:"entity_source"}))=>({"minecraft:alternative":{terms:r.ListNode(n("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.MapNode(o(),o(),{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:r.MapNode(o({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:r.Opt(r.BooleanNode())},"minecraft:location_check":{offsetX:r.Opt(r.NumberNode({integer:!0})),offsetY:r.Opt(r.NumberNode({integer:!0})),offsetZ:r.Opt(r.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:r.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:r.NumberNode({min:0,max:1}),looting_multiplier:r.NumberNode()},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:r.ListNode(r.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:r.Opt(r.NumberNode({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:r.Opt(r.BooleanNode()),thundering:r.Opt(r.BooleanNode())}}),t.FunctionCases=(e,t=o({enum:"copy_source"}),a=o({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),formula:o({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:r.Mod(r.ObjectNode({bonusMultiplier:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:r.Mod(r.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:r.ListNode(r.ObjectNode({source:o({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:o({validator:"nbt_path",params:{category:"minecraft:item"}}),op:o({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.ListNode(o({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:r.Opt(r.ListNode(o({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:r.Opt(r.BooleanNode())},"minecraft:exploration_map":{destination:r.Opt(o({enum:"map_feature"})),decoration:r.Opt(o({enum:"map_decoration"})),zoom:r.Opt(r.NumberNode({integer:!0})),search_radius:r.Opt(r.NumberNode({integer:!0})),skip_existing_chunks:r.Opt(r.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:r.ListNode(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:r.ListNode(r.ObjectNode({pattern:o({enum:"banner_pattern"}),color:o({enum:"dye_color"})})),append:r.Opt(r.BooleanNode())},"minecraft:set_contents":{entries:r.ListNode(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:r.Opt(r.BooleanNode())},"minecraft:set_damage":{damage:n("number_provider"),add:r.Opt(r.BooleanNode())},"minecraft:set_enchantments":{enchantments:r.MapNode(o({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:r.Opt(r.BooleanNode())},"minecraft:set_loot_table":{name:o({validator:"resource",params:{pool:"$loot_table"}}),seed:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:r.Opt(a),lore:r.ListNode(n("text_component")),replace:r.Opt(r.BooleanNode())},"minecraft:set_name":{entity:r.Opt(a),name:r.Opt(n("text_component"))},"minecraft:set_nbt":{tag:o({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:r.Opt(r.ListNode(r.ObjectNode({type:o({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=>r.ObjectOrPreset(o({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=>r.ObjectOrPreset(o({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 r=i(0);t.initCommonSchemas=function(e,i){const o=r.StringNode.bind(void 0,i),n=r.Reference.bind(void 0,e);e.register("block_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"block"}}),Properties:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",r.Mod(r.ObjectNode({Name:o({validator:"resource",params:{pool:"fluid"}}),Properties:r.Opt(r.MapNode(o(),o()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",r.Mod(r.ListNode(r.NumberNode({integer:!0})),{default:()=>[0,0,0]})),t.Range=e=>r.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:r.NumberNode(e),change:e=>{var t,i,r;return void 0===e?0:null!==(r=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==r?r:0}}],{type:"object",priority:-1,node:r.ObjectNode({min:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.NumberNode(e)),max:(null==e?void 0:e.bounds)?r.NumberNode(e):r.Opt(r.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:r.ObjectNode({type:o({enum:["minecraft:binomial"]}),n:r.NumberNode({integer:!0,min:0}),p:r.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:r.ListNode(n("condition"))},"minecraft:block_state_property":{block:o({validator:"resource",params:{pool:"block"}}),properties:r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:o({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:o({enum:"entity_source"}),scores:r.MapNode(o({validator:"objective"}),t.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:r.Opt(r.BooleanNode())},"minecraft:location_check":{offsetX:r.Opt(r.NumberNode({integer:!0})),offsetY:r.Opt(r.NumberNode({integer:!0})),offsetZ:r.Opt(r.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:r.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:r.NumberNode({min:0,max:1}),looting_multiplier:r.NumberNode()},"minecraft:requirements":{terms:r.ListNode(n("condition"))},"minecraft:reference":{name:o({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:o({validator:"resource",params:{pool:"enchantment"}}),chances:r.ListNode(r.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:r.Opt(r.NumberNode())},"minecraft:weather_check":{raining:r.Opt(r.BooleanNode()),thundering:r.Opt(r.BooleanNode())}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=t.Processors=void 0;const r=i(0);t.initProcessorListSchemas=function(e,i){const o=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,i);t.Processors=r.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:o("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",r.Mod(r.ObjectNode({processors:r.ListNode(o("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",r.Mod(r.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[r.Switch]:[{push:"processor_type"}],[r.Case]:{"minecraft:block_age":{mossiness:r.NumberNode()},"minecraft:block_ignore":{blocks:r.ListNode(o("block_state"))},"minecraft:block_rot":{integrity:r.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:r.NumberNode({integer:!0})},"minecraft:rule":{rules:r.ListNode(o("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",r.Mod(r.ObjectNode({position_predicate:r.Opt(o("pos_rule_test")),location_predicate:o("rule_test"),input_predicate:o("rule_test"),output_state:o("block_state"),output_nbt:r.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:r.NumberNode({min:0,max:255,integer:!0}),max_dist:r.NumberNode({min:0,max:255,integer:!0}),min_chance:r.NumberNode({min:0,max:1}),max_chance:r.NumberNode({min:0,max:1})};e.register("pos_rule_test",r.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.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",r.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:o("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:r.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:o("block_state"),probability:r.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 r=i(90),o=i(91),n=i(92),a=i(93),s=i(94),c=i(95),d=i(96);d.alea=r,d.xor128=o,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 r{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 r(this.modelArr.slice(e,t),this.contextArr)}shift(){return new r(this.modelArr.slice(1),this.contextArr)}pop(){return new r(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new r([...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 r([...this.modelArr],[...this.contextArr,t])}copy(){return new r([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new o(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=r;class o extends r{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 o(this.model,super.slice(e,t))}shift(){return new o(this.model,super.shift())}pop(){return new o(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new o(this.model,super.modelPush(e))}contextPush(e){return new o(this.model,super.contextPush(e))}copy(){return new o(this.model,super.copy())}}t.ModelPath=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Errors=void 0;class r{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=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=void 0;const r=i(0);t.initProcessorListSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("processor_list",r.Mod(r.ObjectNode({processors:r.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",r.Mod(r.ObjectNode({processor_type:o({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[r.Switch]:[{push:"processor_type"}],[r.Case]:{"minecraft:block_age":{mossiness:r.NumberNode()},"minecraft:block_ignore":{blocks:r.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:r.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:o({enum:"heightmap_type"}),offset:r.NumberNode({integer:!0})},"minecraft:rule":{rules:r.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",r.Mod(r.ObjectNode({position_predicate:r.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:r.Opt(o({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:r.NumberNode({min:0,max:255,integer:!0}),max_dist:r.NumberNode({min:0,max:255,integer:!0}),min_chance:r.NumberNode({min:0,max:1}),max_chance:r.NumberNode({min:0,max:1})};e.register("pos_rule_test",r.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"pos_rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.Case]:{"minecraft:axis_aligned_linear_pos":{axis:o({enum:["x","y","z"]}),...n},"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",r.ObjectNode({predicate_type:o({validator:"resource",params:{pool:"rule_test"}}),[r.Switch]:[{push:"predicate_type"}],[r.Case]:{"minecraft:block_match":{block:o({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:o({validator:"resource",params:{pool:"block"}}),probability:r.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:r.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:o({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 r=i(5);t.ListNode=(e,t)=>{var i,o;const n=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,a=null!==(o=null==t?void 0:t.maxLength)&&void 0!==o?o:1/0,s=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return{...r.Base,type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(n)].map(t=>e.default()):[],navigate(t,i){const r=i+1;return t.getArray().length<=r?this:e.navigate(t,r)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,r,o){return o.loose&&!Array.isArray(i)&&(i=this.default()),Array.isArray(i)?(s&&(i.lengtha)?n===a?r.add(t,"error.invalid_list_range.exact",i.length,n):r.add(t,"error.invalid_list_range.between",i.length,n,a):i.lengtha&&r.add(t,"error.invalid_list_range.larger",i.length,a),i.map((i,n)=>e.validate(t.push(n),i,r,o))):(r.add(t,"error.expected_list"),i)},hook(i,r,...o){var n;return(null!==(n=i.list)&&void 0!==n?n:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},r,...o)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwitchNode=void 0;const r=i(5);t.SwitchNode=e=>({...r.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 r=t+1;return null===(i=this.activeCase(e.slice(0,r)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,r;return null!==(r=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==r?r:e},suggest(t,i){var r,o;return null!==(o=null===(r=this.activeCase(t))||void 0===r?void 0:r.node.suggest(t,i))&&void 0!==o?o:e.filter(e=>e.match(t)).map(e=>e.node.suggest(t,i)).reduce((e,t)=>e.concat(t))},validate(e,t,i,r){let o=this.activeCase(e);return void 0===o?t:o.node.validate(e,t,i,r)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const r=(e,t)=>{var i,r;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(r=e.priority)&&void 0!==r?r:0)},o=e.filter(e=>e.match(t)).sort(r);return i&&0===o.length?e.sort(r)[0]:o.length>0?o[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}})},function(e,t,i){"use strict";function r(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(t,"__esModule",{value:!0}),t.quoteString=t.escapeString=void 0,t.escapeString=r,t.quoteString=function(e){return`"${r(e)}"`}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=t.LocationFields=void 0;const r=i(0),o=i(8);t.initPredicatesSchemas=function(e,i){const n=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,i),s=r.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:r.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:r.ObjectNode({min:r.Opt(r.NumberNode({integer:!0})),max:r.Opt(r.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:r.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",r.ObjectNode({item:r.Opt(a({validator:"resource",params:{pool:"item"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:r.Opt(o.Range()),durability:r.Opt(o.Range()),potion:r.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:r.Opt(r.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",r.ObjectNode({enchantment:r.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:r.Opt(o.Range())},{context:"enchantment"})),e.register("block_predicate",r.ObjectNode({block:r.Opt(a({validator:"resource",params:{pool:"block"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:r.Opt(r.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",r.ObjectNode({fluid:r.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:r.Opt(r.MapNode(a(),s))},{context:"fluid"})),t.LocationFields={position:r.Opt(r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range())})),biome:r.Opt(a({enum:"biome"})),feature:r.Opt(a({enum:"structure_feature"})),dimension:r.Opt(a({enum:"dimension"})),light:r.Opt(r.ObjectNode({light:r.Opt(o.Range({integer:!0,min:0,max:15}))})),block:r.Opt(n("block_predicate")),fluid:r.Opt(n("fluid_predicate"))},e.register("location_predicate",r.ObjectNode(t.LocationFields,{context:"location"})),e.register("statistic_predicate",r.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:o.Range(),[r.Switch]:[{push:"type"}],[r.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",r.ObjectNode({gamemode:r.Opt(a({enum:"gamemode"})),level:r.Opt(o.Range()),advancements:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),r.ChoiceNode([{type:"boolean",node:r.BooleanNode(),change:e=>!0},{type:"object",node:r.MapNode(a(),r.BooleanNode())}]))),recipes:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),r.BooleanNode())),stats:r.Opt(r.ListNode(n("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",r.ObjectNode({amplifier:r.Opt(o.Range()),duration:r.Opt(o.Range()),ambient:r.Opt(r.BooleanNode()),visible:r.Opt(r.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range()),absolute:r.Opt(o.Range()),horizontal:r.Opt(o.Range())},{context:"distance"})),e.register("entity_predicate",r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:r.Opt(a({validator:"team"})),location:r.Opt(n("location_predicate")),distance:r.Opt(n("distance_predicate")),flags:r.Opt(r.ObjectNode({is_on_fire:r.Opt(r.BooleanNode()),is_sneaking:r.Opt(r.BooleanNode()),is_sprinting:r.Opt(r.BooleanNode()),is_swimming:r.Opt(r.BooleanNode()),is_baby:r.Opt(r.BooleanNode())})),equipment:r.Opt(r.MapNode(a({enum:"slot"}),n("item_predicate"))),player:r.Opt(n("player_predicate")),effects:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",r.ObjectNode({is_explosion:r.Opt(r.BooleanNode()),is_fire:r.Opt(r.BooleanNode()),is_magic:r.Opt(r.BooleanNode()),is_projectile:r.Opt(r.BooleanNode()),is_lightning:r.Opt(r.BooleanNode()),bypasses_armor:r.Opt(r.BooleanNode()),bypasses_invulnerability:r.Opt(r.BooleanNode()),bypasses_magic:r.Opt(r.BooleanNode()),source_entity:r.Opt(n("entity_predicate")),direct_entity:r.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",r.ObjectNode({dealt:r.Opt(o.Range()),taken:r.Opt(o.Range()),blocked:r.Opt(r.BooleanNode()),source_entity:r.Opt(n("entity_predicate")),type:r.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 r=i(0),o=i(3);t.initDecoratorSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={maximum:r.NumberNode({integer:!0}),bottom_offset:r.NumberNode({integer:!0}),top_offset:r.NumberNode({integer:!0})},s={chance:r.NumberNode({integer:!0,min:0})},c={count:o.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:r.NumberNode({min:0,max:1})},"minecraft:chance":s,"minecraft:count":c,"minecraft:count_extra":{count:r.NumberNode({integer:!0,min:0}),extra_count:r.NumberNode({integer:!0,min:0}),extra_chance:r.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:r.NumberNode(),below_noise:r.NumberNode({integer:!0}),above_noise:r.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:r.NumberNode({integer:!0}),noise_factor:r.NumberNode(),noise_offset:r.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:r.NumberNode({integer:!0}),spread:r.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 r=i(0),o=i(4);t.initDecoratorSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={count:o.IntProvider({min:0,max:256})};e.register("configured_decorator",r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:r.NumberNode({integer:!0})},"minecraft:chance":{chance:r.NumberNode({integer:!0,min:0})},"minecraft:count":a,"minecraft:count_extra":{count:r.NumberNode({integer:!0,min:0}),extra_count:r.NumberNode({integer:!0,min:0}),extra_chance:r.NumberNode({min:0,max:1})},"minecraft:count_multilayer":a,"minecraft:count_noise":{noise_level:r.NumberNode(),below_noise:r.NumberNode({integer:!0}),above_noise:r.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:r.NumberNode({integer:!0}),noise_factor:r.NumberNode(),noise_offset:r.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_with_water_threshold":{max_water_depth:r.NumberNode({integer:!0})},"minecraft:range":{height:i("height_provider")}}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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)&&r(t,e,i);return o(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 r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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)&&r(t,e,i);return o(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 r=this&&this.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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)&&r(t,e,i);return o(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 r=i(11),o=i(12);t.DataModel=class{constructor(e,t){var i;this.schema=e,this.data=e.default(),this.listeners=[],this.errors=new o.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 r=this.data;e.pop().forEach(e=>{void 0!==r[e]&&"string"!=typeof r[e]&&"number"!=typeof r[e]||(r[e]={}),r=r[e]}),void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?r.splice(e.last(),1):delete r[e.last()]:r[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(r)})}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanNode=void 0;const r=i(5);t.BooleanNode=()=>({...r.Base,type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,r){return r.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 r;return(null!==(r=e.boolean)&&void 0!==r?r: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 r=i(14),o=i(15);t.ChoiceNode=(e,t)=>{const i=o.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,r,o){let n=i.activeCase(e,!0);return n.node.optional()?t:n.node.validate(e,t,r,o)},hook(r,o,...n){var a;return(null!==(a=r.choice)&&void 0!==a?a:r.base).call(r,{node:this,choices:e,config:null!=t?t:{},switchNode:i},o,...n)}}};const n=e=>(i,o)=>t.ChoiceNode([{type:e,node:i,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:i.default()}},{type:"list",node:r.ListNode(i),change:e=>e?[e]:[]}],o);t.ObjectOrList=n("object"),t.StringOrList=n("string"),t.ObjectOrPreset=(e,i,r)=>t.ChoiceNode([{type:"string",priority:1,node:e,change:e=>Object.keys(r)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=r[e])&&void 0!==t?t:r[Object.keys(r)[0]]}}])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MapNode=void 0;const r=i(5);t.MapNode=(e,t,i)=>({...r.Base,type:()=>"map",default:()=>({}),navigate(e,i){const r=i+1;return e.getArray().length<=r?this:t.navigate(e,r)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,r,o,n){if(n.loose&&"object"!=typeof r&&(r=this.default()),null===r||"object"!=typeof r)return o.add(i,"error.expected_object"),r;let a={};return Object.keys(r).forEach(s=>{e.validate(i,s,o,n),a[s]=t.validate(i.push(s),r[s],o,n)}),a},validationOption(t){var r;return null!==(r=null==i?void 0:i.validation)&&void 0!==r?r:e.validationOption(t.push(""))},hook(r,o,...n){var a;return(null!==(a=r.map)&&void 0!==a?a:r.base).call(r,{node:this,keys:e,children:t,config:null!=i?i:{}},o,...n)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNode=void 0;const r=i(5);t.NumberNode=e=>{var t,i,o;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!==(o=null==e?void 0:e.max)&&void 0!==o?o:1/0,c=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return{...r.Base,type:()=>"number",default:()=>a>0?a:0,validate(e,t,i,r){return r.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,...r){var o;return(null!==(o=t.number)&&void 0!==o?o:t.base).call(t,{node:this,integer:n,min:a,max:s,between:c,config:null!=e?e:{}},i,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectNode=t.Case=t.Switch=void 0;const r=i(5),o=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=o.relativePath(e,s).get(),i=c[t];return{...d,...i}},m=(e,t)=>{var r;const n=s?o.relativePath(e,s).get():void 0,a=s&&null!==(r=c[n])&&void 0!==r?r:{},d=Object.keys(a),l=(null==i?void 0:i.context)?new o.ModelPath(e.getModel(),new o.Path(e.getArray(),[i.context])):e;return(!(null==i?void 0:i.disableSwitchContext)&&n&&d.includes(t)?l.contextPush(n):l).push(t)};return{...r.Base,type:()=>"object",category:()=>null==i?void 0:i.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,r=e.getArray();if(r.length<=i)return this;const o=l(e.slice(0,i))[r[i]];return null==o?void 0:o.navigate(e,i)},pathPush:(e,t)=>m(e,t.toString()),suggest(e,t){const i=l(e),r=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter(t=>i[t].enabled(e)).filter(e=>!r.includes(e)).map(a.quoteString)},validate(e,t,i,r){if(r.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=o.relativePath(e,s);let l=i.get();if(e.equals(i.pop())){const o=i.last();l=d[o].validate(e.push(o),t[o],new n.Errors,r)}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(o=>{if(l.includes(o)){if(!a[o].enabled(e))return;const n=a[o].validate(e.push(o),t[o],i,r);!a[o].keep()&&a[o].optional()&&(void 0===n||Array.isArray(n)&&0===n.length||n.constructor===Object&&0===Object.keys(n).length)?u[o]=void 0:(u[o]=n,e.getModel().set(e.push(o),n,!0))}else u[o]=t[o]}),u},hook(e,t,...i){var r;return(null!==(r=e.object)&&void 0!==r?r: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,r)=>e.get(t).transform(i,r),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,r){return e.get(t).navigate.bind(this)(i,r)},pathPush(i,r){return e.get(t).pathPush.bind(this)(i,r)},suggest(i,r){return e.get(t).suggest.bind(this)(i,r)},validate(i,r,o,n){return e.get(t).validate.bind(this)(i,r,o,n)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,r,...o){return e.get(t).hook.bind(this)(i,r,...o)},activeCase(i,r){return e.get(t).activeCase.bind(this)(i,r)},canUpdate(i,r){return e.get(t).canUpdate.bind(this)(i,r)},update(i,r){return e.get(t).update.bind(this)(i,r)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringNode=void 0;const r=i(5),o=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{...r.Base,type:()=>"string",default:()=>"",validate(e,r,o,s){if(s.loose&&"string"!=typeof r&&(r=this.default()||void 0),"string"!=typeof r)return o.add(e,"error.expected_string"),r;if(a(t)&&("resource"===t.validator&&r.length>0&&!r.includes(":")&&(r="#"===r[0]?"#minecraft:"+r.slice(1):"minecraft:"+r),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===r[0]||t.params.isDefinition||t.params.allowUnknown)))return r;if(n(t)&&t.additional)return r;const c=i();return c.length>0&&!c.includes(r)&&o.add(e,"error.invalid_enum_option",r),r},suggest:()=>i().map(o.quoteString),validationOption:()=>a(t)?t:void 0,hook(e,r,...o){var n;return(null!==(n=e.string)&&void 0!==n?n:e.base).call(e,{node:this,getValues:i,config:t},r,...o)}}}},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 r=i(40),o=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){o.initCommonSchemas(e,t),c.initPredicatesSchemas(e,t),r.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 r=i(0),o=i(8),n=i(17);t.initAdvancementSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t);e.register("advancement",r.Mod(r.ObjectNode({display:r.Opt(r.Mod(r.ObjectNode({icon:r.ObjectNode({item:a({validator:"resource",params:{pool:"item"}}),nbt:r.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:r.Opt(a()),frame:r.Opt(a({enum:["task","challenge","goal"]})),show_toast:r.Opt(r.BooleanNode()),announce_to_chat:r.Opt(r.BooleanNode()),hidden:r.Opt(r.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:r.Opt(a({validator:"resource",params:{pool:"$advancement"}})),criteria:r.MapNode(a(),i("advancement_criteria")),requirements:r.Opt(r.ListNode(r.ListNode(a()))),rewards:r.Opt(r.ObjectNode({function:r.Opt(a({validator:"resource",params:{pool:"$function"}})),loot:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"$loot_table"}}))),recipes:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"$recipe"}}))),experience:r.Opt(r.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",r.ObjectNode({trigger:a({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:r.Opt(r.ObjectNode({[r.Switch]:["pop",{push:"trigger"}],[r.Case]:{"minecraft:bee_nest_destroyed":{block:r.Opt(a({validator:"resource",params:{pool:"block"}})),num_bees_inside:r.Opt(r.NumberNode({integer:!0})),item:r.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:r.Opt(i("entity_predicate")),partner:r.Opt(i("entity_predicate")),child:r.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:r.Opt(a({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:r.Opt(a({enum:"dimension"})),to:r.Opt(a({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:r.Opt(r.ListNode(r.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:r.Opt(o.Range())},"minecraft:consume_item":{item:r.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:r.Opt(i("entity_predicate")),zombie:r.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:r.Opt(r.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),r.ObjectNode({amplifier:o.Range(),duration:o.Range()})))},"minecraft:enter_block":{block:r.Opt(a({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:r.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:r.Opt(i("entity_predicate")),killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:r.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:r.Opt(i("entity_predicate")),item:r.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":n.LocationFields,"minecraft:inventory_changed":{slots:r.Opt(r.ObjectNode({empty:r.Opt(o.Range()),occupied:r.Opt(o.Range()),full:r.Opt(o.Range())})),items:r.Opt(r.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:r.Opt(o.Range()),durability:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r.Opt(o.Range()),victims:r.Opt(r.ListNode(r.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:r.Opt(o.Range()),duration:r.Opt(o.Range())},"minecraft:location":n.LocationFields,"minecraft:nether_travel":{distance:r.Opt(o.Range()),entered:r.Opt(i("location_predicate")),exited:r.Opt(i("location_predicate"))},"minecraft:placed_block":{block:r.Opt(a({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:r.Opt(i("damage_predicate")),entity:r.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:r.Opt(i("entity_predicate")),killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:a({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:r.Opt(r.ObjectNode({block:r.Opt(a({validator:"resource",params:{pool:"block"}})),tag:r.Opt(a({validator:"resource",params:{pool:"$tag/block"}}))})),item:r.Opt(i("item_predicate"))},"minecraft:slept_in_bed":n.LocationFields,"minecraft:slide_down_block":{block:r.Opt(a({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:r.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:r.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:r.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:r.Opt(o.Range())},"minecraft:used_totem":{item:r.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:r.Opt(i("entity_predicate")),item:r.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 r=i(0),o=i(8);t.initConditionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("predicate",r.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",r.Mod(r.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[r.Switch]:[{push:"condition"}],[r.Case]:o.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 r=i(0),o=i(18),n=i(8);t.initLootTableSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={conditions:r.Opt(r.ListNode(i("loot_condition")))},c={functions:r.Opt(r.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=r=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>r.includes(e))});for(const[e,{allows:t,requires:i}]of o.LootTableTypes){const o=[...t,...i];a.push({match:t=>t.getModel().get(new r.Path(["type"]))===e,node:n(s(o))})}return a.push({match:e=>!0,node:n(i)}),r.SwitchNode(a)}const l=d(o.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(o.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(o.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(o.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",r.Mod(r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:r.Opt(r.ListNode(r.Mod(r.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:r.Opt(n.Range({integer:!0})),entries:r.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:r.Opt(r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:r.Opt(r.Mod(r.NumberNode({integer:!0,min:1}),_)),quality:r.Opt(r.Mod(r.NumberNode({integer:!0}),_)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":{children:r.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:r.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:r.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:r.Opt(r.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",r.Mod(r.ObjectNode({function:m,[r.Switch]:[{push:"function"}],[r.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:r.Mod(r.ObjectNode({bonusMultiplier:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:r.Mod(r.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:r.ListNode(r.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:r.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}})),...s},"minecraft:enchant_randomly":{enchantments:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"enchantment"}}))),...s},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:r.Opt(r.BooleanNode()),...s},"minecraft:exploration_map":{destination:r.Opt(a({enum:"structure_feature"})),decoration:r.Opt(a({enum:"map_decoration"})),zoom:r.Opt(r.NumberNode({integer:!0})),search_radius:r.Opt(r.NumberNode({integer:!0})),skip_existing_chunks:r.Opt(r.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:r.Opt(r.NumberNode({integer:!0})),...s},"minecraft:set_attributes":{modifiers:r.ListNode(i("attribute_modifier")),...s},"minecraft:set_contents":{entries:r.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:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:r.Opt(p),lore:r.ListNode(i("text_component")),replace:r.Opt(r.BooleanNode()),...s},"minecraft:set_name":{entity:r.Opt(p),name:r.Opt(i("text_component")),...s},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}}),...s},"minecraft:set_stew_effect":{effects:r.Opt(r.ListNode(r.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",r.Mod(r.ObjectNode({condition:l,[r.Switch]:[{push:"condition"}],[r.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:r.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",r.Mod(r.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:r.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 r=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",r.Mod(r.ObjectNode({pack:r.Mod(r.ObjectNode({pack_format:r.Mod(r.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:r.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 r=i(0);t.initRecipeSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("recipe",r.Mod(r.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:crafting_shaped":{group:r.Opt(o({enum:"recipe_group",additional:!0})),pattern:r.ListNode(o()),key:r.MapNode(o(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:r.Opt(o()),ingredients:r.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:r.NumberNode({integer:!0})},"minecraft:smithing":{group:r.Opt(o()),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",r.Mod(r.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:r.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",r.Mod(r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",r.Mod(r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.Mod(r.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 r=i(0);t.initTagsSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=e=>r.Mod(r.ObjectNode({replace:r.Opt(r.BooleanNode()),values:r.ListNode(r.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:r.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:r.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const r=i(0);t.initTextComponentSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.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",r.Mod(r.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:o(),change:n},{type:"number",node:r.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:r.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:r.Opt(r.BooleanNode()),italic:r.Opt(r.BooleanNode()),underlined:r.Opt(r.BooleanNode()),strikethrough:r.Opt(r.BooleanNode()),obfuscated:r.Opt(r.BooleanNode()),insertion:r.Opt(o()),clickEvent:r.Opt(r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[r.Switch]:[{push:"action"}],[r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:r.Opt(r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[r.Switch]:[{push:"action"}],[r.Case]:{show_text:{value:r.Opt(i("text_component"))},show_item:{value:r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:r.Opt(r.ObjectNode({name:r.Opt(o()),type:r.Opt(o()),id:r.Opt(o())}))}}})),extra:r.Opt(i("text_component_list"))};e.register("text_component_object",r.Mod(r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:r.ObjectNode({text:o(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:r.ObjectNode({translate:o(),with:r.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:r.ObjectNode({score:r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:r.Opt(o())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:r.ObjectNode({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:r.ObjectNode({keybind:o({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:r.ObjectNode({nbt:o({validator:"nbt_path"}),block:r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:r.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:r.Opt(r.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",r.Mod(r.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 r=i(49),o=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){o.initCommonSchemas(e,t),r.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 r=i(0),o=i(3);t.initAdvancementSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=r.ChoiceNode([{type:"object",node:r.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:r.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",r.Mod(r.ObjectNode({display:r.Opt(r.Mod(r.ObjectNode({icon:r.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:r.Opt(n()),frame:r.Opt(n({enum:["task","challenge","goal"]})),show_toast:r.Opt(r.BooleanNode()),announce_to_chat:r.Opt(r.BooleanNode()),hidden:r.Opt(r.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:r.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:r.MapNode(n(),i("advancement_criteria")),requirements:r.Opt(r.ListNode(r.ListNode(n()))),rewards:r.Opt(r.ObjectNode({function:r.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:r.Opt(r.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:r.Opt(r.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:r.Opt(r.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",r.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:r.Opt(r.ObjectNode({player:r.Mod(a,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[r.Switch]:["pop",{push:"trigger"}],[r.Case]:{"minecraft:bee_nest_destroyed":{block:r.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:r.Opt(r.NumberNode({integer:!0})),item:r.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:a,partner:a,child:a},"minecraft:brewed_potion":{potion:r.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:r.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:r.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:r.Opt(r.ListNode(a))},"minecraft:construct_beacon":{level:r.Opt(o.Range())},"minecraft:consume_item":{item:r.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:a,zombie:a},"minecraft:effects_changed":{effects:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:r.Opt(n({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:r.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:a,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:r.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:a,item:r.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:r.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:r.Opt(r.ObjectNode({empty:r.Opt(o.Range()),occupied:r.Opt(o.Range()),full:r.Opt(o.Range())})),items:r.Opt(r.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:r.Opt(o.Range()),durability:r.Opt(o.Range()),item:r.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:r.Opt(o.Range()),victims:r.Opt(r.ListNode(a))},"minecraft:levitation":{distance:r.Opt(o.Range()),duration:r.Opt(o.Range())},"minecraft:location":{location:r.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:r.Opt(o.Range()),entered:r.Opt(i("location_predicate")),exited:r.Opt(i("location_predicate"))},"minecraft:placed_block":{block:r.Opt(n({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:r.Opt(i("damage_predicate")),entity:a},"minecraft:player_interacted_with_entity":{item:r.Opt(i("item_predicate")),entity:a},"minecraft:player_killed_entity":{entity:a,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:r.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:r.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:r.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:a},"minecraft:tame_animal":{entity:a},"minecraft:target_hit":{projectile:a,shooter:a,signal_strength:r.Opt(o.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:r.Opt(i("entity_predicate")),item:r.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:r.Opt(o.Range())},"minecraft:used_totem":{item:r.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:r.Opt(i("entity_predicate")),item:r.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 r=i(0),o=i(3);t.initConditionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("predicate",r.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",r.Mod(r.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[r.Switch]:[{push:"condition"}],[r.Case]:o.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 r=i(0),o=i(3);t.initDimensionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=e=>r.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",r.Mod(r.ObjectNode({type:o.DimensionTypePresets(i("dimension_type")),generator:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:noise":{biome_source:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:r.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(r.Mod(r.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:r.Opt(r.NumberNode({integer:!0,min:0,max:62})),biomes:r.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:r.Opt(r.BooleanNode()),legacy_biome_init_layer:r.Opt(r.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:o.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:r.ObjectNode({biome:r.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:r.Opt(r.BooleanNode()),features:r.Opt(r.BooleanNode()),layers:r.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",r.Mod(r.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:r.ObjectNode({altitude:r.NumberNode({min:-1,max:1}),temperature:r.NumberNode({min:-1,max:1}),humidity:r.NumberNode({min:-1,max:1}),weirdness:r.NumberNode({min:-1,max:1}),offset:r.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",r.Mod(r.ObjectNode({firstOctave:r.NumberNode({integer:!0}),amplitudes:r.ListNode(r.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 r=i(0),o=i(3);t.initDimensionTypeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("dimension_type",r.Mod(r.ObjectNode({name:r.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:r.BooleanNode(),natural:r.BooleanNode(),piglin_safe:r.BooleanNode(),respawn_anchor_works:r.BooleanNode(),bed_works:r.BooleanNode(),has_raids:r.BooleanNode(),has_skylight:r.BooleanNode(),has_ceiling:r.BooleanNode(),coordinate_scale:r.NumberNode({min:1e-5,max:3e7}),ambient_light:r.NumberNode(),fixed_time:r.Opt(r.NumberNode({integer:!0})),logical_height:r.NumberNode({integer:!0,min:0,max:256}),effects:r.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>o.DefaultDimensionType}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const r=i(0),o=i(19),n=i(3);t.initLootTableSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={conditions:r.Opt(r.ListNode(i("loot_condition")))},c={functions:r.Opt(r.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=r=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>r.includes(e))});for(const[e,{allows:t,requires:i}]of o.LootTableTypes){const o=[...t,...i];a.push({match:t=>t.getModel().get(new r.Path(["type"]))===e,node:n(s(o))})}return a.push({match:e=>!0,node:n(i)}),r.SwitchNode(a)}const l=d(o.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(o.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(o.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(o.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",r.Mod(r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:r.Opt(r.ListNode(r.Mod(r.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:r.Opt(n.Range({integer:!0})),entries:r.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:r.Opt(r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:r.Opt(r.Mod(r.NumberNode({integer:!0,min:1}),_)),quality:r.Opt(r.Mod(r.NumberNode({integer:!0}),_)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":{children:r.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:r.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:r.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:r.Opt(r.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",r.Mod(r.ObjectNode({function:m,[r.Switch]:[{push:"function"}],[r.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:r.Mod(r.ObjectNode({bonusMultiplier:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:r.Mod(r.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:r.Mod(r.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:r.ListNode(r.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:r.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:r.Opt(r.ListNode(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:r.Opt(r.BooleanNode())},"minecraft:exploration_map":{destination:r.Opt(a({enum:"map_feature"})),decoration:r.Opt(a({enum:"map_decoration"})),zoom:r.Opt(r.NumberNode({integer:!0})),search_radius:r.Opt(r.NumberNode({integer:!0})),skip_existing_chunks:r.Opt(r.BooleanNode())},"minecraft:fill_player_head":{entity:p},"minecraft:limit_count":{limit:n.Range({bounds:!0})},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:r.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:r.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:r.Opt(r.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:r.Opt(p),lore:r.ListNode(i("text_component")),replace:r.Opt(r.BooleanNode())},"minecraft:set_name":{entity:r.Opt(p),name:r.Opt(i("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:r.Opt(r.ListNode(r.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()})))}},o={};return t.get("loot_function_type").forEach(t=>{o[t]={...e[t],...s}}),o})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",r.Mod(r.ObjectNode({condition:l,[r.Switch]:[{push:"condition"}],[r.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:r.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",r.Mod(r.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:r.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 r=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",r.Mod(r.ObjectNode({pack:r.Mod(r.ObjectNode({pack_format:r.Mod(r.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:r.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 r=i(0),o=i(3);t.initPredicatesSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=r.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:r.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:r.ObjectNode({min:r.Opt(r.NumberNode({integer:!0})),max:r.Opt(r.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:r.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",r.ObjectNode({item:r.Opt(n({validator:"resource",params:{pool:"item"}})),tag:r.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:r.Opt(o.Range()),durability:r.Opt(o.Range()),potion:r.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:r.Opt(r.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",r.ObjectNode({enchantment:r.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:r.Opt(o.Range())},{context:"enchantment"})),e.register("block_predicate",r.ObjectNode({block:r.Opt(n({validator:"resource",params:{pool:"block"}})),tag:r.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:r.Opt(r.MapNode(n(),a,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",r.ObjectNode({fluid:r.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:r.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:r.Opt(r.MapNode(n(),a))},{context:"fluid"})),e.register("location_predicate",r.ObjectNode({position:r.Opt(r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range())})),biome:r.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:r.Opt(n({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:r.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:r.Opt(r.ObjectNode({light:r.Opt(o.Range({integer:!0,min:0,max:15}))})),smokey:r.Opt(r.BooleanNode()),block:r.Opt(i("block_predicate")),fluid:r.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",r.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:o.Range(),[r.Switch]:[{push:"type"}],[r.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",r.ObjectNode({gamemode:r.Opt(n({enum:"gamemode"})),level:r.Opt(o.Range()),advancements:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),r.ChoiceNode([{type:"boolean",node:r.BooleanNode(),change:e=>!0},{type:"object",node:r.MapNode(n(),r.BooleanNode())}]))),recipes:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),r.BooleanNode())),stats:r.Opt(r.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",r.ObjectNode({amplifier:r.Opt(o.Range()),duration:r.Opt(o.Range()),ambient:r.Opt(r.BooleanNode()),visible:r.Opt(r.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",r.ObjectNode({x:r.Opt(o.Range()),y:r.Opt(o.Range()),z:r.Opt(o.Range()),absolute:r.Opt(o.Range()),horizontal:r.Opt(o.Range())},{context:"distance"})),e.register("entity_predicate",r.ObjectNode({type:r.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:r.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:r.Opt(n({validator:"team"})),location:r.Opt(i("location_predicate")),distance:r.Opt(i("distance_predicate")),flags:r.Opt(r.ObjectNode({is_on_fire:r.Opt(r.BooleanNode()),is_sneaking:r.Opt(r.BooleanNode()),is_sprinting:r.Opt(r.BooleanNode()),is_swimming:r.Opt(r.BooleanNode()),is_baby:r.Opt(r.BooleanNode())})),equipment:r.Opt(r.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:r.Opt(i("entity_predicate")),targeted_entity:r.Opt(i("entity_predicate")),player:r.Opt(i("player_predicate")),fishing_hook:r.Opt(r.ObjectNode({in_open_water:r.Opt(r.BooleanNode())})),effects:r.Opt(r.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",r.ObjectNode({is_explosion:r.Opt(r.BooleanNode()),is_fire:r.Opt(r.BooleanNode()),is_magic:r.Opt(r.BooleanNode()),is_projectile:r.Opt(r.BooleanNode()),is_lightning:r.Opt(r.BooleanNode()),bypasses_armor:r.Opt(r.BooleanNode()),bypasses_invulnerability:r.Opt(r.BooleanNode()),bypasses_magic:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),direct_entity:r.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",r.ObjectNode({dealt:r.Opt(o.Range()),taken:r.Opt(o.Range()),blocked:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),type:r.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const r=i(0);t.initRecipeSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("recipe",r.Mod(r.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:crafting_shaped":{group:r.Opt(o({enum:"recipe_group",additional:!0})),pattern:r.ListNode(o()),key:r.MapNode(o(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:r.Opt(o()),ingredients:r.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:r.NumberNode({integer:!0})},"minecraft:smithing":{group:r.Opt(o()),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",r.Mod(r.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:r.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",r.Mod(r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",r.Mod(r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.Mod(r.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 r=i(0);t.initTagsSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=e=>r.Mod(r.ObjectNode({replace:r.Opt(r.BooleanNode()),values:r.ListNode(r.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:r.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:r.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("item_tag",o("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const r=i(0);t.initTextComponentSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.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",r.Mod(r.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:o(),change:n},{type:"number",node:r.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:r.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:r.Opt(o()),font:r.Opt(o()),bold:r.Opt(r.BooleanNode()),italic:r.Opt(r.BooleanNode()),underlined:r.Opt(r.BooleanNode()),strikethrough:r.Opt(r.BooleanNode()),obfuscated:r.Opt(r.BooleanNode()),insertion:r.Opt(o()),clickEvent:r.Opt(r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[r.Switch]:[{push:"action"}],[r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:r.Opt(r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[r.Switch]:[{push:"action"}],[r.Case]:{show_text:{value:r.Opt(i("text_component")),contents:r.Opt(i("text_component"))},show_item:{value:r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:r.Opt(r.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.NumberNode({integer:!0})),tag:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:r.Opt(r.ObjectNode({name:r.Opt(o()),type:r.Opt(o()),id:r.Opt(o())})),contents:r.Opt(r.Mod(r.ObjectNode({name:r.Opt(i("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:r.Opt(i("text_component_list"))};e.register("text_component_object",r.Mod(r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:r.ObjectNode({text:o(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:r.ObjectNode({translate:o(),with:r.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:r.ObjectNode({score:r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:r.Opt(o())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:r.ObjectNode({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:r.ObjectNode({keybind:o({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:r.ObjectNode({nbt:o({validator:"nbt_path"}),block:r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:r.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:r.Opt(r.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",r.Mod(r.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const r=i(60),o=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){r.initBiomeSchemas(e,t),o.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 r=i(0);t.initBiomeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("biome",r.Mod(r.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:r.NumberNode(),scale:r.NumberNode(),temperature:r.NumberNode(),downfall:r.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:r.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:r.Opt(r.BooleanNode()),creature_spawn_probability:r.Opt(r.NumberNode({min:0,max:1})),effects:r.ObjectNode({sky_color:r.NumberNode({color:!0}),fog_color:r.NumberNode({color:!0}),water_color:r.NumberNode({color:!0}),water_fog_color:r.NumberNode({color:!0}),grass_color:r.Opt(r.NumberNode({color:!0})),foliage_color:r.Opt(r.NumberNode({color:!0})),grass_color_modifier:r.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:r.Opt(i()),mood_sound:r.Opt(r.ObjectNode({sound:i(),tick_delay:r.NumberNode({integer:!0}),block_search_extent:r.NumberNode({integer:!0}),offset:r.NumberNode()})),additions_sound:r.Opt(r.ObjectNode({sound:i(),tick_chance:r.NumberNode({min:0,max:1})})),music:r.Opt(r.ObjectNode({sound:i(),min_delay:r.NumberNode({integer:!0,min:0}),max_delay:r.NumberNode({integer:!0,min:0}),replace_current_music:r.BooleanNode()})),particle:r.Opt(r.ObjectNode({options:r.ObjectNode({type:i()}),probability:r.NumberNode({min:0,max:1})}))}),starts:r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:r.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),r.Mod(r.ListNode(r.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:r.NumberNode({integer:!0}),minCount:r.NumberNode({integer:!0}),maxCount:r.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:r.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),r.Mod(r.ObjectNode({energy_budget:r.NumberNode(),charge:r.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:r.MapNode(i({enum:["air","liquid"]}),r.Mod(r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:r.ListNode(r.Mod(r.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 r=i(0);t.initCarverSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("configured_carver",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:r.ObjectNode({probability:r.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 r=i(0),o=i(3);i(20),i(13),t.initFeatureSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={can_replace:r.BooleanNode(),project:r.BooleanNode(),need_water:r.BooleanNode(),xspread:r.NumberNode({integer:!0}),yspread:r.NumberNode({integer:!0}),zspread:r.NumberNode({integer:!0}),tries:r.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:r.ListNode(i("block_state")),blacklist:r.ListNode(i("block_state"))},s={state:i("block_state"),radius:o.UniformInt({min:0,max:4,maxSpread:4}),half_height:r.NumberNode({integer:!0,min:0,max:4}),targets:r.ListNode(i("block_state"))},c={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:r.NumberNode({integer:!0})},d={state:i("block_state"),size:r.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},l={count:o.UniformInt({min:-10,max:128,maxSpread:128})},m=r.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bamboo":{probability:r.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:o.UniformInt({min:0,max:2,maxSpread:1}),height:o.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:o.UniformInt({min:0,max:8,maxSpread:8}),rim_size:o.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:r.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:r.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:r.ListNode(r.ObjectNode({centerX:r.NumberNode({integer:!0}),centerZ:r.NumberNode({integer:!0}),radius:r.NumberNode({integer:!0}),height:r.NumberNode({integer:!0}),guarded:r.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:r.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:r.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:o.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:r.ListNode(r.ObjectNode({chance:r.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:sea_pickle":l,"minecraft:seagrass":{probability:r.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:r.ListNode(i("block_state")),place_in:r.ListNode(i("block_state")),place_under:r.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:r.ListNode(m)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:r.NumberNode({integer:!0}),hole_count:r.NumberNode({integer:!0}),requires_block_below:r.BooleanNode(),valid_blocks:r.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:r.NumberNode({integer:!0}),ignore_vines:r.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:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:r.NumberNode({integer:!0,min:0,max:32}),height_rand_a:r.NumberNode({integer:!0,min:0,max:24}),height_rand_b:r.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:o.UniformInt({min:0,max:8,maxSpread:8}),offset:o.UniformInt({min:0,max:8,maxSpread:8}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:blob_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:o.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:o.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:o.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:r.ListNode(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:r.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:r.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",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:r.Opt(r.NumberNode({min:0,max:80})),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:two_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:81})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),upper_limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),middle_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:r.ListNode(r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:column_placer":{min_size:r.NumberNode({integer:!0}),extra_size:r.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 r=i(0),o=i(3);t.initNoiseSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("noise_settings",r.Mod(r.ObjectNode({name:r.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:r.NumberNode({integer:!0}),bedrock_floor_position:r.NumberNode({integer:!0}),sea_level:r.NumberNode({integer:!0}),disable_mob_generation:r.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:r.ObjectNode({height:r.NumberNode({integer:!0}),density_factor:r.NumberNode(),density_offset:r.NumberNode(),size_horizontal:r.NumberNode({integer:!0}),size_vertical:r.NumberNode({integer:!0}),simplex_surface_noise:r.BooleanNode(),random_density_offset:r.Opt(r.BooleanNode()),island_noise_override:r.Opt(r.BooleanNode()),amplified:r.Opt(r.BooleanNode()),sampling:r.ObjectNode({xz_scale:r.NumberNode(),y_scale:r.NumberNode(),xz_factor:r.NumberNode(),y_factor:r.NumberNode()}),bottom_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0}),offset:r.NumberNode({integer:!0})}),top_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0}),offset:r.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>o.DefaultNoiseSettings})),e.register("generator_structures",r.ObjectNode({stronghold:r.Opt(r.ObjectNode({distance:r.NumberNode({integer:!0,min:0,max:1023}),spread:r.NumberNode({integer:!0,min:0,max:1023}),count:r.NumberNode({integer:!0,min:1,max:4095})})),structures:r.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),r.Mod(r.ObjectNode({spacing:r.NumberNode({integer:!0,min:0,max:4096}),separation:r.Mod(r.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,r,o)=>(t.pop().push("spacing").get()<=i&&r.add(t,"error.separation_smaller_spacing"),e.validate(t,i,r,o))})),salt:r.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",r.Mod(r.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:r.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 r=i(0);t.initStructureFeatureSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:r.NumberNode({integer:!0})};e.register("configured_structure_feature",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bastion_remnant":o,"minecraft:buried_treasure":{probability:r.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:r.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:r.NumberNode({min:0,max:1}),cluster_probability:r.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":o,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:r.BooleanNode()},"minecraft:village":o}},{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 r=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=r.Reference.bind(void 0,e);e.register("configured_surface_builder",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:r.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 r=i(0);i(13),t.initTemplatePoolSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t),n=r.ChoiceNode([{type:"string",node:o({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",r.Mod(r.ObjectNode({name:o(),fallback:o(),elements:r.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",r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({element_type:o({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:o({enum:["rigid","terrain_matching"]}),[r.Switch]:[{push:"element_type"}],[r.Case]:{"minecraft:feature_pool_element":{feature:o({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:n},"minecraft:legacy_single_pool_element":{location:o({validator:"resource",params:{pool:"$structure"}}),processors:n},"minecraft:list_pool_element":{elements:r.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:o({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 r=i(0);t.initWorldSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("world_settings",r.Mod(r.ObjectNode({generate_features:r.BooleanNode(),bonus_chest:r.BooleanNode(),seed:r.NumberNode({integer:!0}),dimensions:r.MapNode(o({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 r=i(70),o=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){o.initCommonSchemas(e,t),r.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 r=i(0);t.initAdvancementSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t),n=r.ChoiceNode([{type:"object",node:r.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:r.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",r.Mod(r.ObjectNode({display:r.Opt(r.Mod(r.ObjectNode({icon:r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:r.Opt(o()),frame:r.Opt(o({enum:["task","challenge","goal"]})),show_toast:r.Opt(r.BooleanNode()),announce_to_chat:r.Opt(r.BooleanNode()),hidden:r.Opt(r.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:r.Opt(o({validator:"resource",params:{pool:"$advancement"}})),criteria:r.MapNode(o(),i("advancement_criteria")),requirements:r.Opt(r.ListNode(r.ListNode(o()))),rewards:r.Opt(r.ObjectNode({function:r.Opt(o({validator:"resource",params:{pool:"$function"}})),loot:r.Opt(r.ListNode(o({validator:"resource",params:{pool:"$loot_table"}}))),recipes:r.Opt(r.ListNode(o({validator:"resource",params:{pool:"$recipe"}}))),experience:r.Opt(r.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",r.ObjectNode({trigger:o({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:r.Opt(r.ObjectNode({player:r.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[r.Switch]:["pop",{push:"trigger"}],[r.Case]:{"minecraft:bee_nest_destroyed":{block:r.Opt(o({validator:"resource",params:{pool:"block"}})),num_bees_inside:r.Opt(r.NumberNode({integer:!0})),item:r.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:r.Opt(o({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:r.Opt(o({validator:"resource",params:{pool:"$dimension"}})),to:r.Opt(o({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:r.Opt(r.ListNode(n))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:r.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),r.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")})))},"minecraft:enter_block":{block:r.Opt(o({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:r.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:r.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:r.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:r.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:r.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:r.Opt(r.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:r.Opt(r.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:r.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:r.Opt(r.ListNode(n))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:location":{location:r.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:r.Opt(i("location_predicate")),exited:r.Opt(i("location_predicate"))},"minecraft:placed_block":{block:r.Opt(o({validator:"resource",params:{pool:"block"}})),state:r.Opt(r.MapNode(o(),o(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:r.Opt(i("item_predicate")),location:r.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:o({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:r.Opt(i("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:r.Opt(i("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:r.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:o({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:r.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:r.Opt(o({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:r.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:r.Opt(i("entity_predicate")),item:r.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:r.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:r.Opt(i("entity_predicate")),item:r.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 r=i(0),o=i(4);t.initConditionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("predicate",r.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",r.Mod(r.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[r.Switch]:[{push:"condition"}],[r.Case]:o.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 r=i(0),o=i(4);t.initDimensionSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a=e=>r.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",r.Mod(r.ObjectNode({type:o.DimensionTypePresets(i("dimension_type")),generator:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:noise":{biome_source:r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:r.NumberNode({integer:!0}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:r.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(r.Mod(r.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:r.Opt(r.NumberNode({integer:!0,min:0,max:62})),biomes:r.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:r.Opt(r.BooleanNode()),legacy_biome_init_layer:r.Opt(r.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:o.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:r.ObjectNode({biome:r.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:r.Opt(r.BooleanNode()),features:r.Opt(r.BooleanNode()),layers:r.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",r.Mod(r.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:r.ObjectNode({altitude:r.NumberNode({min:-1,max:1}),temperature:r.NumberNode({min:-1,max:1}),humidity:r.NumberNode({min:-1,max:1}),weirdness:r.NumberNode({min:-1,max:1}),offset:r.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",r.Mod(r.ObjectNode({firstOctave:r.NumberNode({integer:!0}),amplitudes:r.ListNode(r.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 r=i(0),o=i(4);t.initDimensionTypeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("dimension_type",r.Mod(r.ObjectNode({name:r.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:r.BooleanNode(),natural:r.BooleanNode(),piglin_safe:r.BooleanNode(),respawn_anchor_works:r.BooleanNode(),bed_works:r.BooleanNode(),has_raids:r.BooleanNode(),has_skylight:r.BooleanNode(),has_ceiling:r.BooleanNode(),coordinate_scale:r.NumberNode({min:1e-5,max:3e7}),ambient_light:r.NumberNode(),fixed_time:r.Opt(r.NumberNode({integer:!0})),logical_height:r.NumberNode({integer:!0,min:0,max:4096}),effects:r.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:r.NumberNode({integer:!0,min:-2048,max:2047}),height:r.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),e=>({default:()=>o.DefaultDimensionType,validate:(t,i,r,o)=>((null==(i=e.validate(t,i,r,o))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&r.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&r.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&r.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&r.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 r=i(0),o=i(4);t.initItemModifierSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("item_modifier",r.ObjectOrList(i("function"),{choiceContext:"function"}));const a={conditions:r.Opt(r.ListNode(i("condition")))};e.register("function",r.Mod(r.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[r.Switch]:[{push:"function"}],[r.Case]:o.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 r=i(0),o=i(21),n=i(4);t.initLootTableSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={conditions:r.Opt(r.ListNode(i("loot_condition")))},c={functions:r.Opt(r.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=r=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>r.includes(e))});for(const[e,{allows:t,requires:i}]of o.LootTableTypes){const o=[...t,...i];a.push({match:t=>t.getModel().get(new r.Path(["type"]))===e,node:n(s(o))})}return a.push({match:e=>!0,node:n(i)}),r.SwitchNode(a)}const l=d(o.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(o.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(o.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(o.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",r.Mod(r.ObjectNode({type:r.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:r.Opt(r.ListNode(r.Mod(r.ObjectNode({rolls:i("number_provider"),bonus_rolls:r.Opt(i("number_provider")),entries:r.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:r.Opt(r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:r.Opt(r.Mod(r.NumberNode({integer:!0,min:1}),_)),quality:r.Opt(r.Mod(r.NumberNode({integer:!0}),_)),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alternatives":{children:r.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:r.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:r.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:r.Opt(r.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",r.Mod(r.ObjectNode({function:m,[r.Switch]:[{push:"function"}],[r.Case]:n.FunctionCases(s,u,p)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",r.Mod(r.ObjectNode({condition:l,[r.Switch]:[{push:"condition"}],[r.Case]:n.ConditionCases(p)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",r.Mod(r.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:i("number_provider"),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:r.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 r=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",r.Mod(r.ObjectNode({pack:r.Mod(r.ObjectNode({pack_format:r.Mod(r.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:r.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 r=i(0);t.initPredicatesSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t),n=r.ChoiceNode([{type:"string",node:o(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:r.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:r.ObjectNode({min:r.Opt(r.NumberNode({integer:!0})),max:r.Opt(r.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:r.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:r.Opt(o({validator:"resource",params:{pool:"potion"}})),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:r.Opt(r.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",r.ObjectNode({enchantment:r.Opt(o({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",r.ObjectNode({block:r.Opt(o({validator:"resource",params:{pool:"block"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/block"}})),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:r.Opt(r.MapNode(o(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",r.ObjectNode({fluid:r.Opt(o({validator:"resource",params:{pool:"fluid"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/fluid"}})),state:r.Opt(r.MapNode(o(),n))},{context:"fluid"})),e.register("location_predicate",r.ObjectNode({position:r.Opt(r.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:r.Opt(o({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:r.Opt(o({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:r.Opt(o({validator:"resource",params:{pool:"$dimension"}})),light:r.Opt(r.ObjectNode({light:i("int_bounds")})),smokey:r.Opt(r.BooleanNode()),block:r.Opt(i("block_predicate")),fluid:r.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",r.ObjectNode({type:o({validator:"resource",params:{pool:"stat_type"}}),stat:o(),value:i("int_bounds"),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:mined":{stat:o({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:o({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:o({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:o({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",r.ObjectNode({gamemode:r.Opt(o({enum:"gamemode"})),level:i("int_bounds"),advancements:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"$advancement"}}),r.ChoiceNode([{type:"boolean",node:r.BooleanNode(),change:e=>!0},{type:"object",node:r.MapNode(o(),r.BooleanNode())}]))),recipes:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"$recipe"}}),r.BooleanNode())),stats:r.Opt(r.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",r.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:r.Opt(r.BooleanNode()),visible:r.Opt(r.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",r.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",r.ObjectNode({type:r.Opt(o({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:r.Opt(o({validator:"team"})),location:r.Opt(i("location_predicate")),distance:r.Opt(i("distance_predicate")),flags:r.Opt(r.ObjectNode({is_on_fire:r.Opt(r.BooleanNode()),is_sneaking:r.Opt(r.BooleanNode()),is_sprinting:r.Opt(r.BooleanNode()),is_swimming:r.Opt(r.BooleanNode()),is_baby:r.Opt(r.BooleanNode())})),equipment:r.Opt(r.MapNode(o({enum:"slot"}),i("item_predicate"))),vehicle:r.Opt(i("entity_predicate")),targeted_entity:r.Opt(i("entity_predicate")),player:r.Opt(i("player_predicate")),fishing_hook:r.Opt(r.ObjectNode({in_open_water:r.Opt(r.BooleanNode())})),effects:r.Opt(r.MapNode(o({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",r.ObjectNode({is_explosion:r.Opt(r.BooleanNode()),is_fire:r.Opt(r.BooleanNode()),is_magic:r.Opt(r.BooleanNode()),is_projectile:r.Opt(r.BooleanNode()),is_lightning:r.Opt(r.BooleanNode()),bypasses_armor:r.Opt(r.BooleanNode()),bypasses_invulnerability:r.Opt(r.BooleanNode()),bypasses_magic:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),direct_entity:r.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",r.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:r.Opt(r.BooleanNode()),source_entity:r.Opt(i("entity_predicate")),type:r.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const r=i(0);t.initRecipeSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("recipe",r.Mod(r.ObjectNode({type:o({validator:"resource",params:{pool:"recipe_serializer"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:crafting_shaped":{group:r.Opt(o({enum:"recipe_group",additional:!0})),pattern:r.ListNode(o()),key:r.MapNode(o(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:r.Opt(o()),ingredients:r.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),experience:r.Opt(r.NumberNode()),cookingtime:r.Opt(r.Mod(r.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:r.Opt(o()),ingredient:i("recipe_ingredient"),result:o({validator:"resource",params:{pool:"item"}}),count:r.NumberNode({integer:!0})},"minecraft:smithing":{group:r.Opt(o()),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",r.Mod(r.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:r.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",r.Mod(r.ObjectNode({item:r.Opt(o({validator:"resource",params:{pool:"item"}})),tag:r.Opt(o({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",r.Mod(r.ObjectNode({item:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.Mod(r.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 r=i(0);t.initTagsSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=e=>r.Mod(r.ObjectNode({replace:r.Opt(r.BooleanNode()),values:r.ListNode(r.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:r.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:r.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",o("block")),e.register("entity_type_tag",o("entity_type")),e.register("fluid_tag",o("fluid")),e.register("function_tag",o("$function")),e.register("game_event_tag",o("game_event")),e.register("item_tag",o("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const r=i(0);t.initTextComponentSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.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",r.Mod(r.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:o(),change:n},{type:"number",node:r.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:r.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:r.Opt(o()),font:r.Opt(o()),bold:r.Opt(r.BooleanNode()),italic:r.Opt(r.BooleanNode()),underlined:r.Opt(r.BooleanNode()),strikethrough:r.Opt(r.BooleanNode()),obfuscated:r.Opt(r.BooleanNode()),insertion:r.Opt(o()),clickEvent:r.Opt(r.ObjectNode({action:o({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[r.Switch]:[{push:"action"}],[r.Case]:{change_page:{value:o()},copy_to_clipboard:{value:o()},open_file:{value:o()},open_url:{value:o()},run_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:o({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:r.Opt(r.ObjectNode({action:o({enum:["show_text","show_item","show_entity"]}),[r.Switch]:[{push:"action"}],[r.Case]:{show_text:{value:r.Opt(i("text_component")),contents:r.Opt(i("text_component"))},show_item:{value:r.Opt(o({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:r.Opt(r.ObjectNode({id:o({validator:"resource",params:{pool:"item"}}),count:r.Opt(r.NumberNode({integer:!0})),tag:r.Opt(o({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:r.Opt(r.ObjectNode({name:r.Opt(o()),type:r.Opt(o()),id:r.Opt(o())})),contents:r.Opt(r.Mod(r.ObjectNode({name:r.Opt(i("text_component")),type:o({validator:"resource",params:{pool:"entity_type"}}),id:o({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:r.Opt(i("text_component_list"))};e.register("text_component_object",r.Mod(r.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:r.ObjectNode({text:o(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:r.ObjectNode({translate:o(),with:r.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:r.ObjectNode({score:r.ObjectNode({name:o({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:o({validator:"objective"}),value:r.Opt(o())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:r.ObjectNode({selector:o({validator:"entity",params:{amount:"multiple",type:"entities"}}),separator:r.Opt(i("text_component")),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:r.ObjectNode({keybind:o({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:r.ObjectNode({nbt:o({validator:"nbt_path"}),block:r.Opt(o({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:r.Opt(o({validator:"entity",params:{amount:"single",type:"entities"}})),storage:r.Opt(o({validator:"resource",params:{pool:"$storage"}})),interpret:r.Opt(r.BooleanNode()),separator:r.Opt(i("text_component")),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",r.Mod(r.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const r=i(82),o=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),r.initBiomeSchemas(e,t),o.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 r=i(0);t.initBiomeSchemas=function(e,t){const i=r.StringNode.bind(void 0,t);e.register("biome",r.Mod(r.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:r.NumberNode(),scale:r.NumberNode(),temperature:r.NumberNode(),downfall:r.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:r.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:r.Opt(r.BooleanNode()),creature_spawn_probability:r.Opt(r.NumberNode({min:0,max:1})),effects:r.ObjectNode({sky_color:r.NumberNode({color:!0}),fog_color:r.NumberNode({color:!0}),water_color:r.NumberNode({color:!0}),water_fog_color:r.NumberNode({color:!0}),grass_color:r.Opt(r.NumberNode({color:!0})),foliage_color:r.Opt(r.NumberNode({color:!0})),grass_color_modifier:r.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:r.Opt(i()),mood_sound:r.Opt(r.ObjectNode({sound:i(),tick_delay:r.NumberNode({integer:!0}),block_search_extent:r.NumberNode({integer:!0}),offset:r.NumberNode()})),additions_sound:r.Opt(r.ObjectNode({sound:i(),tick_chance:r.NumberNode({min:0,max:1})})),music:r.Opt(r.ObjectNode({sound:i(),min_delay:r.NumberNode({integer:!0,min:0}),max_delay:r.NumberNode({integer:!0,min:0}),replace_current_music:r.BooleanNode()})),particle:r.Opt(r.ObjectNode({options:r.ObjectNode({type:i()}),probability:r.NumberNode({min:0,max:1})}))}),starts:r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:r.MapNode(i({enum:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),r.Mod(r.ListNode(r.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:r.NumberNode({integer:!0}),minCount:r.NumberNode({integer:!0}),maxCount:r.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:r.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),r.Mod(r.ObjectNode({energy_budget:r.NumberNode(),charge:r.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:r.MapNode(i({enum:["air","liquid"]}),r.Mod(r.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:r.ListNode(r.Mod(r.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 r=i(0),o=i(4);t.initCarverSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t),a={vertical_rotation:o.FloatProvider(),shape:r.ObjectNode({distance_factor:o.FloatProvider(),thickness:o.FloatProvider(),width_smoothness:r.NumberNode({integer:!0,min:0}),horizontal_radius_factor:o.FloatProvider(),vertical_radius_default_factor:r.NumberNode(),vertical_radius_center_factor:r.NumberNode()})},s={horizontal_radius_multiplier:o.FloatProvider(),vertical_radius_multiplier:o.FloatProvider(),floor_level:o.FloatProvider({min:-1,max:1})};e.register("configured_carver",r.Mod(r.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:r.ObjectNode({probability:r.NumberNode({min:0,max:1}),y:i("height_provider"),yScale:o.FloatProvider(),lava_level:i("vertical_anchor"),debug_settings:r.Opt(r.ObjectNode({debug_mode:r.Opt(r.BooleanNode()),air_state:r.Opt(i("block_state"))})),[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:canyon":a,"minecraft:cave":s,"minecraft:nether_cave":s}})},{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 r=i(0),o=i(4);i(22),i(9);const n=i(9);t.initFeatureSchemas=function(e,t){const i=r.Reference.bind(void 0,e),a=r.StringNode.bind(void 0,t),s={can_replace:r.Opt(r.BooleanNode()),project:r.Opt(r.BooleanNode()),need_water:r.Opt(r.BooleanNode()),xspread:r.Opt(r.NumberNode({integer:!0,min:0})),yspread:r.Opt(r.NumberNode({integer:!0,min:0})),zspread:r.Opt(r.NumberNode({integer:!0,min:0})),tries:r.Opt(r.NumberNode({integer:!0,min:1})),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:r.ListNode(i("block_state")),blacklist:r.ListNode(i("block_state"))},c={state:i("block_state"),radius:o.IntProvider({min:0,max:8}),half_height:r.NumberNode({integer:!0,min:0,max:4}),targets:r.ListNode(i("block_state"))},d={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:r.NumberNode({integer:!0})},l={size:r.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:r.NumberNode({min:0,max:1}),targets:r.ListNode(r.ObjectNode({target:i("rule_test"),state:i("block_state")}))},m=r.ChoiceNode([{type:"string",node:a({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),p={surface:a({enum:["floor","ceiling"]}),depth:o.IntProvider({min:1,max:128}),vertical_range:r.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:r.NumberNode({min:0,max:1}),extra_edge_column_chance:r.NumberNode({min:0,max:1}),vegetation_chance:r.NumberNode({min:0,max:1}),xz_radius:o.IntProvider(),replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:m};e.register("configured_feature",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bamboo":{probability:r.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:o.IntProvider({min:0,max:3}),height:o.IntProvider({min:1,max:10})},"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:o.IntProvider({min:0,max:16}),rim_size:o.IntProvider({min:0,max:16})},"minecraft:disk":c,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:r.NumberNode({integer:!0,min:1,max:512}),height:o.IntProvider({min:0,max:128}),radius:o.IntProvider({min:0,max:128}),max_stalagmite_stalactite_height_diff:r.NumberNode({integer:!0,min:0,max:64}),height_deviation:r.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:o.IntProvider({min:0,max:128}),density:o.FloatProvider({min:0,max:2}),wetness:o.FloatProvider({min:0,max:2}),wetness_mean:r.NumberNode({min:0,max:1}),wetness_deviation:r.NumberNode({min:0,max:1}),chance_of_dripstone_column_at_max_distance_from_center:r.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:r.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:r.NumberNode({integer:!0,min:1,max:64})},"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:r.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:r.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:r.ListNode(r.ObjectNode({centerX:r.NumberNode({integer:!0}),centerZ:r.NumberNode({integer:!0}),radius:r.NumberNode({integer:!0}),height:r.NumberNode({integer:!0}),guarded:r.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:r.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":s,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:r.NumberNode({integer:!0,min:0,max:7}),fossil_structures:r.ListNode(a({validator:"resource",params:{pool:"$structure"}})),overlay_structures:r.ListNode(a({validator:"resource",params:{pool:"$structure"}})),fossil_processors:n.Processors,overlay_processors:n.Processors},"minecraft:geode":{blocks:r.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:r.ListNode(i("block_state"))}),layers:r.ObjectNode({filling:r.Opt(r.NumberNode({min:.01,max:50})),inner_layer:r.Opt(r.NumberNode({min:.01,max:50})),middle_layer:r.Opt(r.NumberNode({min:.01,max:50})),outer_layer:r.Opt(r.NumberNode({min:.01,max:50}))}),crack:r.ObjectNode({generate_crack_chance:r.Opt(r.NumberNode({min:0,max:1})),base_crack_size:r.Opt(r.NumberNode({min:0,max:5})),crack_point_offset:r.Opt(r.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:r.Opt(r.NumberNode({min:0,max:1})),use_potential_placements_chance:r.Opt(r.NumberNode({min:0,max:1})),use_alternate_layer0_chance:r.Opt(r.NumberNode({min:0,max:1})),placements_require_layer0_alternate:r.Opt(r.BooleanNode()),outer_wall_distance:r.Opt(o.IntProvider({min:1,max:20})),distribution_points:r.Opt(o.IntProvider({min:1,max:20})),point_offset:r.Opt(o.IntProvider({min:0,max:10})),min_gen_offset:r.Opt(r.NumberNode({integer:!0})),max_gen_offset:r.Opt(r.NumberNode({integer:!0})),invalid_blocks_threshold:r.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:r.Opt(r.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:r.Opt(r.NumberNode({min:0,max:1})),can_place_on_floor:r.Opt(r.BooleanNode()),can_place_on_ceiling:r.Opt(r.BooleanNode()),can_place_on_wall:r.Opt(r.BooleanNode()),can_be_placed_on:r.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:a({enum:["up","down","north","east","south","west"]}),allow_water:r.BooleanNode(),height_distribution:r.ListNode(r.ObjectNode({weight:r.NumberNode({integer:!0}),data:o.IntProvider()})),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:r.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:r.Opt(r.NumberNode({integer:!0,min:1,max:512})),column_radius:o.IntProvider({min:0,max:60}),height_scale:o.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:r.NumberNode({min:0,max:1}),stalactite_bluntness:o.FloatProvider({min:.1,max:10}),stalagmite_bluntness:o.FloatProvider({min:.1,max:10}),wind_speed:o.FloatProvider({min:0,max:2}),min_radius_for_wind:r.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:r.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:o.IntProvider()},"minecraft:ore":l,"minecraft:random_patch":s,"minecraft:random_boolean_selector":{feature_false:m,feature_true:m},"minecraft:random_selector":{features:r.ListNode(r.ObjectNode({chance:r.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:root_system":{required_vertical_space_for_tree:r.NumberNode({integer:!0,min:1,max:64}),root_radius:r.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:r.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:r.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:r.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:r.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:r.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:m},"minecraft:scattered_ore":l,"minecraft:sea_pickle":{count:o.IntProvider({min:0,max:256})},"minecraft:seagrass":{probability:r.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:r.ListNode(i("block_state")),place_in:r.ListNode(i("block_state")),place_under:r.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:r.ListNode(m)},"minecraft:small_dripstone":{max_placements:r.NumberNode({integer:!0,min:0,max:100}),empty_space_search_radius:r.NumberNode({integer:!0,min:0,max:20}),max_offset_from_origin:r.NumberNode({integer:!0,min:0,max:20}),chance_of_taller_dripstone:r.Opt(r.NumberNode({integer:!0,min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:r.NumberNode({integer:!0}),hole_count:r.NumberNode({integer:!0}),requires_block_below:r.BooleanNode(),valid_blocks:r.ListNode(a({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:r.Opt(r.BooleanNode()),force_dirt:r.Opt(r.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:r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:r.NumberNode({integer:!0,min:0,max:32}),height_rand_a:r.NumberNode({integer:!0,min:0,max:24}),height_rand_b:r.NumberNode({integer:!0,min:0,max:24}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:bending_trunk_placer":{bend_length:o.IntProvider({min:1,max:64}),min_height_for_leaves:r.Opt(r.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:o.IntProvider({min:0,max:16}),offset:o.IntProvider({min:0,max:16}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:blob_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:r.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:o.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:o.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:o.IntProvider({min:1,max:512}),leaf_placement_attempts:r.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:o.IntProvider({min:0,max:24})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:r.ListNode(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:r.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:r.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:underwater_magma":{floor_search_range:r.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:r.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:r.NumberNode({min:0,max:1})},"minecraft:vegetation_patch":p,"minecraft:waterlogged_vegetation_patch":p}},{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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:r.Opt(r.NumberNode({min:0,max:80})),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:two_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:81})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),upper_limit:r.Opt(r.NumberNode({integer:!0,min:0,max:80})),lower_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),middle_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16})),upper_size:r.Opt(r.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:randomized_int_state_provider":{property:a(),values:o.IntProvider(),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:r.ListNode(r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[r.Switch]:[{push:"type"}],[r.Case]:{"minecraft:column_placer":{size:o.IntProvider({min: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 r=i(0),o=i(4);t.initNoiseSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("noise_settings",r.Mod(r.ObjectNode({name:r.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:r.NumberNode({integer:!0}),bedrock_floor_position:r.NumberNode({integer:!0}),sea_level:r.NumberNode({integer:!0}),disable_mob_generation:r.BooleanNode(),noise_caves_enabled:r.BooleanNode(),aquifers_enabled:r.BooleanNode(),deepslate_enabled:r.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:r.ObjectNode({min_y:r.NumberNode({integer:!0,min:-2048,max:2047}),height:r.NumberNode({integer:!0,min:0,max:4096}),density_factor:r.NumberNode(),density_offset:r.NumberNode(),size_horizontal:r.NumberNode({integer:!0}),size_vertical:r.NumberNode({integer:!0}),simplex_surface_noise:r.BooleanNode(),random_density_offset:r.Opt(r.BooleanNode()),island_noise_override:r.Opt(r.BooleanNode()),amplified:r.Opt(r.BooleanNode()),sampling:r.ObjectNode({xz_scale:r.NumberNode(),y_scale:r.NumberNode(),xz_factor:r.NumberNode(),y_factor:r.NumberNode()}),bottom_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0,min:0}),offset:r.NumberNode({integer:!0})}),top_slide:r.ObjectNode({target:r.NumberNode({integer:!0}),size:r.NumberNode({integer:!0,min:0}),offset:r.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),e=>({default:()=>o.DefaultNoiseSettings,validate:(t,i,r,o)=>{var n,a,s,c;return(null===(n=null==(i=e.validate(t,i,r,o))?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&&r.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&&r.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&&r.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}}))),e.register("generator_structures",r.ObjectNode({stronghold:r.Opt(r.ObjectNode({distance:r.NumberNode({integer:!0,min:0,max:1023}),spread:r.NumberNode({integer:!0,min:0,max:1023}),count:r.NumberNode({integer:!0,min:1,max:4095})})),structures:r.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),r.Mod(r.ObjectNode({spacing:r.NumberNode({integer:!0,min:0,max:4096}),separation:r.Mod(r.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,r,o)=>(t.pop().push("spacing").get()<=i&&r.add(t,"error.separation_smaller_spacing"),e.validate(t,i,r,o))})),salt:r.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",r.Mod(r.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:r.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 r=i(0);t.initStructureFeatureSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:r.NumberNode({integer:!0})};e.register("configured_structure_feature",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:r.ObjectNode({[r.Switch]:["pop",{push:"type"}],[r.Case]:{"minecraft:bastion_remnant":o,"minecraft:buried_treasure":{probability:r.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:r.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:r.NumberNode({min:0,max:1}),cluster_probability:r.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":o,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:r.BooleanNode()},"minecraft:village":o}},{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 r=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=r.StringNode.bind(void 0,t),o=r.Reference.bind(void 0,e);e.register("configured_surface_builder",r.Mod(r.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:r.ObjectNode({top_material:o("block_state"),under_material:o("block_state"),underwater_material:o("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 r=i(0);i(9);const o=i(9);t.initTemplatePoolSchemas=function(e,t){const i=r.Reference.bind(void 0,e),n=r.StringNode.bind(void 0,t);e.register("template_pool",r.Mod(r.ObjectNode({name:n(),fallback:n(),elements:r.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",r.Mod(r.ObjectNode({weight:r.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",r.Mod(r.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[r.Switch]:[{push:"element_type"}],[r.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:o.Processors},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:o.Processors},"minecraft:list_pool_element":{elements:r.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:o.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 r=i(0);t.initWorldSettingsSchemas=function(e,t){const i=r.Reference.bind(void 0,e),o=r.StringNode.bind(void 0,t);e.register("world_settings",r.Mod(r.ObjectNode({generate_features:r.BooleanNode(),bonus_chest:r.BooleanNode(),seed:r.NumberNode({integer:!0}),dimensions:r.MapNode(o({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 r;!function(e,o,n){function a(e){var t,i=this,r=(t=4022871197,function(e){e=String(e);for(var i=0;i>>0,t=(r*=t)>>>0,t+=4294967296*(r-=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=r(" "),i.s1=r(" "),i.s2=r(" "),i.s0-=r(e),i.s0<0&&(i.s0+=1),i.s1-=r(e),i.s1<0&&(i.s1+=1),i.s2-=r(e),i.s2<0&&(i.s2+=1),r=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),r=t&&t.state,o=i.next;return o.int32=function(){return 4294967296*i.next()|0},o.double=function(){return o()+11102230246251565e-32*(2097152*o()|0)},o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.alea=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,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 r=0;r>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xor128=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,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 r=0;r>>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),r=t&&t.state,o=function(){return(i.next()>>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xorwow=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,n){function a(e){var t=this;t.next=function(){var e,i,r=t.x,o=t.i;return e=r[o],i=(e^=e>>>7)^e<<24,i^=(e=r[o+1&7])^e>>>10,i^=(e=r[o+3&7])^e>>>3,i^=(e=r[o+4&7])^e<<7,e=r[o+7&7],i^=(e^=e<<13)^e<<9,r[o]=i,t.i=o+1&7,i},function(e,t){var i,r=[];if(t===(0|t))r[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),r=t&&t.state,o=function(){return(i.next()>>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&(r.x&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xorshift7=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,n){function a(e){var t=this;t.next=function(){var e,i,r=t.w,o=t.X,n=t.i;return t.w=r=r+1640531527|0,i=o[n+34&127],e=o[n=n+1&127],i^=i<<13,e^=e<<17,i^=i>>>15,e^=e>>>12,i=o[n]=i^e,t.i=n,i+(r^r>>>16)|0},function(e,t){var i,r,o,n,a,s=[],c=128;for(t===(0|t)?(r=t,t=null):(t+="\0",r=0,c=Math.max(c,t.length)),o=0,n=-32;n>>15,r^=r<<4,r^=r>>>13,n>=0&&(a=a+1640531527|0,o=0==(i=s[127&n]^=r+a)?o+1:0);for(o>=128&&(s[127&(t&&t.length||0)]=-1),o=127,n=512;n>0;--n)r=s[o+34&127],i=s[o=o+1&127],r^=r<<13,i^=i<<17,r^=r>>>15,i^=i>>>12,s[o]=r^i;e.w=a,e.X=s,e.i=o}(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),r=t&&t.state,o=function(){return(i.next()>>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&(r.X&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.xor4096=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var r;!function(e,o,n){function a(e){var t=this,i="";t.next=function(){var e=t.b,i=t.c,r=t.d,o=t.a;return e=e<<25^e>>>7^i,i=i-r|0,r=r<<24^r>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^i,t.c=i=i-r|0,t.d=r<<16^i>>>16^o,t.a=o-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 r=0;r>>0)/4294967296};return o.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},o.int32=i.next,o.quick=o,r&&("object"==typeof r&&s(r,i),o.state=function(){return s(i,{})}),o}o&&o.exports?o.exports=c:i(2)&&i(7)?void 0===(r=function(){return c}.call(t,i,t,o))||(o.exports=r):this.tychei=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){var r;!function(o,n,a){var s,c=a.pow(256,6),d=a.pow(2,52),l=2*d;function m(e,t,i){var r=[],m=_(function e(t,i){var r,o=[],n=typeof t;if(i&&"object"==n)for(r in t)try{o.push(e(t[r],i-1))}catch(e){}return o.length?o:"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),(o.crypto||o.msCrypto).getRandomValues(e)),f(e)}catch(e){var t=o.navigator,i=t&&t.plugins;return[+new Date,o,i,o.screen,f(n)]}}():e,3),r),g=new p(r),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,r){return r&&(r.S&&u(r,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,r=this,o=0,n=r.i=r.j=0,a=r.S=[];for(i||(e=[i++]);o<256;)a[o]=o++;for(o=0;o<256;o++)a[o]=a[n=255&n+e[o%i]+(t=a[o])],a[n]=t;(r.g=function(e){for(var t,i=0,o=r.i,n=r.j,a=r.S;e--;)t=a[o=255&o+1],i=256*i+a[255&(a[o]=a[n=255&n+t])+(a[n]=t)];return r.i=o,r.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,r=e+"",o=0;o("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,r,o,n){return u(t,u(e,i,r),u(e,o,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,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.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:"88cfe4c348afe83336669990e8cb3b7f927ab991",url:y},{id:"vanilla_datapack_summary",hash:"8a0a444a01d20589b006415d25dae03a264b084d",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 r of yield t.keys())e(r.url)&&i.push(t.delete(r));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 r=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(r,e=>e.values))}catch(e){console.warn(`Error occurred while registry ${i.id}:`,e)}}))));{const r=`${y}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=yield S(r,e=>{const t={};return Object.keys(e).forEach(i=>{t[i.slice(10)]=Object.keys(e[i].entries)}),t});i.forEach(i=>{var r;t.register(i.id,null!==(r=e[i.id])&&void 0!==r?r:[])})}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 r=`${N}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=yield S(r);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"),r=yield i.match(e);if(r&&r.ok)return yield r.json();const o=yield fetch(e),n=t(yield o.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),r=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=r}}noise(e,t,i,r,o){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!==r&&(b=Math.floor(Math.min(o,p)/r)*r),this.sampleAndLerp(c,d,l,m,p-b,u,_,g,h)}gradDot(e,t,i,r){const o=L.GRADIENT[15&e];return o[0]*t+o[1]*i+o[2]*r}P(e){return 255&this.p[255&e]}sampleAndLerp(e,t,i,r,o,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,r,o,n,a,s,c,d,l){return u(i,_(e,t,r,o,n,a),_(e,t,s,c,d,l))}(a,s,c,this.gradDot(this.P(l),r,o,n),this.gradDot(this.P(f),r-1,o,n),this.gradDot(this.P(m),r,o-1,n),this.gradDot(this.P(g),r-1,o-1,n),this.gradDot(this.P(l+1),r,o,n-1),this.gradDot(this.P(f+1),r-1,o,n-1),this.gradDot(this.P(m+1),r,o-1,n-1),this.gradDot(this.P(g+1),r-1,o-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 P{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 r.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 $(this.seed+t,i.firstOctave,i.amplitudes)});const r={};this.state.biomes.forEach(e=>{r[e.biome]=this.getBiomeColor(e.biome)});const o=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=r[l])&&void 0!==i?i:[128,128,128];o[s]=m[0],o[s+1]=m[1],o[s+2]=m[2],o[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 r=1/0,o="";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,r,o;return null!==(o=I(null!==(r=null===(i=R[ue.language.get()])||void 0===i?void 0:i[e])&&void 0!==r?r:R.en[e],t))&&void 0!==o?o:e}function q(e,t,i=5,r=1){return[ue.language.get(),"en"].reduce((o,n)=>{var a;if(void 0!==o)return o;const s=e.slice(-i);for(;s.length>=r;){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 r=e.getAttribute("data-id");null===(i=(t=this.registry)[r])||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 r;i.target.matches(".btn.input")||(null===(r=i.target.closest(".btn"))||void 0===r?void 0:r.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=P.fromRange(c(),-15,0),this.maxLimitPerlinNoise=P.fromRange(c(),-15,0),this.mainPerlinNoise=P.fromRange(c(),-7,0),this.depthNoise=P.fromRange(c(),-15,0)}reset(e,t,i,r,o){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(o).fill(null),this.xOffset=r}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(e/this.chunkWidth),r=Math.floor(e%this.chunkWidth)/this.chunkWidth,o=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,r,o[e],o[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),r=684.412*this.settings.sampling.xz_scale,o=684.412*this.settings.sampling.y_scale,n=r/this.settings.sampling.xz_factor,a=o/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,r,o,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,r,o,n,a){let s=0,c=0,d=0,l=1;for(let m=0;m<16;m+=1){const p=P.wrap(e*r*l),u=P.wrap(t*o*l),_=P.wrap(i*r*l),f=o*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 r=this.mainPerlinNoise.getOctaveNoise(m);r&&(d+=r.noise(P.wrap(e*n*l),P.wrap(t*a*l),P.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],H=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];const U=(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=>U("Generator","set-version",e),G=e=>U("Preview","set-preview",e),X=()=>U("Generator","reset"),K=(e=!1)=>U("Generator","undo",e?"Hotkey":"Menu"),Z=(e=!1)=>U("Generator","redo",e?"Hotkey":"Menu"),Q=()=>U("JsonOutput","copy"),ee=()=>U("JsonOutput","download"),te=()=>U("JsonOutput","share"),ie=()=>U("Preview","hide-preview"),re=e=>U("Generator","toggle-minimize",e?"minimized":"unminimized"),oe=e=>U("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,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const le={1.15:o,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 r.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,r;for(const o of null!==(i=null==e?void 0:e.features)&&void 0!==i?i:[])if(this.random()<(null!==(r=null==o?void 0:o.chance)&&void 0!==r?r:0))return this.getPlacements(t,o.feature);return this.getPlacements(t,null==e?void 0:e.default)},simple_random_selector:(e,t)=>{var i,r,o;const n=null===(i=null==e?void 0:e.features)||void 0===i?void 0:i[this.nextInt(null!==(o=null===(r=null==e?void 0:e.features)||void 0===r?void 0:r.length)&&void 0!==o?o: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,r,o;let n=null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1;return null!==(r=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),r=this.biomeInfoNoise.getValue(t[0]/i,0,t[2]/i),o=Math.max(0,Math.ceil((r+e.noise_offset)*e.noise_to_count_ratio));return new Array(o).fill(t)},dark_oak_tree:(e,t)=>[...new Array(16)].map((e,i)=>{const r=4*Math.floor(i/4)+1+this.nextInt(3)+t[0];return[r,Math.max(63,V[m(0,63,r)]),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,r,o,n;const a=this.nextInt(null!==(i=null==e?void 0:e.spread)&&void 0!==i?i:0)+this.nextInt(null!==(r=null==e?void 0:e.spread)&&void 0!==r?r:0)-(null!==(o=e.spread)&&void 0!==o?o: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,r;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!==(r=null==e?void 0:e.chance)&&void 0!==r?r:1)/8)){return[[this.nextInt(16)+t[0],i,this.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t)=>{var i,r,o;const n=this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(r=null==e?void 0:e.top_offset)&&void 0!==r?r:0))+(null!==(o=null==e?void 0:e.bottom_offset)&&void 0!==o?o:0);return this.decorateY(t,n)},range_biased:(e,t)=>{var i,r,o;const n=this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(r=null==e?void 0:e.top_offset)&&void 0!==r?r:0))+(null!==(o=null==e?void 0:e.bottom_offset)&&void 0!==o?o:0));return this.decorateY(t,n)},range_very_biased:(e,t)=>{var i,r,o,n;const a=this.nextInt(this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(r=null==e?void 0:e.top_offset)&&void 0!==r?r:0))+(null!==(o=null==e?void 0:e.bottom_offset)&&void 0!==o?o: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 P(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 r.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 r=[];for(let e=0;ee.pos.every((e,t)=>e>=0&&em(50,205,e)),r)}for(let e=0;ee.schema).forEach(e=>pe[e.id]=new r.DataModel(Object(r.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],r=i.get(e.schema);r&&(t.schema=r,"{}"===JSON.stringify(t.data)&&(t.reset(r.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 r=b.versions.findIndex(t=>t.id===e),o=t?b.versions.findIndex(e=>e.id===t):0,n=i?b.versions.findIndex(e=>e.id===i):b.versions.length-1;return o<=r&&r<=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,r)=>{const o=()=>{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=o(),"toggle")})}">${o()}
      `},he=(e,t,i="/")=>{const r=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((r,o)=>{null===r&&"preview"===ue.mobilePanel.get()&&ue.mobilePanel.set("tree"),null!==r&&null!==o||e.mount(t,i(),!1)})});return`
      \n
      \n ${M.three_bars}\n

      ${t}

      \n
      \n \n
      `};const be=(e,t,i,r)=>`\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 r=ue.settings.fields;return r.map((o,n)=>{const a=e.register(a=>{var s;a.value=null!==(s=o.path)&&void 0!==s?s:"",a.addEventListener("change",()=>{r[n]=Object.assign(Object.assign({},o),{path:a.value}),ue.settings.save(),e.mount(t,i(),!1)})}),s=e.register(a=>{var s;a.value=null!==(s=o.name)&&void 0!==s?s:"",a.addEventListener("change",()=>{r[n]=Object.assign(Object.assign({},o),{name:a.value}),ue.settings.save(),e.mount(t,i(),!1)})});return`
    • \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n ${o.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 r=e[t];return void 0!==r?r:i},ze=function(e,t,i,r){if(t){if("end"===r)return 0;if("center"===r)return e/2}else if(i){if("start"===r)return 0;if("center"===r)return e/2}return e},Le=function(e,t){var i=ke.createElement("div");return i.className="gutter gutter-"+t,i},Pe=function(e,t,i){var r={};return Se(t)?r[e]=t:r[e]=je+"("+t+"% - "+i+"px)",r},$e=function(e,t){var i;return(i={})[e]=t+"px",i},Be=function(e,t){if(void 0===t&&(t={}),Oe)return{};var i,r,o,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",Pe),k=Ce(t,"gutterStyle",$e);function x(e,t,r,o){var n=O(i,t,r,o);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][r]:e[r]}function M(e){var t=s[this.a],i=s[this.b],r=t.size+i.size;t.size=e/this.size*r,i.size=r-e/this.size*r,x(t.element,t.size,this._b,t.i),x(i.element,i.size,this._c,i.i)}function C(e){var i,r=s[this.a],o=s[this.b];this.dragging&&(i=S(e)-this.start+(this._b-this.dragOffset),v>1&&(i=Math.round(i/v)*v),i<=r.minSize+b+this._b?i=r.minSize+this._b:i>=this.size-(o.minSize+b+this._c)&&(i=this.size-(o.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,r=e.getBoundingClientRect(),a=t.getBoundingClientRect();this.size=r[i]+a[i]+this._b+this._c,this.start=r[o],this.end=r[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,r=[],o=e.map((function(o,n){var a=t*o/100,s=ze(g,0===n,n===e.length-1,h),c=_[n]+s;return a0&&r[o]-i>0){var a=Math.min(i,r[o]-i);i-=a,n=e-a}return n/t*100}))}function P(){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 $(e){if(!("button"in e)||0===e.button){var i=s[this.a].element,r=s[this.b].element;this.dragging||Ce(t,"onDragStart",xe)(j()),e.preventDefault(),this.dragging=!0,this.move=C.bind(this),this.stop=P.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),r.addEventListener("selectstart",xe),r.addEventListener("dragstart",xe),i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.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",r="clientX",o="left",n="right",a="clientWidth"):"vertical"===y&&(i="height",r="clientY",o="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 r=t?i.size-e.minSize-i._c:e.minSize+i._b;M.call(i,r)}return(s=c.map((function(e,t){var r,o={element:Me(e),size:p[t],minSize:_[t],i:t};if(t>0&&((r={a:t-1,b:t,dragging:!1,direction:y,parent:d})._b=ze(g,t-1==0,!1,h),r._c=ze(g,!1,t===c.length-1,h),"row-reverse"===m||"column-reverse"===m)){var n=r.a;r.a=r.b,r.b=n}if(t>0){var a=w(t,y,o.element);!function(e,t,r){var o=k(i,t,r);Object.keys(o).forEach((function(t){e.style[t]=o[t]}))}(a,g,t),r._a=$.bind(r),a.addEventListener("mousedown",r._a),a.addEventListener("touchstart",r._a),d.insertBefore(a,o.element),r.gutter=a}return x(o.element,o.size,ze(g,0===t,t===c.length-1,h),t),t>0&&B.push(r),o}))).forEach((function(e){var t=e.element.getBoundingClientRect()[i];t0){var r=B[i-1],o=s[r.a],n=s[r.b];o.size=t[i-1],n.size=e,x(o.element,o.size,r._b,o.i),x(n.element,n.size,r._c,n.i)}}))},getSizes:j,collapse:function(e){A(s[e])},destroy:function(e,t){B.forEach((function(r){if(!0!==t?r.parent.removeChild(r.gutter):(r.gutter.removeEventListener("mousedown",r._a),r.gutter.removeEventListener("touchstart",r._a)),!0!==e){var o=O(i,r.a.size,r._b);Object.keys(o).forEach((function(e){s[r.a].element.style[e]="",s[r.b].element.style[e]=""}))}}))},parent:d,pairs:B}};const Ae=(e,t,i)=>{var r;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 r.Path(["biome"]))&&e.pop().pop().endsWith(new r.Path(["generator","biome_source","biomes"]))){const i=me.biome_noise,r=e.get(),o=t.onChange(e=>{i.setBiomeColor(r,e.value)});return``}}};function Ie(e,t,i){return``}const Ee={base:()=>null,object({filter:e,getActiveFields:t},i,o,n=0){if(n>2)return null;if(e){const t=Object(r.relativePath)(i,e);if(t&&t.pop().equals(o))return t.last()}const a=t(i);for(const e of Object.keys(a)){const t=a[e].hook(this,i.push(e),o,n+=1);if(t)return t}return null}},qe=new r.DataModel(Object(r.MapNode)(Object(r.StringNode)(),Object(r.StringNode)()),{historyMax:0}),Te={base:()=>["","",""],boolean({node:e},t,i,r){const o=r.onClick(r=>{t.model.set(t,!(!e.optional()||!1!==i)&&void 0)}),n=r.onClick(r=>{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},o,n,a){const s=i.activeCase(o,!0),c=(null==t?void 0:t.context)?new r.ModelPath(o.getModel(),new r.Path(o.getArray(),[t.context])):o,l=(null==t?void 0:t.choiceContext)?new r.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new r.Path([],[t.context]):o,[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,r){const o=r.onClick(r=>{Array.isArray(i)||(i=[]),t.model.set(t,[e.default(),...i])}),n=r.onClick(r=>{Array.isArray(i)||(i=[]),t.model.set(t,[...i,e.default()])}),a=``;let s="";return Array.isArray(i)&&(s=i.map((i,o)=>{const n=r.onClick(e=>t.model.set(t.push(o),void 0)),a=t.push(o).contextPush("entry"),s=e.category(a),[c,l,m]=e.hook(this,a,i,r);return`
        \n
        \n ${Ue(a,r)}\n ${We(a,r)}\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},o,n,a){var s,c,l;const m=new r.ModelPath(qe,new r.Path([Ve(o.toString())])),p=a.onClick(e=>{const i=m.get();o.model.set(o.push(i),t.default())});let u="";const _="block_state_map"===(null===(s=i.validation)||void 0===s?void 0:s.validator)?ue.blockStateRegistry[Object(r.relativePath)(o,i.validation.params.id).get()]:null;if(!_||_.properties){u=(_?Object(r.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=>o.model.set(o.push(e),void 0)),s=o.modelPush(e),c=t.category(s),[l,m,p]=(_?Object(r.StringNode)(null,_.properties&&{enum:_.properties[e]}):t).hook(this,s,n[e],a);return`
        \n
        \n ${Ue(s,a)}\n ${We(s,a)}\n \n ${l}\n \n ${m}\n
        \n ${p?`
        ${p}
        `:""}\n
        `}).join("")),["",u,f]},number({integer:e,config:t},i,r,o){var n;const a=o.onChange(r=>{const o=r.value;let n=(null==t?void 0:t.color)?parseInt(o.slice(1),16):e?parseInt(o):parseFloat(o);i.model.set(i,n)});if(null==t?void 0:t.color){return["",``,""]}return["",``,""]},object({node:e,getActiveFields:t,getChildModelPath:i},r,o,n){let a="";e.optional()&&(a=void 0===o?``:``);let s="",c="";if("object"==typeof o&&void 0!==o&&(!e.optional()||void 0!==o)){const l=t(r),m=Object.keys(l),p=0===r.modelArr.length?null:e.hook(Ee,r,r);!p||l[p].hidden&&l[p].hidden()||(a+=Ue(r.push(p),n),a+=We(r.push(p),n),s+=l[p].hook(this,r.push(p),o[p],n)[1]);c=(ue.treeMinimized.get()?m.filter(e=>void 0!==o[e]):m).filter(e=>p!==e).filter(e=>l[e].enabled(r)).map(e=>{var t;const a=l[e],s=i(r,e),c=s.getContext().join("."),m=ue.settings.fields.find(e=>(null==e?void 0:e.path)&&c.endsWith(e.path));if(a.hidden&&a.hidden()||(null==m?void 0:m.hidden))return"";const p=a.category(s),[u,_,f]=a.hook(this,s,o[e],n);return"Properties"===e&&""===_?"":`
        \n
        \n ${Ue(s,n)}\n ${We(s,n)}\n ${u}\n \n ${_}\n
        \n ${f?`
        ${f}
        `:""}\n
        `}).join("")}return s+=e.hook(Re,r,n)||"",["",a+s,c]},string(e,t,i,r){const o=r.register(e=>{e.value=null!=i?i:"",e.addEventListener("change",i=>{const r=e.value;t.model.set(t,0===r.length?void 0:r),i.stopPropagation()})}),n=e.node.hook(Re,t,r)||"";return["",De(e,t,o)+n,""]}};function De({node:e,getValues:t,config:i},o,n){const a=t();if((null===(s=i)||void 0===s?void 0:s.enum)&&!i.additional){return Fe(e,"string"==typeof i.enum?new r.Path(o.getArray(),[i.enum]):o,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 r.Path(o.getArray(),[i.params.pool]);if(q(t.contextPush(a[0]).getContext()))return Fe(e,t,a,n)}const l=c();return`\n ${0===a.length?"":`\n ${a.map(e=>``}`}function Fe(e,t,i,r){return``}function Ve(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
        `,Ye=(e,t)=>`data-id="${t.register(t=>{const i=()=>{var i;const r=document.createElement("div");r.classList.add("node-menu");const o=q(e.contextPush("help").getContext(),[],6);o&&r.insertAdjacentHTML("beforeend",`${o}`);const n=e.getContext().join(".");r.insertAdjacentHTML("beforeend",`\n `),null===(i=r.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(r),document.body.addEventListener("click",()=>{try{t.removeChild(r)}catch(e){}},{capture:!0,once:!0}),document.body.addEventListener("contextmenu",()=>{try{t.removeChild(r)}catch(e){}},{capture:!0,once:!0})};t.addEventListener("contextmenu",e=>{i(),e.preventDefault()});let r=null;t.addEventListener("touchstart",()=>{r=setTimeout(()=>{i(),r=null},800)}),t.addEventListener("touchend",()=>{r&&(clearTimeout(r),r=null)})})}"`;var Ge=function(e,t,i,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const Xe=(e,t)=>{const i=()=>{if(ue.loaded.get()){const i=new r.ModelPath(t),o=t.schema.hook(Te,i,t.data,e),n=t.schema.category(i);return o[1]?`
        \n
        ${o[1]}
        \n
        ${o[2]}
        \n
        `:o[2]}return'
        '},o=e.register(r=>{ue.loaded.watchRun(t=>{t?e.mount(r,i(),!1):new Promise(e=>setTimeout(e,100)).then(()=>{ue.loaded.get()||e.mount(r,i(),!1)})}),ue.treeMinimized.watch(()=>{e.mount(r,i(),!1)}),t.addListener({invalidated(){e.mount(r,i(),!1)}}),me.biome_noise.biomeColors.watch(()=>{e.mount(r,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 r,o;const s=(null!=i?i:"").trim().split(" ");return(null!==(o=null===(r=ue.collections.get())||void 0===r?void 0:r.get(a))&&void 0!==o?o:[]).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),re(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
        `},Ke={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,r)=>e.hook(this,t.push(r),i)):i},map({children:e},t,i){if(void 0===i)return;let r={};return Object.keys(i).forEach(o=>r[o]=e.hook(this,t.push(o),i[o])),r},object({getActiveFields:e},t,i){if(null==i||"object"!=typeof i)return i;let r={};const o=e(t);return Object.keys(o).filter(e=>o[e].enabled(t)).forEach(e=>{r[e]=o[e].hook(this,t.push(e),i[e])}),r}},Ze=(e,t)=>{const i=e=>{const i=t.schema.hook(Ke,new r.ModelPath(t),t.data);ue.jsonOutput.set(JSON.stringify(i,null,2)),e.value=ue.jsonOutput.get()},o=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
        `},Qe=(e,t)=>`
        {const e=ue.preview.get();if(e&&e.path&&e.path.withModel(t).get()){const i=r.getContext("2d"),o=e.path.withModel(t).get();e.state=JSON.parse(JSON.stringify(o));const[n,a]=e.getSize();r.width=n,r.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:o}),ue.preview.watchRun(t=>{var r,n;t&&(t.redraw=o,o(),e.mount(i.querySelector(".panel-controls"),`\n ${null!==(n=null===(r=ue.preview.get())||void 0===r?void 0:r.menu(e,o))&&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/r.clientWidth,c=(e.offsetY-n[1])*a/r.clientHeight;0===s&&0===c||(null===(i=ue.preview.get())||void 0===i||i.onDrag(s,c),o())}n=[e.offsetX,e.offsetY]}}),i.addEventListener("mouseup",e=>{n=void 0})})}">\n
        \n \n
        `,et=(tt={base(){},map({config:e},t,i){var o,n,a;if("block_state_map"===(null===(o=e.validation)||void 0===o?void 0:o.validator)){const o=Object(r.relativePath)(t,e.validation.params.id).get(),s=t.getModel().errors,c=null!==(a=(null!==(n=ue.blockStateRegistry[o])&&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.assign(Object.assign({},tt),{choice(e,t,i,...r){var o;(null!==(o=tt.choice)&&void 0!==o?o:tt.base)(e,t,i,...r),e.switchNode.hook(this,t,i,...r)},list(e,t,i,...r){var o;(null!==(o=tt.list)&&void 0!==o?o:tt.base)(e,t,i,...r),Array.isArray(i)&&i.forEach((i,o)=>e.children.hook(this,t.push(o),i,...r))},map(e,t,i,...r){var o;(null!==(o=tt.map)&&void 0!==o?o:tt.base)(e,t,i,...r),"object"==typeof i&&Object.keys(i).forEach(o=>e.children.hook(this,t.push(o),i[o],...r))},object(e,t,i,...r){var o;if((null!==(o=tt.object)&&void 0!==o?o:tt.base)(e,t,i,...r),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],...r)})}}));var tt;const it=e=>{const t=pe[ue.model.get().id];t.listeners=[];const i=()=>ue.preview.get()?Ae(e,{direction:"vertical",sizes:[60,40]},[Ze(e,t),Qe(e,t)]):Ze(e,t),o=()=>{var e;const i=ue.preview.get(),r=null===(e=null==i?void 0:i.path)||void 0===e?void 0:e.withModel(t);r&&r.get()&&(null==i?void 0:i.active(r))||ue.preview.set(null)};t.addListener({invalidated:()=>{o(),t.schema.hook(et,new r.ModelPath(t,new r.Path),t.data,t.errors)}}),ue.schemasLoaded.watch(e=>{e&&(t.validate(),t.invalidate(),o())},"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((r,o)=>{r&&o||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]},[Xe(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,r){return new(i||(i=Promise))((function(o,n){function a(e){try{c(r.next(e))}catch(e){n(e)}}function s(e){try{c(r.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const ot=b.models.filter(e=>!0===e.category),nt=()=>rt(void 0,void 0,void 0,(function*(){var e,t;const i=location.pathname.split("/").filter(e=>e),r=new URLSearchParams(location.search),o=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&&ot.map(e=>e.id).includes(i[0]))ue.model.set(ot.find(e=>e.id===i[0])),a=ve;else{s="tree";const o=null!==(e=b.models.find(e=>e.id===i.join("/")))&&void 0!==e?e:null;if(ue.model.set(o),o){if(r.has("q"))try{const e=atob(null!==(t=r.get("q"))&&void 0!==t?t:"");pe[o.id].reset(JSON.parse(e))}catch(e){}a=it,n=E("title.generator",[E(o.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(o,a(d),!0)}));window.addEventListener("popstate",nt),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),nt()}}),nt()})}]); //# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/js/bundle.js.map b/js/bundle.js.map index 5f6937a1..aad153ef 100644 --- a/js/bundle.js.map +++ b/js/bundle.js.map @@ -1 +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/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","IntProvider","FloatProvider","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","min_inclusive","max_exclusive","mean","deviation","plateau","max_inclusive","map","absolute","above_bottom","below_top","inner","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","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","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","baseline","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","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","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","outer_wall_distance","distribution_points","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","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","_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","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","keysModel","renderHtml","onFalse","onTrue","pathWithChoiceContext","suffix","pathLocale","onAdd","onAddBottom","childValue","removeId","childPath","cPrefix","cSuffix","cBody","help","contextMenu","keyPath","blockState","parsed","filterKey","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","visibleKeys","Generator","getSideContent","validatePreview","sideContent","getAll","categories","router","urlParts","urlParams","URLSearchParams","getElementById","renderer","panel","has","atob","Element","hasAttribute","pushState"],"mappings":"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O,M,6BCpCzDjU,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,K,6BCAtDP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqb,qBAAkB,EAwR1Brb,EAAQqb,gBAvRR,SAAyB3V,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,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,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,O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,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,+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,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,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,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,oBAEJH,EAAYG,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,WAEJH,EAAYG,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,Y,6BChkBRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQub,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxBvK,EAAW,EAAQ,GACnBwK,EAAc,EAAQ,IACtB2G,EAAc,EAAQ,IACtBC,EAAkB,EAAQ,IAC1BsL,EAAiB,EAAQ,IACzBjS,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAC1BuG,E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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.IntProvider = exports.FloatProvider = 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 exports.FloatProvider = (config) => ObjectWithType('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 min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\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 schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\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 schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\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 const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\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: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': {\r\n height: Reference('height_provider')\r\n }\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 separator: core_1.Opt(Reference('text_component')),\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 separator: core_1.Opt(Reference('text_component')),\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 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\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 const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: 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 const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\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 y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\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': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\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.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\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.IntProvider({ min: 0, max: 8 }),\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 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.IntProvider({ min: 1, max: 128 }),\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.IntProvider(),\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.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\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.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\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.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\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.IntProvider({ min: 0, max: 128 }),\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 outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\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.IntProvider()\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.IntProvider({ min: 0, max: 60 }),\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.IntProvider()\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': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\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_provider'),\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.IntProvider({ min: 1, max: 64 }),\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.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\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.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\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.IntProvider({ min: 0, max: 24 })\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:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\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.IntProvider(),\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 size: Common_1.IntProvider({ min: 0 })\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, min: 0 }),\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, min: 0 }),\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 { 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';\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 (false /* 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 +{"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/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","IntProvider","FloatProvider","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","min_inclusive","max_exclusive","mean","deviation","plateau","max_inclusive","map","absolute","above_bottom","below_top","inner","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","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","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","baseline","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","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","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","outer_wall_distance","distribution_points","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","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","_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","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","keysModel","renderHtml","onFalse","onTrue","pathWithChoiceContext","suffix","pathLocale","onAdd","onAddBottom","childValue","removeId","childPath","cPrefix","cSuffix","cBody","help","contextMenu","keyPath","blockState","parsed","filterKey","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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O,M,6BCpCzDjU,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,K,6BCAtDP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqb,qBAAkB,EAwR1Brb,EAAQqb,gBAvRR,SAAyB3V,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,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,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,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,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,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sB,6BCtRRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQub,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxBvK,EAAW,EAAQ,GACnBwK,EAAc,EAAQ,IACtBC,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAahC1gB,EAAQub,YAZR,SAAqB9V,EAASC,GAE1BkQ,EAASnT,kBAAkBgD,EAASC,GACpC6a,EAAa7K,sBAAsBjQ,EAASC,GAC5Cya,EAAcQ,uBAAuBlb,EAASC,GAC9C0a,EAAYQ,qBAAqBnb,EAASC,GAC1C2a,EAAYQ,qBAAqBpb,EAASC,GAC1C4a,EAAaQ,sBAAsBrb,EAASC,GAC5C8a,EAASO,kBAAkBtb,EAASC,GACpC+a,EAAOO,gBAAgBvb,EAASC,GAChCgb,EAAgBO,yBAAyBxb,EAASC,K,6BCrBtD9E,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ2gB,4BAAyB,EACjC,MAAM1d,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GACnB2K,EAAe,EAAQ,IA4L7BvgB,EAAQ2gB,uBA3LR,SAAgClb,EAASC,GACrC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,cAAe5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACzDmb,QAASje,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7Cob,KAAMle,EAAO8C,WAAW,CACpB+P,KAAMnQ,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC1D+P,IAAKhT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEyI,SAAU,CAAEvB,SAAU,iBAAkB7G,GAAI,CAAC,MAAO,CAAEC,KAAM,gBAEzH6a,MAAOxb,EAAU,kBACjByb,YAAazb,EAAU,kBACvB0b,WAAYre,EAAOkD,IAAIR,KACvB4b,MAAOte,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,OAAQ,YAAa,WAC3D0Z,WAAYve,EAAOkD,IAAIlD,EAAO2F,eAC9B6Y,iBAAkBxe,EAAOkD,IAAIlD,EAAO2F,eACpCqC,OAAQhI,EAAOkD,IAAIlD,EAAO2F,iBAC1B,CACAnC,QAAS,KAAM,CACX0a,KAAM,CACFrL,KAAM,mBAEVsL,MAAO,GACPC,YAAa,QAGrBK,OAAQze,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mBACvEyb,SAAU1e,EAAOmD,QAAQT,IAAcC,EAAU,yBACjDgc,aAAc3e,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAOyD,SAASf,OAEzDkc,QAAS5e,EAAOkD,IAAIlD,EAAO8C,WAAW,CAClC+b,SAAU7e,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBACzE6b,KAAM9e,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mBACrF6Q,QAAS9T,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eACxF8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,SAEzD,CAAEJ,QAAS,gBAAkB,CAC5BC,QAAS,KAAM,CACXkb,SAAU,CACNM,YAAa,CACTC,QAAS,4BAKzBzc,EAAQI,SAAS,uBAAwB5C,EAAO8C,WAAW,CACvDmc,QAASvc,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMR,EAAY3E,IAAI,0BAC7E2L,WAAYzJ,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrC,CAAC9C,EAAOiI,QAAS,CAAC,MAAO,CAAE3E,KAAM,YACjC,CAACtD,EAAOkI,MAAO,CACX,+BAAgC,CAC5B9C,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEic,gBAAiBlf,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACzDkP,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,yBAA0B,CACtB8b,OAAQze,EAAOkD,IAAIP,EAAU,qBAC7Bwc,QAASnf,EAAOkD,IAAIP,EAAU,qBAC9Byc,MAAOpf,EAAOkD,IAAIP,EAAU,sBAEhC,0BAA2B,CACvBoQ,OAAQ/S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAE3E,8BAA+B,CAC3Boc,KAAMrf,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,eACpCya,GAAItf,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,gBAEtC,gCAAiC,CAC7B0a,QAASvf,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAOkD,IAAIP,EAAU,wBAE7D,6BAA8B,CAC1BJ,MAAOvC,EAAOkD,IAAIyP,EAASjT,UAE/B,yBAA0B,CACtBmT,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,kCAAmC,CAC/B6c,SAAUxf,EAAOkD,IAAIP,EAAU,qBAC/B8c,OAAQzf,EAAOkD,IAAIP,EAAU,sBAEjC,4BAA6B,CACzB8D,QAASzG,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAAmBjD,EAAO8C,WAAW,CACxHkR,UAAWrB,EAASjT,QACpBgM,SAAUiH,EAASjT,aAG3B,wBAAyB,CACrB0F,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEgQ,MAAOjT,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAcA,IAAc,CAAEU,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,gBAE7I,2BAA4B,CACxB+G,OAAQrK,EAAOkD,IAAIyP,EAASjT,SAC5BmT,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5B0I,OAAQrL,EAAOkD,IAAIP,EAAU,sBAEjC,iCAAkC,CAC9B4C,OAAQvF,EAAOkD,IAAIP,EAAU,qBAC7B+c,aAAc1f,EAAOkD,IAAIP,EAAU,6BAEvC,0BAA2B,CACvBkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5B4C,OAAQvF,EAAOkD,IAAIP,EAAU,qBAC7BkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,gCAAiC2a,EAAa5K,eAC9C,8BAA+B,CAC3BiN,MAAO3f,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChC8c,MAAO5f,EAAOkD,IAAIyP,EAASjT,SAC3BmgB,SAAU7f,EAAOkD,IAAIyP,EAASjT,SAC9BogB,KAAM9f,EAAOkD,IAAIyP,EAASjT,YAE9BqgB,MAAO/f,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,qBAEhD,oCAAqC,CACjCqd,MAAOhgB,EAAOkD,IAAIyP,EAASjT,SAC3BoT,WAAY9S,EAAOkD,IAAIyP,EAASjT,SAChCmT,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5Bsd,oBAAqBjgB,EAAOkD,IAAIyP,EAASjT,SACzC6f,QAASvf,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAOkD,IAAIP,EAAU,wBAE7D,uBAAwB,CACpB4R,SAAUvU,EAAOkD,IAAIyP,EAASjT,SAC9BgM,SAAU1L,EAAOkD,IAAIyP,EAASjT,UAElC,qBAAsB4d,EAAa5K,eACnC,0BAA2B,CACvB6B,SAAUvU,EAAOkD,IAAIyP,EAASjT,SAC9BwgB,QAASlgB,EAAOkD,IAAIP,EAAU,uBAC9Bwd,OAAQngB,EAAOkD,IAAIP,EAAU,wBAEjC,yBAA0B,CACtByC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEgQ,MAAOjT,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAcA,IAAc,CAAEU,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,eACzIuP,KAAM7S,EAAOkD,IAAIP,EAAU,mBAC3B2R,SAAUtU,EAAOkD,IAAIP,EAAU,wBAEnC,+BAAgC,CAC5B0I,OAAQrL,EAAOkD,IAAIP,EAAU,qBAC7B4C,OAAQvF,EAAOkD,IAAIP,EAAU,sBAEjC,iCAAkC,CAC9B4C,OAAQvF,EAAOkD,IAAIP,EAAU,qBAC7B+c,aAAc1f,EAAOkD,IAAIP,EAAU,6BAEvC,4BAA6B,CACzByd,OAAQ1d,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAEhE,iCAAkC,CAC9BmC,MAAOpF,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChCsC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEuI,IAAKxL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,oBAExE4P,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,yBAA0B2a,EAAa5K,eACvC,6BAA8B,CAC1BtN,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aAE1E,0BAA2B,CACvB4P,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,4BAA6B,CACzB4C,OAAQvF,EAAOkD,IAAIP,EAAU,sBAEjC,wBAAyB,CACrB4C,OAAQvF,EAAOkD,IAAIP,EAAU,sBAEjC,2BAA4B,CACxB4R,SAAUvU,EAAOkD,IAAIyP,EAASjT,UAElC,uBAAwB,CACpBmT,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,2BAA4B,CACxB6c,SAAUxf,EAAOkD,IAAIP,EAAU,qBAC/BkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,4BAA6B2a,EAAa5K,iBAE/C,CAAEnP,QAAS,gBACf,CAAE2G,SAAU,YAAa3G,QAAS,iB,6BC9LzC5F,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ4gB,0BAAuB,EAC/B,MAAM3d,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GAgBzB5V,EAAQ4gB,qBAfR,SAA8Bnb,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,YAAa5C,EAAOqa,aAAa1X,EAAU,aAAc,CAAEoC,cAAe,eAC3FvC,EAAQI,SAAS,YAAa5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACvDud,UAAW3d,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,yBAC/D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,cAC1B,CAACtD,EAAOkI,MAAOyK,EAAS5S,gBACzB,CAAEmK,SAAU,YAAa3G,QAAS,cAAgB,CACjDC,QAAS,KAAM,CACX6c,UAAW,8BACX9a,OAAQ,c,6BCfpB5H,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ6gB,0BAAuB,EAC/B,MAAM5d,EAAS,EAAQ,GACjBsgB,EAAgB,EAAQ,IACxB3N,EAAW,EAAQ,GA0QzB5V,EAAQ6gB,qBAzQR,SAA8Bpb,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CgH,EAAa,CACfA,WAAYzJ,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,qBAE/C4d,EAAyB,CAC3BC,UAAWxgB,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,sBAC7C8G,GAEP,SAASgX,EAAkBC,EAAYC,EAAcC,GACjD,MAAMnZ,EAAQ,GACRoZ,EAAuBC,GAAoBre,EAC5C3E,IAAI6iB,GACJhQ,OAAOxS,IACR,IAAIkG,EAEJ,OADqD,QAA5BA,EAAKqc,EAAW5iB,IAAIK,UAAuB,IAAPkG,EAAgBA,EAAK,IAC3D2L,MAAM1S,GAAKwjB,EAAgBjF,SAASve,MAE/D,IAAK,MAAOyjB,GAAW,OAAE3K,EAAM,SAAED,MAAemK,EAAcrK,eAAgB,CAC1E,MAAM6K,EAAkB,IAAI1K,KAAWD,GACvC1O,EAAMnE,KAAK,CACPwB,MAAOgD,GAAQA,EAAK8T,WAAW9d,IAAI,IAAIkC,EAAO+O,KAAK,CAAC,YAAcgS,EAClE7c,KAAM0c,EAAQC,EAAoBC,MAI1C,OADArZ,EAAMnE,KAAK,CAAEwB,MAAOuH,IAAK,EAAMnI,KAAM0c,EAAQD,KACtC3gB,EAAO6R,WAAWpK,GAE7B,MAAMuZ,EAAsBP,EAAkBH,EAAcxK,eAAgB,sBAAuB7R,GAAQvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,aAAgBgN,MAAQhN,EAAO,0BACxLgd,EAAqBR,EAAkBH,EAAczK,cAAe,qBAAsB5R,GAAQvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,aAAgBgN,MAAQhN,EAAO,yBACrLid,EAAyBT,EAAkBH,EAActK,kBAAmB,gBAAiB/R,GAAQvB,EAAW,CAAEmC,KAAMZ,KACxHkd,EAAuBV,EAAkBH,EAAcvK,gBAAiB,cAAe9R,GAAQvB,EAAW,CAAEmC,KAAMZ,KACxHzB,EAAQI,SAAS,aAAc5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACxDmB,KAAMjE,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMR,EAAY3E,IAAI,yBACrFsjB,MAAOphB,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3Due,MAAO1O,EAASjT,MAAM,CAAEkF,eAAe,EAAMjB,SAAS,IACtD2d,YAAathB,EAAOkD,IAAIyP,EAASjT,MAAM,CAAEiE,SAAS,KAClDwH,QAASnL,EAAOyD,SAASd,EAAU,kBAChC4d,GACJ,CAAErW,SAAU,OAAQ3G,QAAS,cAAgB,CAC5CC,QAAS,KAAM,CACX6d,MAAO,EACPlW,QAAS,CAAC,CACFlH,KAAM,iBACNzG,KAAM,0BAItBgjB,UAAWxgB,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,oBACjD,CAAEY,QAAS,eAAiB,CAC3BC,QAAS,KAAM,CACX4d,MAAO,CAAC,CACAC,MAAO,EACPlW,QAAS,CAAC,CACFlH,KAAM,iBACNzG,KAAM,2BAK9B,MAAM+jB,EAAY,CACd1Z,QAASC,IACL,IAAIzD,EACJ,OAAoC,QAA3BA,EAAKyD,EAAKgC,MAAMhM,aAA0B,IAAPuG,OAAgB,EAASA,EAAGiE,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsBuT,SAAS/T,EAAKxE,KAAK,QAAQxF,SAG/G0E,EAAQI,SAAS,aAAc5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACxDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,0BAC1Due,OAAQxhB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAAM+c,IAC5EE,QAASzhB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS4d,IACrE,CAACvhB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,yBAA0B,CACtB6E,SAAU/M,EAAOyD,SAASd,EAAU,kBACjC4d,GAEP,oBAAqB,CACjB/iB,KAAMkF,OACH6d,GAEP,kBAAmB,CACfxT,SAAU/M,EAAOyD,SAASd,EAAU,kBACjC4d,GAEP,iBAAkB,CACd/iB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aACvDsd,GAEP,uBAAwB,CACpB/iB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,oBACvDsd,GAEP,qBAAsB,CAClBxT,SAAU/M,EAAOyD,SAASd,EAAU,kBACjC4d,GAEP,gBAAiB,CACb/iB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC1Dye,OAAQ1hB,EAAOkD,IAAIlD,EAAO2F,kBACvB4a,KAGZ,CAAEhd,QAAS,eAAiB,CAC3BC,QAAS,KAAM,CACXS,KAAM,iBACNzG,KAAM,uBAGdgF,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3D+b,SAAUoC,EACV,CAACjhB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,aAC1B,CAACtD,EAAOkI,MAAO,CACX,wBAAyB,CACrBjC,YAAavD,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACjE0G,QAASjH,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMR,EAAY3E,IAAI,qCAC7E8L,WAAY5J,EAAO6C,IAAI7C,EAAO8C,WAAW,CACrC+G,gBAAiB7J,EAAO6C,IAAI7C,EAAO0D,aAAc,CAC7CmE,QAASC,GAA6C,kCAArCA,EAAKgC,MAAMxG,KAAK,WAAWxF,QAEhDiM,MAAO/J,EAAO6C,IAAI7C,EAAO0D,aAAc,CACnCmE,QAASC,GAA6C,wCAArCA,EAAKgC,MAAMxG,KAAK,WAAWxF,QAEhDkM,YAAahK,EAAO6C,IAAI7C,EAAO0D,aAAc,CACzCmE,QAASC,GAA6C,wCAArCA,EAAKgC,MAAMxG,KAAK,WAAWxF,UAEhD,CACA+J,QAASC,GAAuC,wBAA/BA,EAAKxE,KAAK,WAAWxF,WAEvC2L,GAEP,sBAAuB,CACnBd,OAAQwY,KACL1X,GAEP,qBAAsB,CAClBd,OAAQwY,EACRlX,IAAKjK,EAAOyD,SAASzD,EAAO8C,WAAW,CACnC6F,OAAQjG,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEkH,SAAU,CAAEzM,OAAQ,cAAeqK,KAAM,CAAC,MAAO,MAAO,MAAO,CAAExE,KAAM,eAC7HvB,OAAQW,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEkH,SAAU,oBAChEC,GAAIzH,EAAW,CAAEmC,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAEtB,QAAS,sBACXkG,GAEP,uBAAwB,CACpBrE,MAAO1C,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAC3DoC,WAAYrF,EAAOyD,SAASf,EAAW,CAAEK,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,MAAO,CAAEC,KAAM,iBACzGmG,GAEP,6BAA8B,CAC1BW,aAAcpK,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBAC1FwG,GAEP,gCAAiC,CAC7BY,OAAQsI,EAASjT,MAAM,CAAEkF,eAAe,IACxC0F,SAAUtK,EAAOkD,IAAIlD,EAAO2F,kBACzB8D,GAEP,4BAA6B,CACzBc,YAAavK,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,uBAC3C2F,WAAYxK,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,oBAC1C4F,KAAMzK,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KAC9C+G,cAAe1K,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACvDgH,qBAAsB3K,EAAOkD,IAAIlD,EAAO2F,kBACrC8D,GAEP,6BAA8B,CAC1BlE,OAAQ2b,KACLzX,GAEP,wBAAyB,CACrBmB,MAAO+H,EAASjT,MAAM,CAAEiF,QAAQ,OAC7B8E,GAEP,4BAA6B,CACzBoB,MAAO8H,EAASjT,MAAM,CAAEiF,QAAQ,IAChCiG,MAAO5K,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,QAC5C8F,GAEP,2BAA4B,CACxBqB,UAAW9K,EAAOyD,SAASd,EAAU,0BAClC8G,GAEP,yBAA0B,CACtB0B,QAASnL,EAAOyD,SAASd,EAAU,kBAChC8G,GAEP,sBAAuB,CACnBoB,MAAO8H,EAASjT,MAAM,CAAEkF,eAAe,OACpC6E,GAEP,uBAAwB,CACpB4B,OAAQsH,EAASjT,MAAM,CAAEsE,YAAY,OAClCyF,GAEP,2BAA4B,CACxBjM,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAC1DqI,KAAMtL,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,MAElD,qBAAsB,CAClB4B,OAAQvF,EAAOkD,IAAIge,GACnB3V,KAAMvL,EAAOyD,SAASd,EAAU,mBAChC0F,QAASrI,EAAOkD,IAAIlD,EAAO2F,kBACxB8D,GAEP,qBAAsB,CAClBlE,OAAQvF,EAAOkD,IAAIge,GACnB1jB,KAAMwC,EAAOkD,IAAIP,EAAU,sBACxB8G,GAEP,oBAAqB,CACjB+B,IAAK9I,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEyI,SAAU,CAAEvB,SAAU,wBACjET,GAEP,4BAA6B,CACzBhD,QAASzG,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAO8C,WAAW,CAClDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAC1DyI,SAAUiH,EAASjT,eAEpB+J,KAGZ,CAAES,SAAU,WAAY3G,QAAS,aAAe,CAC/CC,QAAS,KAAM,CACXqb,SAAU,sBACVhU,MAAO,OAGfrI,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC5Dud,UAAWW,EACX,CAAChhB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,cAC1B,CAACtD,EAAOkI,MAAO,IACRyK,EAAS5S,eACZ,8BAA+B,CAC3BwF,OAAQ2b,EACR5b,UAAW3C,EAAU,qBAEzB,0BAA2B,CACvB4C,OAAQ2b,EACR1b,OAAQxF,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,cAAgB4P,EAASjT,MAAM,CAAEiF,QAAQ,QAGjG,CAAEuF,SAAU,YAAa3G,QAAS,cAAgB,CACjDC,QAAS,KAAM,CACX6c,UAAW,0BACXta,OAAQ,QAGhBvD,EAAQI,SAAS,qBAAsB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAChE6e,UAAWjf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC/DzF,KAAMkF,IACN+F,OAAQkK,EAASjT,MAAM,CAAEiF,QAAQ,IACjCid,UAAWlf,EAAW,CAAEmC,KAAM,CAAC,WAAY,gBAAiB,oBAC5Dgd,KAAM7hB,EAAOoa,aAAa1X,EAAW,CAAEmC,KAAM,WAC9C,CAAEtB,QAAS,uBAAyB,CACnCC,QAAS,KAAM,CACXme,UAAW,+BACXnkB,KAAM,GACNiL,OAAQ,EACRmZ,UAAW,WACXC,KAAM,kB,6BC1QlBlkB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ8gB,2BAAwB,EAChC,MAAM7d,EAAS,EAAQ,GAsBvBjD,EAAQ8gB,sBArBR,SAA+Brb,EAAS6J,GAEpC7J,EAAQI,SAAS,cAAe5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACzDgf,KAAM9hB,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC/Bif,YAAa/hB,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,IAAM,CAAEjB,QAAS,IAAM,IAC/F4a,YAAape,EAAO2C,UAAUH,EAAS,oBACvC,CACAgB,QAAS,KAAM,CACXue,YAAa,EACb3D,YAAa,SAGrB,CACA5a,QAAS,KAAM,CACXse,KAAM,CACFC,YAAa,EACb3D,YAAa,W,6BCnB7BzgB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ+gB,uBAAoB,EAC5B,MAAM9d,EAAS,EAAQ,GAmGvBjD,EAAQ+gB,kBAlGR,SAA2Btb,EAASC,GAChC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,SAAU5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACpDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,uBAC1D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,4BAA6B,CACzB8Z,MAAOhiB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,eAAgBiY,YAAY,KACjE9R,QAAShL,EAAOyD,SAASf,KACzBlE,IAAKwB,EAAOmD,QAAQT,IACpBC,EAAU,sBACVkV,OAAQlV,EAAU,kBAEtB,+BAAgC,CAC5Bqf,MAAOhiB,EAAOkD,IAAIR,KAClBuf,YAAajiB,EAAOyD,SAASd,EAAU,sBACvCkV,OAAQlV,EAAU,kBAEtB,qBAAsB,CAClBqf,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,qBAAsB,CAClBwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,oBAAqB,CACjBwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,6BAA8B,CAC1Bwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,yBAA0B,CACtBwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D4H,MAAO7K,EAAO0D,WAAW,CAAEC,SAAS,KAExC,qBAAsB,CAClBqe,MAAOhiB,EAAOkD,IAAIR,KAClBsC,KAAMrC,EAAU,4BAChByf,SAAUzf,EAAU,4BACpBkV,OAAQlV,EAAU,oBAG3B,CAAEY,QAAS,WAAa,CACvBC,QAAS,KAAM,CACXS,KAAM,iCAGdzB,EAAQI,SAAS,oBAAqB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CAC/D,CACIE,KAAM,SACNC,KAAMvB,EAAU,4BAChBwB,OAAQC,GAAKA,EAAE,IAEnB,CACIH,KAAM,OACNC,KAAMlE,EAAOyD,SAASd,EAAU,6BAChCwB,OAAQC,GAAK,CAACA,MAElB,CACAZ,QAAS,KAAM,CACXqP,KAAM,uBAGdrQ,EAAQI,SAAS,2BAA4B5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACtE+P,KAAM7S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WACrEuI,IAAKxL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBACpE,CACAO,QAAS,KAAM,CACXqP,KAAM,uBAGdrQ,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3D+P,KAAMnQ,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC1D4H,MAAO7K,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,OACpF,CACAA,QAAS,KAAM,CACXqP,KAAM,yB,6BCjGlBlV,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQghB,qBAAkB,EAC1B,MAAM/d,EAAS,EAAQ,GA+BvBjD,EAAQghB,gBA9BR,SAAyBvb,EAASC,GAC9B,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C4f,EAAWpe,GAASjE,EAAO6C,IAAI7C,EAAO8C,WAAW,CACnDuF,QAASrI,EAAOkD,IAAIlD,EAAO2F,eAC3BoX,OAAQ/c,EAAOyD,SAASzD,EAAO+D,WAAW,CACtC,CACIE,KAAM,SACNC,KAAMxB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,EAAMmQ,UAAU,KAC1EjQ,OAAQC,GAAKA,EAAEf,IAEnB,CACIY,KAAM,SACNC,KAAMlE,EAAO8C,WAAW,CACpBO,GAAIX,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,EAAMmQ,UAAU,EAAMyI,cAAc,KAC5FyF,SAAUtiB,EAAO2F,gBAErBxB,OAAQC,IAAK,CAAGf,GAAIe,SAG7B,CAAEb,QAAS,QAAU,CACpBC,QAAS,KAAM,CACXuZ,OAAQ,OAGhBva,EAAQI,SAAS,YAAayf,EAAQ,UACtC7f,EAAQI,SAAS,kBAAmByf,EAAQ,gBAC5C7f,EAAQI,SAAS,YAAayf,EAAQ,UACtC7f,EAAQI,SAAS,eAAgByf,EAAQ,cACzC7f,EAAQI,SAAS,WAAYyf,EAAQ,W,6BC/BzC1kB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQihB,8BAA2B,EACnC,MAAMhe,EAAS,EAAQ,GA2KvBjD,EAAQihB,yBA1KR,SAAkCxb,EAASC,GACvC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C8f,EAAmBne,IAAQ,IAAIC,EAAI,OAAOD,aAAa6M,MAAQsR,EAAgBne,EAAE,IAA8D,QAAvDC,EAAKD,aAA6B,EAASA,EAAEoe,YAAyB,IAAPne,EAAgBA,EAAmB,iBAAND,EAAiB,GAAKA,aAA6B,EAASA,EAAEmN,YACxP/O,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CAC5D,CACIE,KAAM,SACNC,KAAMvB,EAAU,yBAChBwB,OAAQC,GAAKA,aAAa6M,MAAyB,iBAAT7M,EAAE,GAAkBA,EAAE,GAAK,CAAEoe,KAAMD,EAAgBne,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAEoe,KAAMD,EAAgBne,KAEhK,CACIH,KAAM,OACNC,KAAMvB,EAAU,uBAChBwB,OAAQC,GAAK,CAACA,IAElB,CACIH,KAAM,SACNS,SAAU,EACVR,KAAMxB,IACNyB,OAAQoe,GAEZ,CACIte,KAAM,SACNC,KAAMlE,EAAO0D,aACbS,OAAQC,IACJ,MAAM1F,EAAI+jB,WAAWF,EAAgBne,IACrC,OAAOse,SAAShkB,GAAKA,EAAO0F,EAAI,EAAI,IAG5C,CACIH,KAAM,UACNC,KAAMlE,EAAO2F,cACbxB,OAAQC,IACJ,MAAMpF,EAAIujB,EAAgBne,GAC1B,MAAa,SAANpF,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEuE,QAAS,mBAAqB,CAC/BC,QAAS,KAAM,CACXgf,KAAM,QAGd,MAAMG,EAAe,CACjBC,KAAM5iB,EAAOkD,IAAIlD,EAAO2F,eACxBkd,OAAQ7iB,EAAOkD,IAAIlD,EAAO2F,eAC1Bmd,WAAY9iB,EAAOkD,IAAIlD,EAAO2F,eAC9Bod,cAAe/iB,EAAOkD,IAAIlD,EAAO2F,eACjCqd,WAAYhjB,EAAOkD,IAAIlD,EAAO2F,eAC9Bsd,UAAWjjB,EAAOkD,IAAIR,KACtBwgB,WAAYljB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCqgB,OAAQzgB,EAAW,CAAEmC,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,uBACtG,CAAC7E,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,WAC1B,CAACtD,EAAOkI,MAAO,CACX,YAAe,CACXhK,MAAOwE,KAEX,kBAAqB,CACjBxE,MAAOwE,KAEX,UAAa,CACTxE,MAAOwE,KAEX,SAAY,CACRxE,MAAOwE,KAEX,YAAe,CACXxE,MAAOwE,EAAW,CAAEK,UAAW,UAAWC,OAAQ,CAAEogB,cAAc,EAAMC,cAAc,MAE1F,gBAAmB,CACfnlB,MAAOwE,EAAW,CAAEK,UAAW,UAAWC,OAAQ,CAAEogB,cAAc,EAAMC,cAAc,UAIlGC,WAAYtjB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCqgB,OAAQzgB,EAAW,CAAEmC,KAAM,CAAC,YAAa,YAAa,iBACtD,CAAC7E,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,WAC1B,CAACtD,EAAOkI,MAAO,CACX,UAAa,CACThK,MAAO8B,EAAOkD,IAAIP,EAAU,oBAEhC,UAAa,CACTzE,MAAO8B,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEhG,OAAQ,2BAEvE,YAAe,CACXkB,MAAO8B,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChCtF,KAAMwC,EAAOkD,IAAIR,KACjBuB,KAAMjE,EAAOkD,IAAIR,KACjBW,GAAIrD,EAAOkD,IAAIR,aAK/BqH,MAAO/J,EAAOkD,IAAIP,EAAU,yBAEhCH,EAAQI,SAAS,wBAAyB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CACnE,CACIE,KAAM,OACNa,MAAOV,GAAkB,iBAANA,EACnBD,OAAQC,IAAK,CAAGoe,KAAM,KACtB9d,UAAW,EACXR,KAAMlE,EAAO8C,WAAW,CACpB0f,KAAM9f,OACHigB,KAGX,CACI1e,KAAM,cACNa,MAAOV,QAA6D/E,KAAvD+E,aAA6B,EAASA,EAAEmf,WACrDpf,OAAQC,IAAK,CAAGmf,UAAW,KAC3Brf,KAAMlE,EAAO8C,WAAW,CACpBygB,UAAW7gB,IACX8gB,KAAMxjB,EAAOkD,IAAIP,EAAU,2BACxBggB,KAGX,CACI1e,KAAM,QACNa,MAAOV,QAAyD/E,KAAnD+E,aAA6B,EAASA,EAAEmE,OACrDpE,OAAQC,IAAK,CAAGmE,MAAO,KACvBrE,KAAMlE,EAAO8C,WAAW,CACpByF,MAAOvI,EAAO8C,WAAW,CACrBtF,KAAMkF,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,SAAUxE,KAAM,WAAYyE,eAAe,KACrG+a,UAAW/gB,EAAW,CAAEK,UAAW,cACnC7E,MAAO8B,EAAOkD,IAAIR,UAEnBigB,KAGX,CACI1e,KAAM,WACNa,MAAOV,QAA4D/E,KAAtD+E,aAA6B,EAASA,EAAEsf,UACrDvf,OAAQC,IAAK,CAAGsf,SAAU,KAC1Bxf,KAAMlE,EAAO8C,WAAW,CACpB4gB,SAAUhhB,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,WAAYxE,KAAM,iBAC7E0e,KAGX,CACI1e,KAAM,UACNa,MAAOV,QAA2D/E,KAArD+E,aAA6B,EAASA,EAAEuf,SACrDxf,OAAQC,IAAK,CAAGuf,QAAS,KACzBzf,KAAMlE,EAAO8C,WAAW,CACpB6gB,QAASjhB,EAAW,CAAEmC,KAAM,UAAWiY,YAAY,OAChD6F,KAGX,CACI1e,KAAM,MACNa,MAAOV,QAAuD/E,KAAjD+E,aAA6B,EAASA,EAAE4O,KACrD7O,OAAQC,IAAK,CAAG4O,IAAK,KACrB9O,KAAMlE,EAAO8C,WAAW,CACpBkQ,IAAKtQ,EAAW,CAAEK,UAAW,aAC7BqC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyQ,UAAW,EAAGuH,WAAW,MACvFzV,OAAQvF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,SAAUxE,KAAM,eACvF2f,QAAS5jB,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eACxE4gB,UAAW7jB,EAAOkD,IAAIlD,EAAO2F,kBAC1Bgd,MAGZ,CAAEpf,QAAS,wBAAyBwB,cAAe,0BAA4B,CAC9EvB,QAAS,KAAM,CACXgf,KAAM,QAGdhgB,EAAQI,SAAS,sBAAuB5C,EAAO6C,IAAI7C,EAAOyD,SAASd,EAAU,mBAAoB,CAC7Fa,QAAS,IAAM,CAAC,CACRgf,KAAM,U,6BCzKtB7kB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqb,qBAAkB,EAqgB1Brb,EAAQqb,gBApgBR,SAAyB3V,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,+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,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,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,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,oBAEJH,EAAYG,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,WAEJH,EAAYG,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,Y,6BChkBRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQub,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxBvK,EAAW,EAAQ,GACnBwK,EAAc,EAAQ,IACtB2G,EAAc,EAAQ,IACtBC,EAAkB,EAAQ,IAC1BsL,EAAiB,EAAQ,IACzBjS,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAC1BuG,EAAa,EAAQ,IACrBC,EAAkB,EAAQ,IAkBhClnB,EAAQub,YAjBR,SAAqB9V,EAASC,GAE1BkQ,EAASnT,kBAAkBgD,EAASC,GACpCya,EAAcQ,uBAAuBlb,EAASC,GAC9C0a,EAAYQ,qBAAqBnb,EAASC,GAC1CshB,EAAgBG,yBAAyB1hB,EAASC,GAClDqhB,EAAYK,qBAAqB3hB,EAASC,GAC1C4sB,EAAeC,wBAAwB9sB,EAASC,GAChD2a,EAAYQ,qBAAqBpb,EAASC,GAC1C4a,EAAaQ,sBAAsBrb,EAASC,GAC5C6a,EAAa7K,sBAAsBjQ,EAASC,GAC5C8a,EAASO,kBAAkBtb,EAASC,GACpC+a,EAAOO,gBAAgBvb,EAASC,GAChCgb,EAAgBO,yBAAyBxb,EAASC,GAClDuhB,EAAWI,oBAAoB5hB,EAASC,GACxCwhB,EAAgBI,yBAAyB7hB,EAASC,K,6BC/BtD9E,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ2gB,4BAAyB,EACjC,MAAM1d,EAAS,EAAQ,GAmOvBjD,EAAQ2gB,uBAlOR,SAAgClb,EAASC,GACrC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C6hB,EAAkBtkB,EAAO+D,WAAW,CACtC,CACIE,KAAM,SACNC,KAAMlE,EAAOkD,IAAIP,EAAU,qBAC3BwB,OAAQC,IAAO,IAAIC,EAAIC,EAAI,OAAgF,QAAxEA,EAAqB,QAAfD,EAAKD,EAAE,UAAuB,IAAPC,OAAgB,EAASA,EAAGiB,iBAA8B,IAAPhB,EAAgBA,EAAK,KAE5I,CACIL,KAAM,OACNC,KAAMlE,EAAOyD,SAASd,EAAU,cAChCwB,OAAQC,GAAK,CAAC,CACNic,UAAW,8BACX/a,UAAWlB,MAGxB,CAAEb,QAAS,eACdf,EAAQI,SAAS,cAAe5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACzDmb,QAASje,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7Cob,KAAMle,EAAO8C,WAAW,CACpB+P,KAAMnQ,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC1D+P,IAAKhT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEyI,SAAU,CAAEvB,SAAU,iBAAkB7G,GAAI,CAAC,MAAO,CAAEC,KAAM,gBAEzH6a,MAAOxb,EAAU,kBACjByb,YAAazb,EAAU,kBACvB0b,WAAYre,EAAOkD,IAAIR,KACvB4b,MAAOte,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,OAAQ,YAAa,WAC3D0Z,WAAYve,EAAOkD,IAAIlD,EAAO2F,eAC9B6Y,iBAAkBxe,EAAOkD,IAAIlD,EAAO2F,eACpCqC,OAAQhI,EAAOkD,IAAIlD,EAAO2F,iBAC1B,CACAnC,QAAS,KAAM,CACX0a,KAAM,CACFrL,KAAM,mBAEVsL,MAAO,GACPC,YAAa,QAGrBK,OAAQze,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mBACvEyb,SAAU1e,EAAOmD,QAAQT,IAAcC,EAAU,yBACjDgc,aAAc3e,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAOyD,SAASf,OAEzDkc,QAAS5e,EAAOkD,IAAIlD,EAAO8C,WAAW,CAClC+b,SAAU7e,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBACzE6b,KAAM9e,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mBACrF6Q,QAAS9T,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eACxF8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,SAEzD,CAAEJ,QAAS,gBAAkB,CAC5BC,QAAS,KAAM,CACXkb,SAAU,CACNM,YAAa,CACTC,QAAS,4BAKzBzc,EAAQI,SAAS,uBAAwB5C,EAAO8C,WAAW,CACvDmc,QAASvc,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMR,EAAY3E,IAAI,0BAC7E2L,WAAYzJ,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCiS,OAAQ/U,EAAO6C,IAAIyhB,EAAiB,CAChCzc,QAASC,GAA6C,yBAArCA,EAAKgC,MAAMxG,KAAK,WAAWxF,QAEhD,CAACkC,EAAOiI,QAAS,CAAC,MAAO,CAAE3E,KAAM,YACjC,CAACtD,EAAOkI,MAAO,CACX,+BAAgC,CAC5B9C,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEic,gBAAiBlf,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACzDkP,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,yBAA0B,CACtB8b,OAAQ6F,EACRnF,QAASmF,EACTlF,MAAOkF,GAEX,0BAA2B,CACvBvR,OAAQ/S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAE3E,8BAA+B,CAC3Boc,KAAMrf,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACrEqc,GAAItf,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAEvE,gCAAiC,CAC7Bsc,QAASvf,EAAOkD,IAAIlD,EAAOyD,SAAS6gB,KAExC,6BAA8B,CAC1B/hB,MAAOI,EAAU,eAErB,yBAA0B,CACtBkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,kCAAmC,CAC/B6c,SAAU8E,EACV7E,OAAQ6E,GAEZ,4BAA6B,CACzB7d,QAASzG,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAAmBjD,EAAO8C,WAAW,CACxHkR,UAAWrR,EAAU,cACrB+I,SAAU/I,EAAU,mBAG5B,wBAAyB,CACrByC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEgQ,MAAOjT,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAcA,IAAc,CAAEU,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,gBAE7I,2BAA4B,CACxB+G,OAAQ1H,EAAU,cAClBkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5B0I,OAAQrL,EAAOkD,IAAIP,EAAU,sBAEjC,iCAAkC,CAC9B4C,OAAQ+e,EACR5E,aAAc1f,EAAOkD,IAAIP,EAAU,6BAEvC,0BAA2B,CACvBkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5B4C,OAAQ+e,EACRzR,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,gCAAiC,CAC7B2R,SAAUtU,EAAOkD,IAAIP,EAAU,wBAEnC,8BAA+B,CAC3Bgd,MAAO3f,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChC8c,MAAOjd,EAAU,cACjBkd,SAAUld,EAAU,cACpBmd,KAAMnd,EAAU,iBAEpBod,MAAO/f,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,qBAEhD,oCAAqC,CACjCqd,MAAOrd,EAAU,cACjBmQ,WAAYnQ,EAAU,cACtBkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5BkQ,KAAM7S,EAAOkD,IAAIP,EAAU,mBAC3B2R,SAAUtU,EAAOkD,IAAIP,EAAU,wBAEnC,+BAAgC,CAC5Bsd,oBAAqBtd,EAAU,cAC/B4c,QAASvf,EAAOkD,IAAIlD,EAAOyD,SAAS6gB,KAExC,uBAAwB,CACpB/P,SAAU5R,EAAU,sBACpB+I,SAAU/I,EAAU,eAExB,qBAAsB,CAClB2R,SAAUtU,EAAOkD,IAAIP,EAAU,wBAEnC,0BAA2B,CACvB4R,SAAU5R,EAAU,sBACpBud,QAASlgB,EAAOkD,IAAIP,EAAU,uBAC9Bwd,OAAQngB,EAAOkD,IAAIP,EAAU,wBAEjC,yBAA0B,CACtByC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEgQ,MAAOjT,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAcA,IAAc,CAAEU,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,eACzIuP,KAAM7S,EAAOkD,IAAIP,EAAU,mBAC3B2R,SAAUtU,EAAOkD,IAAIP,EAAU,wBAEnC,4CAA6C,CACzC4hB,WAAY7hB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAEpE,+BAAgC,CAC5BoI,OAAQrL,EAAOkD,IAAIP,EAAU,qBAC7B4C,OAAQ+e,GAEZ,0CAA2C,CACvCzR,KAAM7S,EAAOkD,IAAIP,EAAU,mBAC3B4C,OAAQ+e,GAEZ,iCAAkC,CAC9B/e,OAAQ+e,EACR5E,aAAc1f,EAAOkD,IAAIP,EAAU,6BAEvC,4BAA6B,CACzByd,OAAQ1d,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAEhE,yBAA0B,CACtBqR,SAAUtU,EAAOkD,IAAIP,EAAU,wBAEnC,6BAA8B,CAC1ByC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aAE1E,0BAA2B,CACvB4P,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,4BAA6B,CACzB4C,OAAQ+e,GAEZ,wBAAyB,CACrB/e,OAAQ+e,GAEZ,uBAAwB,CACpBE,WAAYF,EACZG,QAASH,EACTI,gBAAiB/hB,EAAU,eAE/B,4CAA6C,CACzC4C,OAAQvF,EAAOkD,IAAIP,EAAU,qBAC7BkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,2BAA4B,CACxB4R,SAAU5R,EAAU,iBAExB,uBAAwB,CACpBkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,2BAA4B,CACxB6c,SAAUxf,EAAOkD,IAAIP,EAAU,qBAC/BkQ,KAAM7S,EAAOkD,IAAIP,EAAU,oBAE/B,4BAA6B,CACzB2R,SAAU3R,EAAU,yBAG7B,CAAEY,QAAS,gBACf,CAAE2G,SAAU,YAAa3G,QAAS,iB,6BCnOzC5F,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ4gB,0BAAuB,EAC/B,MAAM3d,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GAgBzB5V,EAAQ4gB,qBAfR,SAA8Bnb,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,YAAa5C,EAAOqa,aAAa1X,EAAU,aAAc,CAAEoC,cAAe,eAC3FvC,EAAQI,SAAS,YAAa5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACvDud,UAAW3d,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,yBAC/D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,cAC1B,CAACtD,EAAOkI,MAAOyK,EAAS5S,kBACzB,CAAEmK,SAAU,YAAa3G,QAAS,cAAgB,CACjDC,QAAS,KAAM,CACX6c,UAAW,8BACX9a,OAAQ,c,6BCfpB5H,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQonB,0BAAuB,EAC/B,MAAMnkB,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GA2GzB5V,EAAQonB,qBA1GR,SAA8B3hB,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CkiB,EAAYzgB,GAASlE,EAAO6C,IAAIqB,EAAM,CACxC2D,QAASC,QAAsCzI,IAA9ByI,EAAKxE,KAAK,UAAUxF,QAEzC0E,EAAQI,SAAS,YAAa5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACvDmB,KAAM0O,EAAS9S,qBAAqB8C,EAAU,mBAC9CiiB,UAAW5kB,EAAO8C,WAAW,CACzBmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,8BAC1DqI,KAAMtL,EAAO0D,WAAW,CAAEC,SAAS,IACnC,CAAC3D,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,kBAAmB,CACf2c,aAAc7kB,EAAO8C,WAAW,CAC5BmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,2BAC1DqI,KAAMtL,EAAO0D,WAAW,CAAEC,SAAS,IACnC,CAAC3D,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,kBAAmB,CACfqL,MAAO7Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBAE/D,wBAAyB,CACrB6hB,OAAQ9kB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,aACvCkgB,eAAgBJ,EAAShiB,EAAU,0BACnCqiB,kBAAmBL,EAAShiB,EAAU,0BACtCsiB,eAAgBN,EAAShiB,EAAU,0BACnCuiB,gBAAiBP,EAAShiB,EAAU,0BACpCwiB,OAAQR,EAAS3kB,EAAO6C,IAAI7C,EAAOyD,SAASd,EAAU,oBAAqB,CACvEa,QAAS,IAAM,CAAC,CACR+P,MAAO,yBAIvB,yBAA0B,CACtB/K,MAAOxI,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAClE0gB,OAAQnlB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,uBAEhF,4BAA6B,CACzBmiB,aAAcplB,EAAOkD,IAAIlD,EAAO2F,eAChC0f,wBAAyBrlB,EAAOkD,IAAIlD,EAAO2F,kBAGpD,CAAEuE,SAAU,YAAa/B,sBAAsB,IAClDmd,SAAU3S,EAAShT,qBAAqBgD,EAAU,oBAEtD,iBAAkB,CACd2iB,SAAUtlB,EAAO8C,WAAW,CACxByQ,MAAOvT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBACtEsiB,MAAOvlB,EAAOkD,IAAIlD,EAAO2F,eACzB6f,SAAUxlB,EAAOkD,IAAIlD,EAAO2F,eAC5B8f,OAAQzlB,EAAOyD,SAASd,EAAU,oBAClC+iB,WAAY/iB,EAAU,6BAInC,CAAEwF,sBAAsB,KAC5B,CAAE+B,SAAU,OAAQ3G,QAAS,cAAgB,CAC5CC,QAAS,KACL,MAAM8H,EAAOqa,KAAKC,MAAsB,WAAhBD,KAAKE,UAA2B,WACxD,MAAO,CACH5hB,KAAM,sBACN2gB,UAAW,CACP3gB,KAAM,kBACNqH,OACAuZ,aAAc,CACV5gB,KAAM,kBACNqH,OACAiI,MAAO,oBAEX+R,SAAU,4BAK1B9iB,EAAQI,SAAS,kBAAmB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7DyQ,MAAO7Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,qBAC3D2G,WAAY5J,EAAO8C,WAAW,CAC1BgjB,SAAU9lB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC5CshB,YAAa/lB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC/CuhB,SAAUhmB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC5CwhB,UAAWjmB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC7CxC,OAAQjC,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,OAE/C,CAAElB,QAAS,oBAAsB,CAChCC,QAAS,KAAM,CACX+P,MAAO,mBACP3J,WAAY,CACRkc,SAAU,EACVC,YAAa,EACbC,SAAU,EACVC,UAAW,EACXhkB,OAAQ,QAIpBO,EAAQI,SAAS,wBAAyB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACnEojB,YAAalmB,EAAO0D,WAAW,CAAEC,SAAS,IAC1CwiB,WAAYnmB,EAAOyD,SAASzD,EAAO0D,eACpC,CAAEH,QAAS,0BAA4B,CACtCC,QAAS,KAAM,CACX0iB,aAAc,EACdC,WAAY,CAAC,EAAG,U,6BC1G5BxoB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQmnB,8BAA2B,EACnC,MAAMlkB,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GA2CzB5V,EAAQmnB,yBA1CR,SAAkC1hB,EAASC,GACvC,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC5DtF,KAAMwC,EAAO6C,IAAIH,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAAmB2Z,cAAc,KAAW,CAC7G/U,QAAUC,GAASA,EAAKsJ,WAAW9I,OAAS,IAEhDrI,UAAWD,EAAO2F,cAClBzF,QAASF,EAAO2F,cAChBxF,YAAaH,EAAO2F,cACpBvF,qBAAsBJ,EAAO2F,cAC7BtF,UAAWL,EAAO2F,cAClBrF,UAAWN,EAAO2F,cAClBpF,aAAcP,EAAO2F,cACrBnF,YAAaR,EAAO2F,cACpBlF,iBAAkBT,EAAO0D,WAAW,CAAEc,IAAK,KAASC,IAAK,MACzD/D,cAAeV,EAAO0D,aACtB8C,WAAYxG,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACpDhD,eAAgBX,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAChEgC,QAASzG,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,sBAAuB,uBAAwB,wBACvFjE,WAAY8B,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAChE8D,MAAO/G,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,KAAM,KAAMC,IAAK,OAC3DjD,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,QACzD,CAAElB,QAAS,mBAAqBW,IAAQ,CACvCV,QAAS,IAAMmP,EAAS7S,qBACxBsM,SAAU,CAACtE,EAAM5J,EAAOsS,EAAQgB,MAEvBtT,OADLA,EAAQgG,EAAKkI,SAAStE,EAAM5J,EAAOsS,EAAQgB,SACD,EAAStT,EAAM6I,QAAU7I,aAAqC,EAASA,EAAMsD,QAAU,MAC7HgP,EAAOpF,IAAItD,EAAKxE,KAAK,UAAW,0BAA2B,OAE1DpF,aAAqC,EAASA,EAAMyC,iBAAmBzC,aAAqC,EAASA,EAAMsD,SAC5HgP,EAAOpF,IAAItD,EAAKxE,KAAK,kBAAmB,yBAEvCpF,aAAqC,EAASA,EAAMsD,QAAU,IAAO,GACtEgP,EAAOpF,IAAItD,EAAKxE,KAAK,UAAW,wBAAyB,KAExDpF,aAAqC,EAASA,EAAM6I,OAAS,IAAO,GACrEyJ,EAAOpF,IAAItD,EAAKxE,KAAK,SAAU,uBAAwB,IAEpDpF,S,6BC1CnBP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQuyB,6BAA0B,EAClC,MAAMtvB,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GAmBzB5V,EAAQuyB,wBAlBR,SAAiC9sB,EAASC,GACtC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,gBAAiB5C,EAAOqa,aAAa1X,EAAU,YAAa,CAAEoC,cAAe,cAC9F,MAAM0E,EAAa,CACfA,WAAYzJ,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,gBAErDH,EAAQI,SAAS,WAAY5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACtD+b,SAAUnc,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,wBAC9D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,aAC1B,CAACtD,EAAOkI,MAAOyK,EAAS7L,cAAc2C,IACvC,CAAES,SAAU,WAAY3G,QAAS,aAAe,CAC/CC,QAAS,IAAM,CAAC,CACRqb,SAAU,sBACVhU,MAAO,S,6BClBvBlN,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ6gB,0BAAuB,EAC/B,MAAM5d,EAAS,EAAQ,GACjBsgB,EAAgB,EAAQ,IACxB3N,EAAW,EAAQ,GAmJzB5V,EAAQ6gB,qBAlJR,SAA8Bpb,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CgH,EAAa,CACfA,WAAYzJ,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,qBAE/C4d,EAAyB,CAC3BC,UAAWxgB,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,sBAC7C8G,GAEP,SAASgX,EAAkBC,EAAYC,EAAcC,GACjD,MAAMnZ,EAAQ,GACRoZ,EAAuBC,GAAoBre,EAC5C3E,IAAI6iB,GACJhQ,OAAOxS,IACR,IAAIkG,EAEJ,OADqD,QAA5BA,EAAKqc,EAAW5iB,IAAIK,UAAuB,IAAPkG,EAAgBA,EAAK,IAC3D2L,MAAM1S,GAAKwjB,EAAgBjF,SAASve,MAE/D,IAAK,MAAOyjB,GAAW,OAAE3K,EAAM,SAAED,MAAemK,EAAcrK,eAAgB,CAC1E,MAAM6K,EAAkB,IAAI1K,KAAWD,GACvC1O,EAAMnE,KAAK,CACPwB,MAAOgD,GAAQA,EAAK8T,WAAW9d,IAAI,IAAIkC,EAAO+O,KAAK,CAAC,YAAcgS,EAClE7c,KAAM0c,EAAQC,EAAoBC,MAI1C,OADArZ,EAAMnE,KAAK,CAAEwB,MAAOuH,IAAK,EAAMnI,KAAM0c,EAAQD,KACtC3gB,EAAO6R,WAAWpK,GAE7B,MAAM8nB,EAAwB9O,EAAkBH,EAAcxK,eAAgB,sBAAuB7R,GAAQvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,aAAgBgN,MAAQhN,EAAO,0BAC1LurB,EAAuB/O,EAAkBH,EAAczK,cAAe,qBAAsB5R,GAAQvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,aAAgBgN,MAAQhN,EAAO,yBACvLid,EAAyBT,EAAkBH,EAActK,kBAAmB,gBAAiB/R,GAAQvB,EAAW,CAAEmC,KAAMZ,KACxHkd,EAAuBV,EAAkBH,EAAcvK,gBAAiB,cAAe9R,GAAQvB,EAAW,CAAEmC,KAAMZ,KACxHzB,EAAQI,SAAS,aAAc5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACxDmB,KAAMjE,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMR,EAAY3E,IAAI,yBACrFsjB,MAAOphB,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3Due,MAAO1e,EAAU,mBACjB2e,YAAathB,EAAOkD,IAAIP,EAAU,oBAClCwI,QAASnL,EAAOyD,SAASd,EAAU,kBAChC4d,GACJ,CAAErW,SAAU,OAAQ3G,QAAS,cAAgB,CAC5CC,QAAS,KAAM,CACX6d,MAAO,EACPlW,QAAS,CAAC,CACFlH,KAAM,iBACNzG,KAAM,0BAItBgjB,UAAWxgB,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,oBACjD,CAAEY,QAAS,eAAiB,CAC3BC,QAAS,KAAM,CACX4d,MAAO,CAAC,CACAC,MAAO,EACPlW,QAAS,CAAC,CACFlH,KAAM,iBACNzG,KAAM,2BAK9B,MAAM+jB,EAAY,CACd1Z,QAASC,IACL,IAAIzD,EACJ,OAAoC,QAA3BA,EAAKyD,EAAKgC,MAAMhM,aAA0B,IAAPuG,OAAgB,EAASA,EAAGiE,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsBuT,SAAS/T,EAAKxE,KAAK,QAAQxF,SAG/G0E,EAAQI,SAAS,aAAc5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACxDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,0BAC1Due,OAAQxhB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAAM+c,IAC5EE,QAASzhB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS4d,IACrE,CAACvhB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,yBAA0B,CACtB6E,SAAU/M,EAAOyD,SAASd,EAAU,kBACjC4d,GAEP,oBAAqB,CACjB/iB,KAAMkF,OACH6d,GAEP,kBAAmB,CACfxT,SAAU/M,EAAOyD,SAASd,EAAU,kBACjC4d,GAEP,iBAAkB,CACd/iB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aACvDsd,GAEP,uBAAwB,CACpB/iB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,oBACvDsd,GAEP,qBAAsB,CAClBxT,SAAU/M,EAAOyD,SAASd,EAAU,kBACjC4d,GAEP,gBAAiB,CACb/iB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC1Dye,OAAQ1hB,EAAOkD,IAAIlD,EAAO2F,kBACvB4a,KAGZ,CAAEhd,QAAS,eAAiB,CAC3BC,QAAS,KAAM,CACXS,KAAM,iBACNzG,KAAM,uBAGdgF,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3D+b,SAAU2Q,EACV,CAACxvB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,aAC1B,CAACtD,EAAOkI,MAAOyK,EAAS7L,cAAc2C,EAAY0X,EAAsBD,IACzE,CAAEhX,SAAU,WAAY3G,QAAS,aAAe,CAC/CC,QAAS,KAAM,CACXqb,SAAU,sBACVhU,MAAO,OAGfrI,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC5Dud,UAAWkP,EACX,CAACvvB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,cAC1B,CAACtD,EAAOkI,MAAOyK,EAAS5S,eAAemhB,IACxC,CAAEhX,SAAU,YAAa3G,QAAS,cAAgB,CACjDC,QAAS,KAAM,CACX6c,UAAW,0BACXta,OAAQ,QAGhBvD,EAAQI,SAAS,qBAAsB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAChE6e,UAAWjf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC/DzF,KAAMkF,IACN+F,OAAQ9F,EAAU,mBAClBif,UAAWlf,EAAW,CAAEmC,KAAM,CAAC,WAAY,gBAAiB,oBAC5Dgd,KAAM7hB,EAAOoa,aAAa1X,EAAW,CAAEmC,KAAM,WAC9C,CAAEtB,QAAS,uBAAyB,CACnCC,QAAS,KAAM,CACXme,UAAW,+BACXnkB,KAAM,GACNiL,OAAQ,EACRmZ,UAAW,WACXC,KAAM,kB,6BCnJlBlkB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ8gB,2BAAwB,EAChC,MAAM7d,EAAS,EAAQ,GA2BvBjD,EAAQ8gB,sBAzBR,SAA+Brb,EAAS6J,GAEpC7J,EAAQI,SAAS,cAAe5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACzDgf,KAAM9hB,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC/Bif,YAAa/hB,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAL3C,EAKqEC,IALrE,IAKkG,CAC9GjB,QAAS,IANG,EAOZiJ,UAAW,CAACgjB,EAAIrrB,IAPJ,IAOUA,EACtBsI,OAAQ,IAAM,CAAC,CAAElP,KAAM,cAAewF,OAAQ,CARlC,GAQyDsZ,SARzD,MAUhB8B,YAAape,EAAO2C,UAAUH,EAAS,oBACvC,CACAgB,QAAS,KAAM,CACXue,YAbY,EAcZ3D,YAAa,SAGrB,CACA5a,QAAS,KAAM,CACXse,KAAM,CACFC,YApBY,EAqBZ3D,YAAa,W,6BCxB7BzgB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ0V,2BAAwB,EAChC,MAAMzS,EAAS,EAAQ,GA2KvBjD,EAAQ0V,sBA1KR,SAA+BjQ,EAASC,GACpC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CmQ,EAAc5S,EAAO+D,WAAW,CAClC,CACIE,KAAM,SACNC,KAAMxB,IACNyB,OAAQC,GAAmB,kBAANA,GAAgC,iBAANA,EAAkBA,EAAEmN,WAAa,IAEpF,CACItN,KAAM,SACNC,KAAMlE,EAAO0D,aACbS,OAAQC,GAAmB,iBAANA,EAAkBkN,SAASlN,GAAK,GAEzD,CACIH,KAAM,SACNC,KAAMlE,EAAO8C,WAAW,CACpB0B,IAAKxE,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KAC7Cc,IAAKzE,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,OAEjDQ,OAAQC,GAAmB,iBAANA,EAAkB,CAAGI,IAAKJ,EAAGK,IAAKL,GAAO,IAElE,CACIH,KAAM,UACNC,KAAMlE,EAAO2F,cACbxB,OAAQC,GAAW,SAANA,GAAsB,IAANA,KAGrC5B,EAAQI,SAAS,iBAAkB5C,EAAO8C,WAAW,CACjD+P,KAAM7S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WACrEuI,IAAKxL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBACpE4H,MAAOlI,EAAU,cACjBmQ,WAAYnQ,EAAU,cACtBoQ,OAAQ/S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aACvE+P,IAAKhT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEyI,SAAU,CAAEvB,SAAU,iBAAkB7G,GAAI,CAAC,MAAO,CAAEC,KAAM,cACrH8G,aAAcpK,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,4BACpD,CAAEY,QAAS,UACdf,EAAQI,SAAS,wBAAyB5C,EAAO8C,WAAW,CACxDmD,YAAajG,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAC5EoH,OAAQ1H,EAAU,eACnB,CAAEY,QAAS,iBACdf,EAAQI,SAAS,kBAAmB5C,EAAO8C,WAAW,CAClDsC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEuI,IAAKxL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACpE+P,IAAKhT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEyI,SAAU,CAAEvB,SAAU,kBAAmB7G,GAAI,CAAC,MAAO,CAAEC,KAAM,eACtH2P,MAAOjT,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAckQ,EAAa,CAAExP,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,gBACzI,CAAEC,QAAS,WACdf,EAAQI,SAAS,kBAAmB5C,EAAO8C,WAAW,CAClDoQ,MAAOlT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEuI,IAAKxL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACpEgQ,MAAOjT,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAckQ,KAChD,CAAErP,QAAS,WACdf,EAAQI,SAAS,qBAAsB5C,EAAO8C,WAAW,CACrDqQ,SAAUnT,EAAOkD,IAAIlD,EAAO8C,WAAW,CACnCsQ,EAAGzQ,EAAU,gBACb0Q,EAAG1Q,EAAU,gBACb2Q,EAAG3Q,EAAU,mBAEjB4Q,MAAOvT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBACtEuQ,QAASxT,EAAOkD,IAAIR,EAAW,CAAEmC,KAAMpC,EAAY3E,IAAI,8BAA8BoL,IAAI9E,GAAKA,EAAEmL,MAAM,QACtGkE,UAAWzT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAC1EyQ,MAAO1T,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChC4Q,MAAO/Q,EAAU,iBAErByjB,OAAQpmB,EAAOkD,IAAIlD,EAAO2F,eAC1BP,MAAOpF,EAAOkD,IAAIP,EAAU,oBAC5BuQ,MAAOlT,EAAOkD,IAAIP,EAAU,qBAC7B,CAAEY,QAAS,cACdf,EAAQI,SAAS,sBAAuB5C,EAAO8C,WAAW,CACtDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC1D0Q,KAAMjR,IACNxE,MAAOyE,EAAU,cACjB,CAAC3C,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,kBAAmB,CACfyL,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YAE9D,oBAAqB,CACjB0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,iBAAkB,CACd0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,mBAAoB,CAChB0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,sBAAuB,CACnB0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,oBAAqB,CACjB0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,mBAAoB,CAChB0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAE9D,sBAAuB,CACnB0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAE9D,mBAAoB,CAChB0Q,KAAMjR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBAItET,EAAQI,SAAS,mBAAoB5C,EAAO8C,WAAW,CACnD8Q,SAAU5T,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,cACxCtC,MAAOI,EAAU,cACjBkR,aAAc7T,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAAqBjD,EAAO+D,WAAW,CAC/H,CAAEE,KAAM,UAAWC,KAAMlE,EAAO2F,cAAexB,OAAQkI,IAAK,GAC5D,CACIpI,KAAM,SAAUC,KAAMlE,EAAOmD,QAAQT,IAAc1C,EAAO2F,oBAGlEmO,QAAS9T,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aAAgBjD,EAAO2F,gBAC9GoO,MAAO/T,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,0BAC7C,CAAEY,QAAS,YACdf,EAAQI,SAAS,0BAA2B5C,EAAO8C,WAAW,CAC1DkR,UAAWrR,EAAU,cACrB+I,SAAU/I,EAAU,cACpBsR,QAASjU,EAAOkD,IAAIlD,EAAO2F,eAC3BuO,QAASlU,EAAOkD,IAAIlD,EAAO2F,gBAC5B,CAAEpC,QAAS,mBACdf,EAAQI,SAAS,qBAAsB5C,EAAO8C,WAAW,CACrDsQ,EAAGzQ,EAAU,gBACb0Q,EAAG1Q,EAAU,gBACb2Q,EAAG3Q,EAAU,gBACbwG,SAAUxG,EAAU,gBACpBwR,WAAYxR,EAAU,iBACvB,CAAEY,QAAS,cACdf,EAAQI,SAAS,mBAAoB5C,EAAO8C,WAAW,CACnDmB,KAAMjE,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAAemR,UAAU,MAC9FpB,IAAKhT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEyI,SAAU,CAAEvB,SAAU,mBAAoB7G,GAAI,CAAC,MAAO,CAAEC,KAAM,cACvH+Q,KAAMrU,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,UACzCuR,SAAUtU,EAAOkD,IAAIP,EAAU,uBAC/B4R,SAAUvU,EAAOkD,IAAIP,EAAU,uBAC/B6R,MAAOxU,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChC2R,WAAYzU,EAAOkD,IAAIlD,EAAO2F,eAC9B+O,YAAa1U,EAAOkD,IAAIlD,EAAO2F,eAC/BgP,aAAc3U,EAAOkD,IAAIlD,EAAO2F,eAChCiP,YAAa5U,EAAOkD,IAAIlD,EAAO2F,eAC/BkP,QAAS7U,EAAOkD,IAAIlD,EAAO2F,kBAE/BmP,UAAW9U,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEmC,KAAM,SAAWlC,EAAU,oBAC7E0jB,QAASrmB,EAAOkD,IAAIP,EAAU,qBAC9B2jB,gBAAiBtmB,EAAOkD,IAAIP,EAAU,qBACtCoS,OAAQ/U,EAAOkD,IAAIP,EAAU,qBAC7B4jB,aAAcvmB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACvC0jB,cAAexmB,EAAOkD,IAAIlD,EAAO2F,kBAErCc,QAASzG,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAAmBN,EAAU,8BACrH,CAAEY,QAAS,YACdf,EAAQI,SAAS,0BAA2B5C,EAAO8C,WAAW,CAC1DkS,aAAchV,EAAOkD,IAAIlD,EAAO2F,eAChCsP,QAASjV,EAAOkD,IAAIlD,EAAO2F,eAC3BuP,SAAUlV,EAAOkD,IAAIlD,EAAO2F,eAC5BwP,cAAenV,EAAOkD,IAAIlD,EAAO2F,eACjCyP,aAAcpV,EAAOkD,IAAIlD,EAAO2F,eAChC0P,eAAgBrV,EAAOkD,IAAIlD,EAAO2F,eAClC2P,yBAA0BtV,EAAOkD,IAAIlD,EAAO2F,eAC5C4P,eAAgBvV,EAAOkD,IAAIlD,EAAO2F,eAClC6P,cAAexV,EAAOkD,IAAIP,EAAU,qBACpC8S,cAAezV,EAAOkD,IAAIP,EAAU,sBACrC,CAAEY,QAAS,mBACdf,EAAQI,SAAS,mBAAoB5C,EAAO8C,WAAW,CACnD4S,MAAO/S,EAAU,gBACjBgT,MAAOhT,EAAU,gBACjBiT,QAAS5V,EAAOkD,IAAIlD,EAAO2F,eAC3B6P,cAAexV,EAAOkD,IAAIP,EAAU,qBACpCsB,KAAMjE,EAAOkD,IAAIP,EAAU,6BAC5B,CAAEY,QAAS,c,6BC3KlB5F,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ+gB,uBAAoB,EAC5B,MAAM9d,EAAS,EAAQ,GAmGvBjD,EAAQ+gB,kBAlGR,SAA2Btb,EAASC,GAChC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,SAAU5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACpDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,uBAC1D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,4BAA6B,CACzB8Z,MAAOhiB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,eAAgBiY,YAAY,KACjE9R,QAAShL,EAAOyD,SAASf,KACzBlE,IAAKwB,EAAOmD,QAAQT,IACpBC,EAAU,sBACVkV,OAAQlV,EAAU,kBAEtB,+BAAgC,CAC5Bqf,MAAOhiB,EAAOkD,IAAIR,KAClBuf,YAAajiB,EAAOyD,SAASd,EAAU,sBACvCkV,OAAQlV,EAAU,kBAEtB,qBAAsB,CAClBqf,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,qBAAsB,CAClBwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,oBAAqB,CACjBwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,6BAA8B,CAC1Bwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D8b,WAAY/e,EAAOkD,IAAIlD,EAAO0D,cAC9Bye,YAAaniB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,yBAA0B,CACtBwe,MAAOhiB,EAAOkD,IAAIR,KAClBwf,WAAYvf,EAAU,qBACtBkV,OAAQnV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5D4H,MAAO7K,EAAO0D,WAAW,CAAEC,SAAS,KAExC,qBAAsB,CAClBqe,MAAOhiB,EAAOkD,IAAIR,KAClBsC,KAAMrC,EAAU,4BAChByf,SAAUzf,EAAU,4BACpBkV,OAAQlV,EAAU,oBAG3B,CAAEY,QAAS,WAAa,CACvBC,QAAS,KAAM,CACXS,KAAM,iCAGdzB,EAAQI,SAAS,oBAAqB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CAC/D,CACIE,KAAM,SACNC,KAAMvB,EAAU,4BAChBwB,OAAQC,GAAKA,EAAE,IAEnB,CACIH,KAAM,OACNC,KAAMlE,EAAOyD,SAASd,EAAU,6BAChCwB,OAAQC,GAAK,CAACA,MAElB,CACAZ,QAAS,KAAM,CACXqP,KAAM,uBAGdrQ,EAAQI,SAAS,2BAA4B5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACtE+P,KAAM7S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WACrEuI,IAAKxL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBACpE,CACAO,QAAS,KAAM,CACXqP,KAAM,uBAGdrQ,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3D+P,KAAMnQ,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC1D4H,MAAO7K,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,OACpF,CACAA,QAAS,KAAM,CACXqP,KAAM,yB,6BCjGlBlV,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQghB,qBAAkB,EAC1B,MAAM/d,EAAS,EAAQ,GAgCvBjD,EAAQghB,gBA/BR,SAAyBvb,EAASC,GAC9B,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C4f,EAAWpe,GAASjE,EAAO6C,IAAI7C,EAAO8C,WAAW,CACnDuF,QAASrI,EAAOkD,IAAIlD,EAAO2F,eAC3BoX,OAAQ/c,EAAOyD,SAASzD,EAAO+D,WAAW,CACtC,CACIE,KAAM,SACNC,KAAMxB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,EAAMmQ,UAAU,KAC1EjQ,OAAQC,GAAKA,EAAEf,IAEnB,CACIY,KAAM,SACNC,KAAMlE,EAAO8C,WAAW,CACpBO,GAAIX,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,EAAMmQ,UAAU,EAAMyI,cAAc,KAC5FyF,SAAUtiB,EAAO2F,gBAErBxB,OAAQC,IAAK,CAAGf,GAAIe,SAG7B,CAAEb,QAAS,QAAU,CACpBC,QAAS,KAAM,CACXuZ,OAAQ,OAGhBva,EAAQI,SAAS,YAAayf,EAAQ,UACtC7f,EAAQI,SAAS,kBAAmByf,EAAQ,gBAC5C7f,EAAQI,SAAS,YAAayf,EAAQ,UACtC7f,EAAQI,SAAS,eAAgByf,EAAQ,cACzC7f,EAAQI,SAAS,iBAAkByf,EAAQ,eAC3C7f,EAAQI,SAAS,WAAYyf,EAAQ,W,6BChCzC1kB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQihB,8BAA2B,EACnC,MAAMhe,EAAS,EAAQ,GA+LvBjD,EAAQihB,yBA9LR,SAAkCxb,EAASC,GACvC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C8f,EAAmBne,IAAQ,IAAIC,EAAI,OAAOD,aAAa6M,MAAQsR,EAAgBne,EAAE,IAA8D,QAAvDC,EAAKD,aAA6B,EAASA,EAAEoe,YAAyB,IAAPne,EAAgBA,EAAmB,iBAAND,EAAiB,GAAKA,aAA6B,EAASA,EAAEmN,YACxP/O,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CAC5D,CACIE,KAAM,SACNC,KAAMvB,EAAU,yBAChBwB,OAAQC,GAAKA,aAAa6M,MAAyB,iBAAT7M,EAAE,GAAkBA,EAAE,GAAK,CAAEoe,KAAMD,EAAgBne,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAEoe,KAAMD,EAAgBne,KAEhK,CACIH,KAAM,OACNC,KAAMvB,EAAU,uBAChBwB,OAAQC,GAAK,CAACA,IAElB,CACIH,KAAM,SACNS,SAAU,EACVR,KAAMxB,IACNyB,OAAQoe,GAEZ,CACIte,KAAM,SACNC,KAAMlE,EAAO0D,aACbS,OAAQC,IACJ,MAAM1F,EAAI+jB,WAAWF,EAAgBne,IACrC,OAAOse,SAAShkB,GAAKA,EAAO0F,EAAI,EAAI,IAG5C,CACIH,KAAM,UACNC,KAAMlE,EAAO2F,cACbxB,OAAQC,IACJ,MAAMpF,EAAIujB,EAAgBne,GAC1B,MAAa,SAANpF,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEuE,QAAS,mBAAqB,CAC/BC,QAAS,KAAM,CACXgf,KAAM,QAGd,MAAMG,EAAe,CACjB1X,MAAOjL,EAAOkD,IAAIR,KAClB+jB,KAAMzmB,EAAOkD,IAAIR,KACjBkgB,KAAM5iB,EAAOkD,IAAIlD,EAAO2F,eACxBkd,OAAQ7iB,EAAOkD,IAAIlD,EAAO2F,eAC1Bmd,WAAY9iB,EAAOkD,IAAIlD,EAAO2F,eAC9Bod,cAAe/iB,EAAOkD,IAAIlD,EAAO2F,eACjCqd,WAAYhjB,EAAOkD,IAAIlD,EAAO2F,eAC9Bsd,UAAWjjB,EAAOkD,IAAIR,KACtBwgB,WAAYljB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCqgB,OAAQzgB,EAAW,CAAEmC,KAAM,CAAC,WAAY,YAAa,cAAe,kBAAmB,cAAe,uBACtG,CAAC7E,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,WAC1B,CAACtD,EAAOkI,MAAO,CACX,YAAe,CACXhK,MAAOwE,KAEX,kBAAqB,CACjBxE,MAAOwE,KAEX,UAAa,CACTxE,MAAOwE,KAEX,SAAY,CACRxE,MAAOwE,KAEX,YAAe,CACXxE,MAAOwE,EAAW,CAAEK,UAAW,UAAWC,OAAQ,CAAEogB,cAAc,EAAMC,cAAc,MAE1F,gBAAmB,CACfnlB,MAAOwE,EAAW,CAAEK,UAAW,UAAWC,OAAQ,CAAEogB,cAAc,EAAMC,cAAc,UAIlGC,WAAYtjB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCqgB,OAAQzgB,EAAW,CAAEmC,KAAM,CAAC,YAAa,YAAa,iBACtD,CAAC7E,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,WAC1B,CAACtD,EAAOkI,MAAO,CACX,UAAa,CACThK,MAAO8B,EAAOkD,IAAIP,EAAU,mBAC5B+jB,SAAU1mB,EAAOkD,IAAIP,EAAU,oBAEnC,UAAa,CACTzE,MAAO8B,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEhG,OAAQ,0BACnE0pB,SAAU1mB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACnCO,GAAIX,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UACxD4H,MAAO7K,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KAC/C6H,IAAKxL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEyI,SAAU,CAAEvB,SAAU,iBAAkB7G,GAAI,CAAC,MAAO,CAAEC,KAAM,gBAG7H,YAAe,CACXpF,MAAO8B,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChCtF,KAAMwC,EAAOkD,IAAIR,KACjBuB,KAAMjE,EAAOkD,IAAIR,KACjBW,GAAIrD,EAAOkD,IAAIR,QAEnBgkB,SAAU1mB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC9CtF,KAAMwC,EAAOkD,IAAIP,EAAU,mBAC3BsB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAC1DI,GAAIX,EAAW,CAAEK,UAAW,WAC5B,CACAS,QAAS,KAAM,CACXS,KAAM,gBACNZ,GAAI,iDAMxB0G,MAAO/J,EAAOkD,IAAIP,EAAU,yBAEhCH,EAAQI,SAAS,wBAAyB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CACnE,CACIE,KAAM,OACNa,MAAOV,GAAkB,iBAANA,EACnBD,OAAQC,IAAK,CAAGoe,KAAM,KACtB9d,UAAW,EACXR,KAAMlE,EAAO8C,WAAW,CACpB0f,KAAM9f,OACHigB,KAGX,CACI1e,KAAM,cACNa,MAAOV,QAA6D/E,KAAvD+E,aAA6B,EAASA,EAAEmf,WACrDpf,OAAQC,IAAK,CAAGmf,UAAW,KAC3Brf,KAAMlE,EAAO8C,WAAW,CACpBygB,UAAW7gB,IACX8gB,KAAMxjB,EAAOkD,IAAIP,EAAU,2BACxBggB,KAGX,CACI1e,KAAM,QACNa,MAAOV,QAAyD/E,KAAnD+E,aAA6B,EAASA,EAAEmE,OACrDpE,OAAQC,IAAK,CAAGmE,MAAO,KACvBrE,KAAMlE,EAAO8C,WAAW,CACpByF,MAAOvI,EAAO8C,WAAW,CACrBtF,KAAMkF,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,SAAUxE,KAAM,WAAYyE,eAAe,KACrG+a,UAAW/gB,EAAW,CAAEK,UAAW,cACnC7E,MAAO8B,EAAOkD,IAAIR,UAEnBigB,KAGX,CACI1e,KAAM,WACNa,MAAOV,QAA4D/E,KAAtD+E,aAA6B,EAASA,EAAEsf,UACrDvf,OAAQC,IAAK,CAAGsf,SAAU,KAC1Bxf,KAAMlE,EAAO8C,WAAW,CACpB4gB,SAAUhhB,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,WAAYxE,KAAM,cAChFyrB,UAAW1vB,EAAOkD,IAAIP,EAAU,sBAC7BggB,KAGX,CACI1e,KAAM,UACNa,MAAOV,QAA2D/E,KAArD+E,aAA6B,EAASA,EAAEuf,SACrDxf,OAAQC,IAAK,CAAGuf,QAAS,KACzBzf,KAAMlE,EAAO8C,WAAW,CACpB6gB,QAASjhB,EAAW,CAAEmC,KAAM,UAAWiY,YAAY,OAChD6F,KAGX,CACI1e,KAAM,MACNa,MAAOV,QAAuD/E,KAAjD+E,aAA6B,EAASA,EAAE4O,KACrD7O,OAAQC,IAAK,CAAG4O,IAAK,KACrB9O,KAAMlE,EAAO8C,WAAW,CACpBkQ,IAAKtQ,EAAW,CAAEK,UAAW,aAC7BqC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyQ,UAAW,EAAGuH,WAAW,MACvFzV,OAAQvF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,SAAUxE,KAAM,eACvF2f,QAAS5jB,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eACxE4gB,UAAW7jB,EAAOkD,IAAIlD,EAAO2F,eAC7B+pB,UAAW1vB,EAAOkD,IAAIP,EAAU,sBAC7BggB,MAGZ,CAAEpf,QAAS,wBAAyBwB,cAAe,0BAA4B,CAC9EvB,QAAS,KAAM,CACXgf,KAAM,QAGdhgB,EAAQI,SAAS,sBAAuB5C,EAAO6C,IAAI7C,EAAOyD,SAASd,EAAU,mBAAoB,CAC7Fa,QAAS,IAAM,CAAC,CACRgf,KAAM,U,6BC7LtB7kB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqnB,yBAAsB,EAC9B,MAAMuC,EAAU,EAAQ,IAClBC,EAAW,EAAQ,IACnBC,EAAc,EAAQ,IACtBC,EAAY,EAAQ,IACpBC,EAAkB,EAAQ,IAC1BC,EAAkB,EAAQ,GAC1BC,EAAqB,EAAQ,IAC7BC,EAAmB,EAAQ,IAC3BC,EAAiB,EAAQ,IAa/BpqB,EAAQqnB,oBAZR,SAA6B5hB,EAASC,GAElCukB,EAAgB/Z,yBAAyBzK,EAASC,GAClDkkB,EAAQS,iBAAiB5kB,EAASC,GAClCmkB,EAASS,kBAAkB7kB,EAASC,GACpCokB,EAAYxQ,qBAAqB7T,EAASC,GAC1CqkB,EAAUQ,mBAAmB9kB,EAASC,GACtCskB,EAAgBQ,yBAAyB/kB,EAASC,GAClDwkB,EAAmBO,4BAA4BhlB,EAASC,GACxDykB,EAAiBO,0BAA0BjlB,EAASC,GACpD0kB,EAAeO,wBAAwBllB,EAASC,K,6BCrBpD9E,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqqB,sBAAmB,EAC3B,MAAMpnB,EAAS,EAAQ,GAkGvBjD,EAAQqqB,iBAjGR,SAA0B5kB,EAASC,GAC/B,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,QAAS5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACnD6kB,gBAAiBjlB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,0CACrE2kB,MAAO5nB,EAAO0D,aACd8E,MAAOxI,EAAO0D,aACdqiB,YAAa/lB,EAAO0D,aACpBmkB,SAAU7nB,EAAO0D,aACjBokB,cAAeplB,EAAW,CAAEmC,KAAM,CAAC,OAAQ,OAAQ,UACnDkjB,qBAAsB/nB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,OAAQ,aAC7DqF,SAAUxH,EAAW,CAAEmC,KAAM,mBAC7BmjB,sBAAuBhoB,EAAOkD,IAAIlD,EAAO2F,eACzCsiB,2BAA4BjoB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KACxEgC,QAASzG,EAAO8C,WAAW,CACvBolB,UAAWloB,EAAO0D,WAAW,CAAEuH,OAAO,IACtCkd,UAAWnoB,EAAO0D,WAAW,CAAEuH,OAAO,IACtCmd,YAAapoB,EAAO0D,WAAW,CAAEuH,OAAO,IACxCod,gBAAiBroB,EAAO0D,WAAW,CAAEuH,OAAO,IAC5Cqd,YAAatoB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEuH,OAAO,KACnDsd,cAAevoB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEuH,OAAO,KACrDud,qBAAsBxoB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,OAAQ,cAAe,YAC5E4jB,cAAezoB,EAAOkD,IAAIR,KAC1BgmB,WAAY1oB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrC6lB,MAAOjmB,IACPkmB,WAAY5oB,EAAO0D,WAAW,CAAEC,SAAS,IACzCklB,oBAAqB7oB,EAAO0D,WAAW,CAAEC,SAAS,IAClD1B,OAAQjC,EAAO0D,gBAEnBolB,gBAAiB9oB,EAAOkD,IAAIlD,EAAO8C,WAAW,CAC1C6lB,MAAOjmB,IACPqmB,YAAa/oB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,OAElDukB,MAAOhpB,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChC6lB,MAAOjmB,IACPumB,UAAWjpB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IACnD0kB,UAAWlpB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IACnD2kB,sBAAuBnpB,EAAO2F,iBAElCyjB,SAAUppB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACnC0O,QAASxR,EAAO8C,WAAW,CACvBmB,KAAMvB,MAEVsH,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,SAGtD4kB,OAAQrpB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,6CAC5EqmB,SAAUtpB,EAAOmD,QAAQT,EAAW,CAAEmC,KAAM,CACpC,UACA,WACA,UACA,6BACA,iBACA,gBACA,UACE7E,EAAO6C,IAAI7C,EAAOyD,SAASzD,EAAO8C,WAAW,CACnDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAC1Due,OAAQxhB,EAAO0D,WAAW,CAAEC,SAAS,IACrC4lB,SAAUvpB,EAAO0D,WAAW,CAAEC,SAAS,IACvC6lB,SAAUxpB,EAAO0D,WAAW,CAAEC,SAAS,OACtC,CACDuG,SAAU,IAAM,OAChB1G,QAAS,IAAM,CAAC,CACRS,KAAM,gBACNud,OAAQ,OAGpBiI,YAAazpB,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAAoBjD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7H4mB,cAAe1pB,EAAO0D,aACtBimB,OAAQ3pB,EAAO0D,cAChB,CAAEwG,SAAU,aAAe,CAC1B1G,QAAS,KAAM,CACXkmB,cAAe,IACfC,OAAQ,OAGhBC,QAAS5pB,EAAOmD,QAAQT,EAAW,CAAEmC,KAAM,CAAC,MAAO,YAAc7E,EAAO6C,IAAI7C,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kCAAqC,CACjLO,QAAS,IAAM,CAAC,qBAEpBgiB,SAAUxlB,EAAOyD,SAASzD,EAAO6C,IAAI7C,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mCAAsC,CAAEiH,SAAU,IAAM,cAAgB,CAAErG,UAAW,MAC/L,CAAEN,QAAS,UAAY,CACtBC,QAAS,KAAM,CACXmkB,gBAAiB,kBACjBC,MAAO,KACPpf,MAAO,IACPud,YAAa,GACb8B,SAAU,GACVC,cAAe,OACf5d,SAAU,SACVzD,QAAS,CACLyhB,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,e,6BC/FjC1qB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQsqB,uBAAoB,EAC5B,MAAMrnB,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GA+CzB5V,EAAQsqB,kBA9CR,SAA2B7kB,EAASC,GAChC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CktB,EAAe,CACjBC,kBAAmBjd,EAAS9L,gBAC5BgpB,MAAO7vB,EAAO8C,WAAW,CACrBgtB,gBAAiBnd,EAAS9L,gBAC1BkpB,UAAWpd,EAAS9L,gBACpBmpB,iBAAkBhwB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAC1DyrB,yBAA0Btd,EAAS9L,gBACnCqpB,+BAAgClwB,EAAO0D,aACvCysB,8BAA+BnwB,EAAO0D,gBAGxC0sB,EAAa,CACfC,6BAA8B1d,EAAS9L,gBACvCypB,2BAA4B3d,EAAS9L,gBACrC0pB,YAAa5d,EAAS9L,cAAc,CAAErC,KAAM,EAAGC,IAAK,KAExDjC,EAAQI,SAAS,oBAAqB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC/DmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,qBAC1Da,OAAQ9D,EAAO8C,WAAW,CACtBkH,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IAC9C4O,EAAG1Q,EAAU,mBACb6tB,OAAQ7d,EAAS9L,gBACjB4pB,WAAY9tB,EAAU,mBACtB+tB,eAAgB1wB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACzC6tB,WAAY3wB,EAAOkD,IAAIlD,EAAO2F,eAC9BirB,UAAW5wB,EAAOkD,IAAIP,EAAU,mBAEpC,CAAC3C,EAAOiI,QAAS,CAAC,MAAO,CAAE3E,KAAM,SACjC,CAACtD,EAAOkI,MAAO,CACX,mBAAoBynB,EACpB,iBAAkBS,EAClB,wBAAyBA,MAGlC,CAAE7sB,QAAS,WAAa,CACvBC,QAAS,KAAM,CACXS,KAAM,iBACNH,OAAQ,CACJkG,YAAa,W,6BC7C7BrM,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQuqB,wBAAqB,EAC7B,MAAMtnB,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GACzB,EAAQ,IACR,EAAQ,GACR,MAAMqU,EAAkB,EAAQ,GAqchCjqB,EAAQuqB,mBApcR,SAA4B9kB,EAASC,GACjC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/ConB,EAAoB,CACtBC,YAAa9pB,EAAOkD,IAAIlD,EAAO2F,eAC/BokB,QAAS/pB,EAAOkD,IAAIlD,EAAO2F,eAC3BqkB,WAAYhqB,EAAOkD,IAAIlD,EAAO2F,eAC9BskB,QAASjqB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,KAC5D0lB,QAASlqB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,KAC5D2lB,QAASnqB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,KAC5D4lB,MAAOpqB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,KAC1D6lB,eAAgB1nB,EAAU,wBAC1B2nB,aAAc3nB,EAAU,gBACxB4nB,UAAWvqB,EAAOyD,SAASd,EAAU,gBACrC6nB,UAAWxqB,EAAOyD,SAASd,EAAU,iBAEnC8nB,EAAa,CACfxX,MAAOtQ,EAAU,eACjB+nB,OAAQ/X,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,IAC5CkmB,YAAa3qB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,IAC7DmmB,QAAS5qB,EAAOyD,SAASd,EAAU,iBAEjCkoB,EAAqB,CACvBC,aAAcnoB,EAAU,wBACxBooB,cAAepoB,EAAU,wBACzBqoB,eAAgBhrB,EAAO0D,WAAW,CAAEC,SAAS,KAE3CsnB,EAAY,CACdjpB,KAAMhC,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KACtDosB,+BAAgC7wB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACjEmmB,QAAS5qB,EAAOyD,SAASzD,EAAO8C,WAAW,CACvCf,OAAQY,EAAU,aAClBsQ,MAAOtQ,EAAU,mBAGnBuoB,EAAUlrB,EAAO+D,WAAW,CAC9B,CACIE,KAAM,SACNC,KAAMxB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mCAE9D,CACIgB,KAAM,SACNC,KAAMvB,EAAU,wBAErB,CAAEoC,cAAe,YACd+rB,EAAwB,CAC1BvZ,QAAS7U,EAAW,CAAEmC,KAAM,CAAC,QAAS,aACtC+iB,MAAOjV,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAC3CssB,eAAgB/wB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAChEusB,0BAA2BhxB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IAC5DwsB,yBAA0BjxB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IAC3DysB,kBAAmBlxB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACpD0sB,UAAWxe,EAAS/L,cACpBwqB,YAAa1uB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBACjEouB,aAAc1uB,EAAU,wBACxB2uB,mBAAoBpG,GAExB1oB,EAAQI,SAAS,qBAAsB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAChEmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBAC1Da,OAAQ9D,EAAO8C,WAAW,CACtB,CAAC9C,EAAOiI,QAAS,CAAC,MAAO,CAAE3E,KAAM,SACjC,CAACtD,EAAOkI,MAAO,CACX,mBAAoB,CAChB8B,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,2BAA4B,CACxB0mB,MAAOxY,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,IAC3CjD,OAAQmR,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAEhD,uBAAwB,CACpB4lB,eAAgB1nB,EAAU,yBAE9B,sBAAuB,CACnByoB,UAAWzoB,EAAU,wBACrB6Q,QAAS0X,GAEb,6BAA8B,CAC1BE,UAAWzoB,EAAU,wBACrB6Q,QAAS0X,GAEb,0BAA2B,CACvBxE,SAAU/jB,EAAU,eACpB0oB,IAAK1oB,EAAU,eACfX,KAAM2Q,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,KAC1C6mB,SAAU3Y,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAElD,iBAAkBgmB,EAClB,8BAA+B,CAC3BjT,8BAA+BxX,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAC/EjD,OAAQmR,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAC5CimB,OAAQ/X,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAC5C8sB,sCAAuCvxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KACvF+sB,iBAAkBxxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAClEgtB,gCAAiC9e,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MACrEitB,QAAS/e,EAAS9L,cAAc,CAAErC,IAAK,EAAGC,IAAK,IAC/CktB,QAAShf,EAAS9L,cAAc,CAAErC,IAAK,EAAGC,IAAK,IAC/CmtB,aAAc5xB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IAC/CotB,kBAAmB7xB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACpDqtB,uDAAwD9xB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACzFstB,4DAA6D/xB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC7GutB,+CAAgDhyB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAEpG,wBAAyB,CACrBwO,MAAOtQ,EAAU,eACjBZ,OAAQY,EAAU,gBAEtB,wBAAyB,CACrB+N,MAAO1Q,EAAO2F,cACd4lB,KAAM5oB,EAAU,cAEpB,sBAAuB,CACnB6oB,qBAAsBxrB,EAAO2F,cAC7B8lB,oBAAqB9oB,EAAU,aAC/B+oB,OAAQ1rB,EAAOyD,SAASzD,EAAO8C,WAAW,CACtC6oB,QAAS3rB,EAAO0D,WAAW,CAAEC,SAAS,IACtCioB,QAAS5rB,EAAO0D,WAAW,CAAEC,SAAS,IACtC+mB,OAAQ1qB,EAAO0D,WAAW,CAAEC,SAAS,IACrCnC,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,IACrCkoB,QAAS7rB,EAAO2F,kBAGxB,uBAAwB,CACpBsN,MAAOtQ,EAAU,eACjBnB,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAE5D,mBAAoBolB,EACpB,wBAAyB,CACrB5W,MAAOtQ,EAAU,gBAErB,mBAAoB,CAChBsvB,0BAA2BjyB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,IAC3EytB,kBAAmBlyB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACvFkvB,mBAAoBnyB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACxFmvB,kBAAmBpL,EAAgB9Z,WACnCmlB,mBAAoBrL,EAAgB9Z,YAExC,kBAAmB,CACfQ,OAAQ1N,EAAO8C,WAAW,CACtBwvB,iBAAkB3vB,EAAU,wBAC5B4vB,qBAAsB5vB,EAAU,wBAChC6vB,+BAAgC7vB,EAAU,wBAC1C8vB,sBAAuB9vB,EAAU,wBACjC+vB,qBAAsB/vB,EAAU,wBAChCgwB,iBAAkB3yB,EAAOyD,SAASd,EAAU,kBAEhD8iB,OAAQzlB,EAAO8C,WAAW,CACtB8vB,QAAS5yB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,IAAMC,IAAK,MACxDouB,YAAa7yB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,IAAMC,IAAK,MAC5DquB,aAAc9yB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,IAAMC,IAAK,MAC7DsuB,YAAa/yB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,IAAMC,IAAK,QAEhEuuB,MAAOhzB,EAAO8C,WAAW,CACrBmwB,sBAAuBjzB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KACnEyuB,gBAAiBlzB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAC7D0uB,mBAAoBnzB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,GAAId,SAAS,OAEjFyvB,iBAAkBpzB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAC9D4uB,gCAAiCrzB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAC7E6uB,4BAA6BtzB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KACzE8uB,oCAAqCvzB,EAAOkD,IAAIlD,EAAO2F,eACvD6tB,oBAAqBxzB,EAAOkD,IAAIyP,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MACpEgvB,oBAAqBzzB,EAAOkD,IAAIyP,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MACpEivB,aAAc1zB,EAAOkD,IAAIyP,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAC7DkvB,eAAgB3zB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACxDiwB,eAAgB5zB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACxDkwB,yBAA0B7zB,EAAO0D,WAAW,CAAEC,SAAS,KAE3D,wBAAyB,CACrBmwB,aAAc9zB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,GAAId,SAAS,KACvEowB,oBAAqB/zB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KACjEuvB,mBAAoBh0B,EAAOkD,IAAIlD,EAAO2F,eACtCsuB,qBAAsBj0B,EAAOkD,IAAIlD,EAAO2F,eACxCuuB,kBAAmBl0B,EAAOkD,IAAIlD,EAAO2F,eACrCwuB,iBAAkBn0B,EAAOyD,SAASd,EAAU,iBAEhD,0BAA2B,CACvByxB,UAAW1xB,EAAW,CAAEmC,KAAM,CAAC,KAAM,OAAQ,QAAS,OAAQ,QAAS,UACvEwvB,YAAar0B,EAAO2F,cACpB2uB,oBAAqBt0B,EAAOyD,SAASzD,EAAO8C,WAAW,CACnD0e,OAAQxhB,EAAO0D,WAAW,CAAEC,SAAS,IACrCgV,KAAMhG,EAAS/L,iBAEnB2tB,cAAe5xB,EAAU,wBACzB6xB,cAAe7xB,EAAU,yBAE7B,gCAAiCkoB,EACjC,wBAAyB,CACrBiB,UAAWnpB,EAAU,eACrBopB,YAAappB,EAAU,eACvBqpB,WAAYrpB,EAAU,eACtBspB,iBAAkBtpB,EAAU,eAC5BupB,QAASlsB,EAAO2F,eAEpB,8BAA+BklB,EAC/B,sBAAuBJ,EACvB,oBAAqB,CACjBxX,MAAOtQ,EAAU,gBAErB,iBAAkB,CACdsQ,MAAOtQ,EAAU,gBAErB,4BAA6B,CACzB6U,8BAA+BxX,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAC1FgwB,cAAe9hB,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,KACnDiwB,aAAc/hB,EAAS9L,cAAc,CAAErC,IAAK,EAAGC,IAAK,KACpDkwB,uCAAwC30B,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACzEmwB,qBAAsBjiB,EAAS9L,cAAc,CAAErC,IAAK,GAAKC,IAAK,KAC9DowB,qBAAsBliB,EAAS9L,cAAc,CAAErC,IAAK,GAAKC,IAAK,KAC9DqwB,WAAYniB,EAAS9L,cAAc,CAAErC,IAAK,EAAGC,IAAK,IAClDswB,oBAAqB/0B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACrEuwB,uBAAwBh1B,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAE7D,qCAAsC,CAClC4lB,eAAgB1nB,EAAU,yBAE9B,qCAAsC,CAClCsQ,MAAOtQ,EAAU,eACjBZ,OAAQY,EAAU,eAClB+nB,OAAQ/X,EAAS/L,eAErB,gBAAiBqkB,EACjB,yBAA0BpB,EAC1B,oCAAqC,CACjCsC,cAAejB,EACfkB,aAAclB,GAElB,4BAA6B,CACzB1F,SAAUxlB,EAAOyD,SAASzD,EAAO8C,WAAW,CACxCiD,OAAQ/F,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACzC+O,QAAS0X,KAEb1nB,QAAS0nB,GAEb,wBAAyB,CACrB+J,iCAAkCj1B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAClFywB,YAAal1B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC7D0wB,wBAAyBn1B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACzE2wB,uBAAwBp1B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OACxE4wB,oBAAqBr1B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KACrE6wB,4BAA6Bt1B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC7E8wB,gCAAiCv1B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACjF+wB,iBAAkB9yB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBACtEwyB,oBAAqB9yB,EAAU,wBAC/B+yB,4BAA6B/yB,EAAU,wBACvC6Q,QAAS0X,GAEb,0BAA2BD,EAC3B,uBAAwB,CACpBpgB,MAAO8H,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,OAE/C,qBAAsB,CAClBuF,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,yBAA0B,CACtB4nB,SAAU1pB,EAAU,wBACpB2pB,SAAUtsB,EAAOyD,SAASd,EAAU,gBACpC4pB,SAAUvsB,EAAOyD,SAASd,EAAU,gBACpC6pB,YAAaxsB,EAAOyD,SAASd,EAAU,iBAE3C,mCAAoC,CAChC6iB,SAAUxlB,EAAOyD,SAASynB,IAE9B,4BAA6B,CACzByK,eAAgB31B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAChEmxB,0BAA2B51B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC3EoxB,uBAAwB71B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KACxEqxB,2BAA4B91B,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAE3F,2BAA4B,CACxBwO,MAAOtQ,EAAU,eACjB8pB,WAAYzsB,EAAO0D,WAAW,CAAEC,SAAS,IACzC+oB,WAAY1sB,EAAO0D,WAAW,CAAEC,SAAS,IACzCgpB,qBAAsB3sB,EAAO2F,cAC7BinB,aAAc5sB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aAEtF,iBAAkB,CACd4pB,aAAc7sB,EAAOkD,IAAIlD,EAAO2F,eAChCowB,WAAY/1B,EAAOkD,IAAIlD,EAAO2F,eAC9BmnB,aAAcnqB,EAAU,gBACxBqzB,cAAerzB,EAAU,wBACzBoqB,eAAgBpqB,EAAU,wBAC1BszB,iBAAkBtzB,EAAU,wBAC5BsqB,aAAcjtB,EAAO8C,WAAW,CAC5BmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAC1DiqB,YAAaltB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC7D0oB,cAAentB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC/D2oB,cAAeptB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC/D,CAACzE,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,iCAAkC,CAC9BguB,YAAavjB,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,KACjD0xB,sBAAuBn2B,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,QAGnF,CAAEjB,QAAS,iBACd8pB,eAAgBrtB,EAAO8C,WAAW,CAC9BmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kCAC1DynB,OAAQ/X,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,KAC5CxC,OAAQ0Q,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,KAC5C,CAACzE,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,gCAAiC,CAC7B1G,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAE5D,gCAAiC,CAC7BjD,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAE5D,iCAAkC,CAC9BjD,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAE5D,kCAAmC,CAC/BjD,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAE5D,qCAAsC,CAClC6oB,aAAc3a,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAEtD,gCAAiC,CAC7BjD,OAAQmR,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MAEhD,yCAA0C,CACtC2xB,eAAgBzjB,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,MACpD4xB,wBAAyBr2B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAE7E,kCAAmC,CAC/B8oB,aAAc5a,EAAS/L,YAAY,CAAEpC,IAAK,EAAGC,IAAK,QAG3D,CAAElB,QAAS,iBAAkB4E,sBAAsB,IACtDqlB,WAAYxtB,EAAOyD,SAASzD,EAAO8C,WAAW,CAC1CmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kCAC1D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,yBAA0B,CACtBH,SAAUpF,EAAU,yBAExB,oBAAqB,CACjBqH,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,kBAAmB,CACfuF,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,OAGvD,CAAElB,QAAS,qBAElB,6BAA8B,CAC1B+yB,mBAAoBt2B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACpE8xB,8BAA+Bv2B,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC/E+xB,yCAA0Cx2B,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAE/E,6BAA8BqsB,EAC9B,yCAA0CA,IAE/C,CAAEvtB,QAAS,aACf,CAAEA,QAAS,YAAc,CACxBC,QAAS,KAAM,CACXS,KAAM,sBACNH,OAAQ,CACJsnB,UAAW,CACPnnB,KAAM,kBACNH,OAAQ,CACJ+G,MAAO,IAGf2I,QAAS,CACLvP,KAAM,iBACNH,OAAQ,CACJ2T,gBAAiB,EACjBoV,cAAc,EACdC,aAAc,GACdG,aAAc,CACVC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZ3C,OAAQ,EACRzoB,OAAQ,EACRT,OAAQ,WAOhCgB,EAAQI,SAAS,eAAgB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC1DmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAC1DwqB,mBAAoBztB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,MAChE,CAACzE,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,oCAAqC,CACjC0C,MAAO5K,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAClEipB,WAAY1tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACvEkpB,WAAY3tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAE3E,sCAAuC,CACnCmG,MAAO5K,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAClEmpB,YAAa5tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACxEipB,WAAY1tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACvEopB,YAAa7tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACxEkpB,WAAY3tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,SAGhF,CAAE0D,sBAAsB,IAAS,CAChC3E,QAAS,KAAM,CACXS,KAAM,yCAGdzB,EAAQI,SAAS,uBAAwB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAClEmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,wCAC1D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,0CAA2C,CACvCtJ,SAAU8D,IACVqa,OAAQpK,EAAS/L,cACjB+B,OAAQhG,EAAU,yBAEtB,mCAAoC,CAChCsQ,MAAOtQ,EAAU,gBAErB,kCAAmC,CAC/BsQ,MAAOtQ,EAAU,gBAErB,oCAAqC,CACjCwI,QAASnL,EAAOyD,SAASzD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAClD0e,OAAQxhB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAChDmU,KAAMhW,EAAU,iBAChB,CACAa,QAAS,KAAM,CACXmV,KAAM,WAKvB,CAAEpV,QAAS,yBAA2B,CACrCC,QAAS,KAAM,CACXS,KAAM,uCAGdzB,EAAQI,SAAS,eAAgB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC1DmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAC1D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,0BAA2B,CACvBlG,KAAM2Q,EAAS/L,YAAY,CAAEpC,IAAK,OAG3C,CAAEjB,QAAS,iBAAmB,CAC7BC,QAAS,KAAM,CACXS,KAAM,uC,6BCvclBtG,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQwqB,8BAA2B,EACnC,MAAMvnB,EAAS,EAAQ,GACjB2S,EAAW,EAAQ,GAkGzB5V,EAAQwqB,yBAjGR,SAAkC/kB,EAASC,GACvC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC5DtF,KAAMwC,EAAO6C,IAAIH,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,2BAA4B2Z,cAAc,KAAW,CACtH/U,QAAUC,GAASA,EAAKsJ,WAAW9I,OAAS,IAEhDzH,sBAAuBb,EAAO0D,WAAW,CAAEC,SAAS,IACpD7C,uBAAwBd,EAAO0D,WAAW,CAAEC,SAAS,IACrD5C,UAAWf,EAAO0D,WAAW,CAAEC,SAAS,IACxC3C,uBAAwBhB,EAAO2F,cAC/BqB,oBAAqBhH,EAAO2F,cAC5BsB,iBAAkBjH,EAAO2F,cACzBuB,kBAAmBlH,EAAO2F,cAC1BxD,cAAeQ,EAAU,eACzBN,cAAeM,EAAU,eACzB1B,MAAOjB,EAAO8C,WAAW,CACrBiE,MAAO/G,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,KAAM,KAAMC,IAAK,OAC3DjD,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OACxDvD,eAAgBlB,EAAO0D,aACvBvC,eAAgBnB,EAAO0D,aACvBpC,gBAAiBtB,EAAO0D,WAAW,CAAEC,SAAS,IAC9CpC,cAAevB,EAAO0D,WAAW,CAAEC,SAAS,IAC5CvC,sBAAuBpB,EAAO2F,cAC9BtE,sBAAuBrB,EAAOkD,IAAIlD,EAAO2F,eACzCe,sBAAuB1G,EAAOkD,IAAIlD,EAAO2F,eACzCgB,UAAW3G,EAAOkD,IAAIlD,EAAO2F,eAC7BlE,SAAUzB,EAAO8C,WAAW,CACxBpB,SAAU1B,EAAO0D,aACjB/B,QAAS3B,EAAO0D,aAChB9B,UAAW5B,EAAO0D,aAClB7B,SAAU7B,EAAO0D,eAErBxB,aAAclC,EAAO8C,WAAW,CAC5Bf,OAAQ/B,EAAO0D,WAAW,CAAEC,SAAS,IACrC3B,KAAMhC,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAC9CvC,OAAQjC,EAAO0D,WAAW,CAAEC,SAAS,MAEzC7B,UAAW9B,EAAO8C,WAAW,CACzBf,OAAQ/B,EAAO0D,WAAW,CAAEC,SAAS,IACrC3B,KAAMhC,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAC9CvC,OAAQjC,EAAO0D,WAAW,CAAEC,SAAS,QAG7C+hB,WAAY/iB,EAAU,yBACvB,CAAEY,QAAS,mBAAqBW,IAAQ,CACvCV,QAAS,IAAMmP,EAAS/S,qBACxBwM,SAAU,CAACtE,EAAM5J,EAAOsS,EAAQgB,KAC5B,IAAInN,EAAIC,EAAIC,EAAIkyB,EAWhB,OAT0E,QAApEpyB,EAAKnG,OADXA,EAAQgG,EAAKkI,SAAStE,EAAM5J,EAAOsS,EAAQgB,SACK,EAAStT,EAAM+C,aAA0B,IAAPoD,OAAgB,EAASA,EAAG0C,QAA+E,QAApEzC,EAAKpG,aAAqC,EAASA,EAAM+C,aAA0B,IAAPqD,OAAgB,EAASA,EAAG9C,QAAU,MACvOgP,EAAOpF,IAAItD,EAAKxE,KAAK,SAASA,KAAK,UAAW,0BAA2B,OAEH,QAApEiB,EAAKrG,aAAqC,EAASA,EAAM+C,aAA0B,IAAPsD,OAAgB,EAASA,EAAG/C,QAAU,IAAO,GAC3HgP,EAAOpF,IAAItD,EAAKxE,KAAK,SAASA,KAAK,UAAW,wBAAyB,KAED,QAApEmzB,EAAKv4B,aAAqC,EAASA,EAAM+C,aAA0B,IAAPw1B,OAAgB,EAASA,EAAG1vB,OAAS,IAAO,GAC1HyJ,EAAOpF,IAAItD,EAAKxE,KAAK,SAASA,KAAK,SAAU,uBAAwB,IAElEpF,OAGfsE,EAAQI,SAAS,uBAAwB5C,EAAO8C,WAAW,CACvDkrB,WAAYhuB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCyR,SAAUvU,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAC1DQ,OAAQjF,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OACxDoG,MAAO7K,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,UAE3DihB,WAAY1lB,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAAmCjD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3ImrB,QAASjuB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OACzDypB,WAAYluB,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAAUP,IAAS,CACtFkI,SAAU,CAACtE,EAAM5J,EAAOsS,EAAQgB,KACxB1J,EAAKgC,MAAMxG,KAAK,WAAWxF,OAASI,GACpCsS,EAAOpF,IAAItD,EAAM,oCAEd5D,EAAKkI,SAAStE,EAAM5J,EAAOsS,EAAQgB,OAGlD2c,KAAMnuB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,KAC/C,CAAEjB,QAAS,wBAA0B,CACpCC,QAAS,KAAM,CACXyqB,QAAS,GACTC,WAAY,EACZC,KAAM,UAIlB3rB,EAAQI,SAAS,kBAAmB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7DsC,MAAO1C,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAC3DzB,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,MAChD,CACAhB,QAAS,KAAM,CACX4B,MAAO,kBACP5D,OAAQ,S,6BCjGpB7D,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQyqB,iCAA8B,EACtC,MAAMxnB,EAAS,EAAQ,GA6CvBjD,EAAQyqB,4BA5CR,SAAqChlB,EAASC,GAC1C,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C2rB,EAAqB,CACvBC,WAAY3rB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,6BAChEjB,KAAMhC,EAAO0D,WAAW,CAAEC,SAAS,KAEvCnB,EAAQI,SAAS,+BAAgC5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC1EmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAC1Da,OAAQ9D,EAAO8C,WAAW,CACtB,CAAC9C,EAAOiI,QAAS,CAAC,MAAO,CAAE3E,KAAM,SACjC,CAACtD,EAAOkI,MAAO,CACX,4BAA6BkmB,EAC7B,4BAA6B,CACzBpkB,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,sBAAuB,CACnBR,KAAMvB,EAAW,CAAEmC,KAAM,CAAC,SAAU,UACpCmF,YAAahK,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,uBAAwB,CACpB6pB,WAAY5rB,EAAW,CAAEmC,KAAM,CAAC,OAAQ,UACxC0pB,kBAAmBvuB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACpD+pB,oBAAqBxuB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAE1D,6BAA8B2pB,EAC9B,0BAA2B,CACvBK,YAAa/rB,EAAW,CAAEmC,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpG,sBAAuB,CACnB6pB,WAAY1uB,EAAO2F,eAEvB,oBAAqByoB,IAE1B,CAAE7qB,QAAS,oBAAqB4E,sBAAsB,KAC1D,CAAE5E,QAAS,sBAAwB,CAClCC,QAAS,KAAM,CACXS,KAAM,4BACNH,OAAQ,CACJuqB,WAAY,2BACZrsB,KAAM,U,6BC1CtBrE,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ0qB,+BAA4B,EACpC,MAAMznB,EAAS,EAAQ,GA+BvBjD,EAAQ0qB,0BA9BR,SAAmCjlB,EAASC,GACxC,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CE,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GACnDA,EAAQI,SAAS,6BAA8B5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACxEmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,8BAC1Da,OAAQ9D,EAAO8C,WAAW,CACtB6rB,aAAchsB,EAAU,eACxBisB,eAAgBjsB,EAAU,eAC1BksB,oBAAqBlsB,EAAU,gBAChC,CAAEY,QAAS,qBACf,CAAEA,QAAS,oBAAsB,CAChCC,QAAS,KAAM,CACXS,KAAM,oBACNH,OAAQ,CACJ6qB,aAAc,CACVvsB,KAAM,wBACNE,WAAY,CACRwsB,MAAO,UAGfF,eAAgB,CACZxsB,KAAM,kBAEVysB,oBAAqB,CACjBzsB,KAAM,4B,6BC3B1BzE,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ2qB,6BAA0B,EAClC,MAAM1nB,EAAS,EAAQ,GACvB,EAAQ,GACR,MAAMgnB,EAAkB,EAAQ,GAiEhCjqB,EAAQ2qB,wBAhER,SAAiCllB,EAASC,GACtC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3DtF,KAAMkF,IACNsP,SAAUtP,IACVqsB,SAAU/uB,EAAOyD,SAASd,EAAU,+BACrC,CAAEY,QAAS,kBAAoB,CAC9BC,QAAS,KAAM,CACXwO,SAAU,kBACV+c,SAAU,CACN,CACIvN,OAAQ,EACRhS,QAAS,CACLwf,aAAc,gCACdC,WAAY,QACZ9hB,WAAY,0BAMhC3K,EAAQI,SAAS,4BAA6B5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACvE0e,OAAQxhB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAChDgL,QAAS7M,EAAU,qBACpB,CAAEuH,SAAU,SAAW,CACtB1G,QAAS,KAAM,CACXge,OAAQ,EACRhS,QAAS,CACLwf,aAAc,gCACdC,WAAY,QACZ9hB,WAAY,wBAIxB3K,EAAQI,SAAS,mBAAoB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC9DksB,aAActsB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,qCAClEgsB,WAAYvsB,EAAW,CAAEmC,KAAM,CAAC,QAAS,sBACzC,CAAC7E,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,iBAC1B,CAACtD,EAAOkI,MAAO,CACX,iCAAkC,CAC9BsL,QAAS9Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kCAC7DkK,WAAY6Z,EAAgB9Z,YAEhC,uCAAwC,CACpCoH,SAAU5R,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAC9DkK,WAAY6Z,EAAgB9Z,YAEhC,8BAA+B,CAC3B6hB,SAAU/uB,EAAOyD,SAASd,EAAU,sBAExC,gCAAiC,CAC7B2R,SAAU5R,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAC9DkK,WAAY6Z,EAAgB9Z,cAGrC,CAAE3J,QAAS,mBAAoB4E,sBAAsB,IAAS,CAC7D3E,QAAS,KAAM,CACXwrB,aAAc,gCACdC,WAAY,QACZ9hB,WAAY,yB,6BCjExBxP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQsnB,8BAA2B,EACnC,MAAMrkB,EAAS,EAAQ,GAgGvBjD,EAAQsnB,yBA/FR,SAAkC7hB,EAASC,GACvC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC5DosB,kBAAmBlvB,EAAO2F,cAC1BwpB,YAAanvB,EAAO2F,cACpB2F,KAAMtL,EAAO0D,WAAW,CAAEC,SAAS,IACnCyrB,WAAYpvB,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAAmBN,EAAU,eAC7G,CAAEY,QAAS,mBAAqB,CAC/BC,QAAS,KACL,MAAM8H,EAAOqa,KAAKC,MAAsB,WAAhBD,KAAKE,UAA2B,WACxD,MAAO,CACHqJ,mBAAmB,EACnBC,aAAa,EACb7jB,OACA8jB,WAAY,CACR,sBAAuB,CACnBnrB,KAAM,sBACN2gB,UAAW,CACP3gB,KAAM,kBACNqH,OACAuZ,aAAc,CACV5gB,KAAM,4BACNqH,QAEJga,SAAU,wBAGlB,uBAAwB,CACpBrhB,KAAM,uBACN2gB,UAAW,CACP3gB,KAAM,kBACNqH,OACAuZ,aAAc,CACV5gB,KAAM,wBACNqH,OACA2Z,eAAgB,CACZiB,aAAc,EACdC,WAAY,CAAC,EAAK,IAEtBpB,eAAgB,CACZmB,aAAc,EACdC,WAAY,CAAC,EAAK,IAEtBjB,gBAAiB,CACbgB,aAAc,EACdC,WAAY,CAAC,EAAK,IAEtBnB,kBAAmB,CACfkB,aAAc,EACdC,WAAY,CAAC,EAAK,IAEtBhB,OAAQ,CACJ,CACIvb,WAAY,CAAEkc,SAAU,EAAKG,UAAW,EAAKhkB,OAAQ,EAAK8jB,YAAa,EAAKC,SAAU,GACtFzS,MAAO,2BAEX,CACI3J,WAAY,CAAEkc,SAAU,EAAKG,UAAW,EAAKhkB,OAAQ,EAAK8jB,YAAa,EAAKC,UAAW,IACvFzS,MAAO,8BAEX,CACI3J,WAAY,CAAEkc,SAAU,EAAKG,UAAW,EAAKhkB,OAAQ,EAAK8jB,YAAa,GAAKC,SAAU,GACtFzS,MAAO,4BAEX,CACI3J,WAAY,CAAEkc,SAAU,EAAKG,UAAW,EAAKhkB,OAAQ,KAAO8jB,YAAa,EAAKC,SAAU,IACxFzS,MAAO,2BAEX,CACI3J,WAAY,CAAEkc,SAAU,EAAKG,UAAW,EAAKhkB,OAAQ,KAAO8jB,aAAc,GAAKC,SAAU,GACzFzS,MAAO,6BAInB+R,SAAU,qBAGlB,oBAAqB,CACjBrhB,KAAM,oBACN2gB,UAAW,CACP3gB,KAAM,kBACNqH,OACAuZ,aAAc,CACV5gB,KAAM,oBACNqH,QAEJga,SAAU,0B,iBC3FtC,mBA2BA,SAAUoR,EAAQ15B,EAAQ25B,GAE1B,SAASC,EAAKtrB,GACZ,IAgDI5M,EAhDAm4B,EAAK33B,KAAM43B,GAgDXp4B,EAAI,WAEG,SAASia,GAClBA,EAAOoe,OAAOpe,GACd,IAAK,IAAI1b,EAAI,EAAGA,EAAI0b,EAAKrQ,OAAQrL,IAAK,CAEpC,IAAI+5B,EAAI,oBADRt4B,GAAKia,EAAKse,WAAWh6B,IAGrB+5B,GADAt4B,EAAIs4B,IAAM,EAGVt4B,GADAs4B,GAAKt4B,KACK,EAEVA,GAAS,YADTs4B,GAAKt4B,GAGP,OAAmB,wBAAXA,IAAM,KA5DhBm4B,EAAGK,KAAO,WACR,IAAI/4B,EAAI,QAAU04B,EAAGM,GAAY,uBAAPN,EAAGv5B,EAG7B,OAFAu5B,EAAGM,GAAKN,EAAGO,GACXP,EAAGO,GAAKP,EAAGQ,GACJR,EAAGQ,GAAKl5B,GAAK04B,EAAGv5B,EAAQ,EAAJa,IAI7B04B,EAAGv5B,EAAI,EACPu5B,EAAGM,GAAKL,EAAK,KACbD,EAAGO,GAAKN,EAAK,KACbD,EAAGQ,GAAKP,EAAK,KACbD,EAAGM,IAAML,EAAKxrB,GACVurB,EAAGM,GAAK,IAAKN,EAAGM,IAAM,GAC1BN,EAAGO,IAAMN,EAAKxrB,GACVurB,EAAGO,GAAK,IAAKP,EAAGO,IAAM,GAC1BP,EAAGQ,IAAMP,EAAKxrB,GACVurB,EAAGQ,GAAK,IAAKR,EAAGQ,IAAM,GAC1BP,EAAO,KAGT,SAASnnB,EAAK/D,EAAGzN,GAKf,OAJAA,EAAEb,EAAIsO,EAAEtO,EACRa,EAAEg5B,GAAKvrB,EAAEurB,GACTh5B,EAAEi5B,GAAKxrB,EAAEwrB,GACTj5B,EAAEk5B,GAAKzrB,EAAEyrB,GACFl5B,EAGT,SAASm5B,EAAKhsB,EAAMisB,GAClB,IAAIC,EAAK,IAAIZ,EAAKtrB,GACd2H,EAAQskB,GAAQA,EAAKtkB,MACrBwkB,EAAOD,EAAGN,KAUd,OATAO,EAAKC,MAAQ,WAAa,OAAoB,WAAZF,EAAGN,OAAwB,GAC7DO,EAAKE,OAAS,WACZ,OAAOF,IAAmC,uBAAhB,QAATA,IAAoB,IAEvCA,EAAKG,MAAQH,EACTxkB,IACmB,iBAAX,GAAqBtD,EAAKsD,EAAOukB,GAC3CC,EAAKxkB,MAAQ,WAAa,OAAOtD,EAAK6nB,EAAI,MAErCC,EAyBLz6B,GAAUA,EAAOD,QACnBC,EAAOD,QAAUu6B,EACR,MAAU,UACe,KAAlC,aAAoB,OAAOA,GAAO,8BAElCp4B,KAAKqP,KAAO+oB,EA7Ed,CAiFEp4B,EAC+BlC,EAC/B,Q,qCC9GF,mBAGA,SAAU05B,EAAQ15B,EAAQ25B,GAE1B,SAASkB,EAAOvsB,GACd,IAAIurB,EAAK33B,KAAM44B,EAAU,GAEzBjB,EAAGzjB,EAAI,EACPyjB,EAAGxjB,EAAI,EACPwjB,EAAGvjB,EAAI,EACPujB,EAAGkB,EAAI,EAGPlB,EAAGK,KAAO,WACR,IAAI/4B,EAAI04B,EAAGzjB,EAAKyjB,EAAGzjB,GAAK,GAIxB,OAHAyjB,EAAGzjB,EAAIyjB,EAAGxjB,EACVwjB,EAAGxjB,EAAIwjB,EAAGvjB,EACVujB,EAAGvjB,EAAIujB,EAAGkB,EACHlB,EAAGkB,GAAMlB,EAAGkB,IAAM,GAAM55B,EAAKA,IAAM,GAGxCmN,KAAiB,EAAPA,GAEZurB,EAAGzjB,EAAI9H,EAGPwsB,GAAWxsB,EAIb,IAAK,IAAInM,EAAI,EAAGA,EAAI24B,EAAQxvB,OAAS,GAAInJ,IACvC03B,EAAGzjB,GAA6B,EAAxB0kB,EAAQb,WAAW93B,GAC3B03B,EAAGK,OAIP,SAASvnB,EAAK/D,EAAGzN,GAKf,OAJAA,EAAEiV,EAAIxH,EAAEwH,EACRjV,EAAEkV,EAAIzH,EAAEyH,EACRlV,EAAEmV,EAAI1H,EAAE0H,EACRnV,EAAE45B,EAAInsB,EAAEmsB,EACD55B,EAGT,SAASm5B,EAAKhsB,EAAMisB,GAClB,IAAIC,EAAK,IAAIK,EAAOvsB,GAChB2H,EAAQskB,GAAQA,EAAKtkB,MACrBwkB,EAAO,WAAa,OAAQD,EAAGN,SAAW,GAAK,YAenD,OAdAO,EAAKE,OAAS,WACZ,GACE,IAEI9f,IAFM2f,EAAGN,SAAW,KACbM,EAAGN,SAAW,GAAK,aACF,GAAK,UACf,IAAXrf,GACT,OAAOA,GAET4f,EAAKC,MAAQF,EAAGN,KAChBO,EAAKG,MAAQH,EACTxkB,IACmB,iBAAX,GAAqBtD,EAAKsD,EAAOukB,GAC3CC,EAAKxkB,MAAQ,WAAa,OAAOtD,EAAK6nB,EAAI,MAErCC,EAGLz6B,GAAUA,EAAOD,QACnBC,EAAOD,QAAUu6B,EACR,MAAU,UACe,KAAlC,aAAoB,OAAOA,GAAO,8BAElCp4B,KAAKsP,OAAS8oB,EApEhB,CAwEEp4B,EAC+BlC,EAC/B,Q,qCC7EF,mBAGA,SAAU05B,EAAQ15B,EAAQ25B,GAE1B,SAASkB,EAAOvsB,GACd,IAAIurB,EAAK33B,KAAM44B,EAAU,GAGzBjB,EAAGK,KAAO,WACR,IAAI/4B,EAAK04B,EAAGzjB,EAAKyjB,EAAGzjB,IAAM,EAE1B,OADAyjB,EAAGzjB,EAAIyjB,EAAGxjB,EAAGwjB,EAAGxjB,EAAIwjB,EAAGvjB,EAAGujB,EAAGvjB,EAAIujB,EAAGkB,EAAGlB,EAAGkB,EAAIlB,EAAGzyB,GACzCyyB,EAAGt5B,EAAKs5B,EAAGt5B,EAAI,OAAS,IAC5Bs5B,EAAGzyB,EAAKyyB,EAAGzyB,EAAKyyB,EAAGzyB,GAAK,EAAOjG,EAAKA,GAAK,GAAO,GAGtD04B,EAAGzjB,EAAI,EACPyjB,EAAGxjB,EAAI,EACPwjB,EAAGvjB,EAAI,EACPujB,EAAGkB,EAAI,EACPlB,EAAGzyB,EAAI,EAEHkH,KAAiB,EAAPA,GAEZurB,EAAGzjB,EAAI9H,EAGPwsB,GAAWxsB,EAIb,IAAK,IAAInM,EAAI,EAAGA,EAAI24B,EAAQxvB,OAAS,GAAInJ,IACvC03B,EAAGzjB,GAA6B,EAAxB0kB,EAAQb,WAAW93B,GACvBA,GAAK24B,EAAQxvB,SACfuuB,EAAGt5B,EAAIs5B,EAAGzjB,GAAK,GAAKyjB,EAAGzjB,IAAM,GAE/ByjB,EAAGK,OAIP,SAASvnB,EAAK/D,EAAGzN,GAOf,OANAA,EAAEiV,EAAIxH,EAAEwH,EACRjV,EAAEkV,EAAIzH,EAAEyH,EACRlV,EAAEmV,EAAI1H,EAAE0H,EACRnV,EAAE45B,EAAInsB,EAAEmsB,EACR55B,EAAEiG,EAAIwH,EAAExH,EACRjG,EAAEZ,EAAIqO,EAAErO,EACDY,EAGT,SAASm5B,EAAKhsB,EAAMisB,GAClB,IAAIC,EAAK,IAAIK,EAAOvsB,GAChB2H,EAAQskB,GAAQA,EAAKtkB,MACrBwkB,EAAO,WAAa,OAAQD,EAAGN,SAAW,GAAK,YAenD,OAdAO,EAAKE,OAAS,WACZ,GACE,IAEI9f,IAFM2f,EAAGN,SAAW,KACbM,EAAGN,SAAW,GAAK,aACF,GAAK,UACf,IAAXrf,GACT,OAAOA,GAET4f,EAAKC,MAAQF,EAAGN,KAChBO,EAAKG,MAAQH,EACTxkB,IACmB,iBAAX,GAAqBtD,EAAKsD,EAAOukB,GAC3CC,EAAKxkB,MAAQ,WAAa,OAAOtD,EAAK6nB,EAAI,MAErCC,EAGLz6B,GAAUA,EAAOD,QACnBC,EAAOD,QAAUu6B,EACR,MAAU,UACe,KAAlC,aAAoB,OAAOA,GAAO,8BAElCp4B,KAAKuP,OAAS6oB,EAzEhB,CA6EEp4B,EAC+BlC,EAC/B,Q,qCClFF,mBAKA,SAAU05B,EAAQ15B,EAAQ25B,GAE1B,SAASkB,EAAOvsB,GACd,IAAIurB,EAAK33B,KAGT23B,EAAGK,KAAO,WAER,IAAwB/4B,EAAGiG,EAAvB4zB,EAAInB,EAAGzjB,EAAGnW,EAAI45B,EAAG55B,EAQrB,OAPAkB,EAAI65B,EAAE/6B,GAAoBmH,GAAhBjG,GAAMA,IAAM,GAAaA,GAAK,GACpBiG,IAApBjG,EAAI65B,EAAG/6B,EAAI,EAAK,IAAckB,IAAM,GAChBiG,IAApBjG,EAAI65B,EAAG/6B,EAAI,EAAK,IAAckB,IAAM,EAChBiG,IAApBjG,EAAI65B,EAAG/6B,EAAI,EAAK,IAAckB,GAAK,EACnCA,EAAI65B,EAAG/6B,EAAI,EAAK,GAAuBmH,IAAnBjG,GAASA,GAAK,IAAeA,GAAK,EACtD65B,EAAE/6B,GAAKmH,EACPyyB,EAAG55B,EAAKA,EAAI,EAAK,EACVmH,GAGT,SAAcyyB,EAAIvrB,GAChB,IAAI2sB,EAAMD,EAAI,GAEd,GAAI1sB,KAAiB,EAAPA,GAER0sB,EAAE,GAAK1sB,OAIX,IADAA,EAAO,GAAKA,EACP2sB,EAAI,EAAGA,EAAI3sB,EAAKhD,SAAU2vB,EAC7BD,EAAM,EAAJC,GAAUD,EAAM,EAAJC,IAAU,GACnB3sB,EAAK2rB,WAAWgB,GAAKD,EAAGC,EAAI,EAAK,IAAM,GAIhD,KAAOD,EAAE1vB,OAAS,GAAG0vB,EAAE10B,KAAK,GAC5B,IAAK20B,EAAI,EAAGA,EAAI,GAAc,IAATD,EAAEC,KAAYA,GAOnC,IANS,GAALA,EAAYD,EAAE,IAAM,EAAYA,EAAEC,GAEtCpB,EAAGzjB,EAAI4kB,EACPnB,EAAG55B,EAAI,EAGFg7B,EAAI,IAAKA,EAAI,IAAKA,EACrBpB,EAAGK,OAIPgB,CAAKrB,EAAIvrB,GAGX,SAASqE,EAAK/D,EAAGzN,GAGf,OAFAA,EAAEiV,EAAIxH,EAAEwH,EAAE7D,QACVpR,EAAElB,EAAI2O,EAAE3O,EACDkB,EAGT,SAASm5B,EAAKhsB,EAAMisB,GACN,MAARjsB,IAAcA,GAAQ,IAAK6sB,MAC/B,IAAIX,EAAK,IAAIK,EAAOvsB,GAChB2H,EAAQskB,GAAQA,EAAKtkB,MACrBwkB,EAAO,WAAa,OAAQD,EAAGN,SAAW,GAAK,YAenD,OAdAO,EAAKE,OAAS,WACZ,GACE,IAEI9f,IAFM2f,EAAGN,SAAW,KACbM,EAAGN,SAAW,GAAK,aACF,GAAK,UACf,IAAXrf,GACT,OAAOA,GAET4f,EAAKC,MAAQF,EAAGN,KAChBO,EAAKG,MAAQH,EACTxkB,IACEA,EAAMG,GAAGzD,EAAKsD,EAAOukB,GACzBC,EAAKxkB,MAAQ,WAAa,OAAOtD,EAAK6nB,EAAI,MAErCC,EAGLz6B,GAAUA,EAAOD,QACnBC,EAAOD,QAAUu6B,EACR,MAAU,UACe,KAAlC,aAAoB,OAAOA,GAAO,8BAElCp4B,KAAKwP,UAAY4oB,EAnFnB,CAuFEp4B,EAC+BlC,EAC/B,Q,qCC9FF,mBAyBA,SAAU05B,EAAQ15B,EAAQ25B,GAE1B,SAASkB,EAAOvsB,GACd,IAAIurB,EAAK33B,KAGT23B,EAAGK,KAAO,WACR,IACwB/4B,EAAGiG,EADvB2zB,EAAIlB,EAAGkB,EACPC,EAAInB,EAAGmB,EAAG/6B,EAAI45B,EAAG55B,EAcrB,OAZA45B,EAAGkB,EAAIA,EAAKA,EAAI,WAAc,EAE9B3zB,EAAI4zB,EAAG/6B,EAAI,GAAM,KACjBkB,EAAI65B,EAAE/6B,EAAMA,EAAI,EAAK,KACrBmH,GAAKA,GAAK,GACVjG,GAAKA,GAAK,GACViG,GAAKA,IAAM,GACXjG,GAAKA,IAAM,GAEXiG,EAAI4zB,EAAE/6B,GAAKmH,EAAIjG,EACf04B,EAAG55B,EAAIA,EAECmH,GAAK2zB,EAAKA,IAAM,IAAQ,GAGlC,SAAclB,EAAIvrB,GAChB,IAAInN,EAAGiG,EAAGnH,EAAGg7B,EAAGF,EAAGC,EAAI,GAAIptB,EAAQ,IAYnC,IAXIU,KAAiB,EAAPA,IAEZlH,EAAIkH,EACJA,EAAO,OAGPA,GAAc,KACdlH,EAAI,EACJwG,EAAQ+a,KAAKlhB,IAAImG,EAAOU,EAAKhD,SAG1BrL,EAAI,EAAGg7B,GAAK,GAAIA,EAAIrtB,IAASqtB,EAE5B3sB,IAAMlH,GAAKkH,EAAK2rB,YAAYgB,EAAI,IAAM3sB,EAAKhD,SAErC,IAAN2vB,IAASF,EAAI3zB,GACjBA,GAAKA,GAAK,GACVA,GAAKA,IAAM,GACXA,GAAKA,GAAK,EACVA,GAAKA,IAAM,GACP6zB,GAAK,IACPF,EAAKA,EAAI,WAAc,EAEvB96B,EAAK,IADLkB,EAAK65B,EAAM,IAAJC,IAAa7zB,EAAI2zB,GACT96B,EAAI,EAAI,GAW3B,IAPIA,GAAK,MACP+6B,EAA+B,KAA5B1sB,GAAQA,EAAKhD,QAAU,KAAa,GAKzCrL,EAAI,IACCg7B,EAAI,IAASA,EAAI,IAAKA,EACzB7zB,EAAI4zB,EAAG/6B,EAAI,GAAM,KACjBkB,EAAI65B,EAAE/6B,EAAMA,EAAI,EAAK,KACrBmH,GAAKA,GAAK,GACVjG,GAAKA,GAAK,GACViG,GAAKA,IAAM,GACXjG,GAAKA,IAAM,GACX65B,EAAE/6B,GAAKmH,EAAIjG,EAGb04B,EAAGkB,EAAIA,EACPlB,EAAGmB,EAAIA,EACPnB,EAAG55B,EAAIA,EAGTi7B,CAAKrB,EAAIvrB,GAGX,SAASqE,EAAK/D,EAAGzN,GAIf,OAHAA,EAAElB,EAAI2O,EAAE3O,EACRkB,EAAE45B,EAAInsB,EAAEmsB,EACR55B,EAAE65B,EAAIpsB,EAAEosB,EAAEzoB,QACHpR,EAGT,SAASm5B,EAAKhsB,EAAMisB,GACN,MAARjsB,IAAcA,GAAQ,IAAK6sB,MAC/B,IAAIX,EAAK,IAAIK,EAAOvsB,GAChB2H,EAAQskB,GAAQA,EAAKtkB,MACrBwkB,EAAO,WAAa,OAAQD,EAAGN,SAAW,GAAK,YAenD,OAdAO,EAAKE,OAAS,WACZ,GACE,IAEI9f,IAFM2f,EAAGN,SAAW,KACbM,EAAGN,SAAW,GAAK,aACF,GAAK,UACf,IAAXrf,GACT,OAAOA,GAET4f,EAAKC,MAAQF,EAAGN,KAChBO,EAAKG,MAAQH,EACTxkB,IACEA,EAAM+kB,GAAGroB,EAAKsD,EAAOukB,GACzBC,EAAKxkB,MAAQ,WAAa,OAAOtD,EAAK6nB,EAAI,MAErCC,EAGLz6B,GAAUA,EAAOD,QACnBC,EAAOD,QAAUu6B,EACR,MAAU,UACe,KAAlC,aAAoB,OAAOA,GAAO,8BAElCp4B,KAAKyP,QAAU2oB,EAjHjB,CAqHEp4B,EAC+BlC,EAC/B,Q,qCChJF,mBAIA,SAAU05B,EAAQ15B,EAAQ25B,GAE1B,SAASkB,EAAOvsB,GACd,IAAIurB,EAAK33B,KAAM44B,EAAU,GAGzBjB,EAAGK,KAAO,WACR,IAAI/kB,EAAI0kB,EAAG1kB,EAAG7U,EAAIu5B,EAAGv5B,EAAGC,EAAIs5B,EAAGt5B,EAAG2U,EAAI2kB,EAAG3kB,EAQzC,OAPAC,EAAKA,GAAK,GAAOA,IAAM,EAAK7U,EAC5BA,EAAKA,EAAIC,EAAK,EACdA,EAAKA,GAAK,GAAOA,IAAM,EAAK2U,EAC5BA,EAAKA,EAAIC,EAAK,EACd0kB,EAAG1kB,EAAIA,EAAKA,GAAK,GAAOA,IAAM,GAAM7U,EACpCu5B,EAAGv5B,EAAIA,EAAKA,EAAIC,EAAK,EACrBs5B,EAAGt5B,EAAKA,GAAK,GAAOD,IAAM,GAAM4U,EACzB2kB,EAAG3kB,EAAKA,EAAIC,EAAK,GAmB1B0kB,EAAG3kB,EAAI,EACP2kB,EAAG1kB,EAAI,EACP0kB,EAAGv5B,GAAI,WACPu5B,EAAGt5B,EAAI,WAEH+N,IAASqa,KAAKC,MAAMta,IAEtBurB,EAAG3kB,EAAK5G,EAAO,WAAe,EAC9BurB,EAAG1kB,EAAW,EAAP7G,GAGPwsB,GAAWxsB,EAIb,IAAK,IAAInM,EAAI,EAAGA,EAAI24B,EAAQxvB,OAAS,GAAInJ,IACvC03B,EAAG1kB,GAA6B,EAAxB2lB,EAAQb,WAAW93B,GAC3B03B,EAAGK,OAIP,SAASvnB,EAAK/D,EAAGzN,GAKf,OAJAA,EAAE+T,EAAItG,EAAEsG,EACR/T,EAAEgU,EAAIvG,EAAEuG,EACRhU,EAAEb,EAAIsO,EAAEtO,EACRa,EAAEZ,EAAIqO,EAAErO,EACDY,EAGT,SAASm5B,EAAKhsB,EAAMisB,GAClB,IAAIC,EAAK,IAAIK,EAAOvsB,GAChB2H,EAAQskB,GAAQA,EAAKtkB,MACrBwkB,EAAO,WAAa,OAAQD,EAAGN,SAAW,GAAK,YAenD,OAdAO,EAAKE,OAAS,WACZ,GACE,IAEI9f,IAFM2f,EAAGN,SAAW,KACbM,EAAGN,SAAW,GAAK,aACF,GAAK,UACf,IAAXrf,GACT,OAAOA,GAET4f,EAAKC,MAAQF,EAAGN,KAChBO,EAAKG,MAAQH,EACTxkB,IACmB,iBAAX,GAAqBtD,EAAKsD,EAAOukB,GAC3CC,EAAKxkB,MAAQ,WAAa,OAAOtD,EAAK6nB,EAAI,MAErCC,EAGLz6B,GAAUA,EAAOD,QACnBC,EAAOD,QAAUu6B,EACR,MAAU,UACe,KAAlC,aAAoB,OAAOA,GAAO,8BAElCp4B,KAAK0P,OAAS0oB,EAzFhB,CA6FEp4B,EAC+BlC,EAC/B,Q,oCCnGF,OAwBA,SAAW05B,EAAQzzB,EAAMm1B,GAKzB,IAQIC,EAJAC,EAAaF,EAAKG,IAJV,IACC,GAITC,EAAeJ,EAAKG,IAAI,EAHf,IAITE,EAA0B,EAAfD,EAQf,SAASE,EAAWptB,EAAMkG,EAASmnB,GACjC,IAAIn6B,EAAM,GAINo6B,EAAYC,EAmHlB,SAASC,EAAQnnB,EAAKiW,GACpB,IAAqCmR,EAAjClhB,EAAS,GAAImhB,SAAcrnB,EAC/B,GAAIiW,GAAgB,UAAPoR,EACX,IAAKD,KAAQpnB,EACX,IAAMkG,EAAOvU,KAAKw1B,EAAQnnB,EAAIonB,GAAOnR,EAAQ,IAAO,MAAOzY,IAG/D,OAAQ0I,EAAOvP,OAASuP,EAAgB,UAAPmhB,EAAkBrnB,EAAMA,EAAM,KA1HxCmnB,EAHvBtnB,EAAsB,GAAXA,EAAmB,CAAEynB,SAAS,GAAUznB,GAAW,IAIpDynB,QAAU,CAAC3tB,EAAM4tB,EAASj2B,IACzB,MAARqI,EA8IL,WACE,IACE,IAAI6tB,EAQJ,OAPId,IAAec,EAAMd,EAAWe,aAElCD,EAAMA,EAxKA,MA0KNA,EAAM,IAAIE,WA1KJ,MA2KL3C,EAAO4C,QAAU5C,EAAO6C,UAAUC,gBAAgBL,IAE9CD,EAASC,GAChB,MAAOhqB,GACP,IAAIsqB,EAAU/C,EAAOgD,UACjBC,EAAUF,GAAWA,EAAQE,QACjC,MAAO,EAAE,IAAIxB,KAAMzB,EAAQiD,EAASjD,EAAOkD,OAAQV,EAASj2B,KA5J3C42B,GAAavuB,EAAM,GAAI9M,GAGtCs7B,EAAO,IAAIC,EAAKv7B,GAIhBi5B,EAAO,WAIT,IAHA,IAAI/4B,EAAIo7B,EAAKE,EA5BJ,GA6BLz8B,EAAI+6B,EACJllB,EAAI,EACD1U,EAAI85B,GACT95B,EAjCM,KAiCDA,EAAI0U,GACT7V,GAlCM,IAmCN6V,EAAI0mB,EAAKE,EAAE,GAEb,KAAOt7B,GAAK+5B,GACV/5B,GAAK,EACLnB,GAAK,EACL6V,KAAO,EAET,OAAQ1U,EAAI0U,GAAK7V,GAWnB,OARAk6B,EAAKC,MAAQ,WAAa,OAAmB,EAAZoC,EAAKE,EAAE,IACxCvC,EAAKG,MAAQ,WAAa,OAAOkC,EAAKE,EAAE,GAAK,YAC7CvC,EAAKE,OAASF,EAGdoB,EAAOK,EAASY,EAAKG,GAAIh3B,IAGjBuO,EAAQ0oB,MAAQvB,GACpB,SAASlB,EAAMnsB,EAAM6uB,EAAclnB,GAUjC,OATIA,IAEEA,EAAMgnB,GAAKtqB,EAAKsD,EAAO6mB,GAE3BrC,EAAKxkB,MAAQ,WAAa,OAAOtD,EAAKmqB,EAAM,MAK1CK,GAAgB/B,EAAY,OAAIX,EAAansB,GAIrCmsB,IAElBA,EACAmB,EACA,WAAYpnB,EAAUA,EAAQklB,OAAUx3B,MAAQk5B,EAChD5mB,EAAQyB,OAaV,SAAS8mB,EAAKv7B,GACZ,IAAIL,EAAGi8B,EAAS57B,EAAI8J,OAChBuuB,EAAK33B,KAAMjC,EAAI,EAAGg7B,EAAIpB,EAAG55B,EAAI45B,EAAGoB,EAAI,EAAGj5B,EAAI63B,EAAGoD,EAAI,GAMtD,IAHKG,IAAU57B,EAAM,CAAC47B,MAGfn9B,EA9FG,KA+FR+B,EAAE/B,GAAKA,IAET,IAAKA,EAAI,EAAGA,EAjGF,IAiGaA,IACrB+B,EAAE/B,GAAK+B,EAAEi5B,EA3FFoC,IA2FcpC,EAAIz5B,EAAIvB,EAAIm9B,IAAWj8B,EAAIa,EAAE/B,KAClD+B,EAAEi5B,GAAK95B,GAIR04B,EAAGmD,EAAI,SAASnvB,GAIf,IAFA,IAAI1M,EAAGJ,EAAI,EACPd,EAAI45B,EAAG55B,EAAGg7B,EAAIpB,EAAGoB,EAAGj5B,EAAI63B,EAAGoD,EACxBpvB,KACL1M,EAAIa,EAAE/B,EArGDo9B,IAqGap9B,EAAI,GACtBc,EA7GM,IA6GFA,EAAYiB,EAtGXq7B,KAsGsBr7B,EAAE/B,GAAK+B,EAAEi5B,EAtG/BoC,IAsG2CpC,EAAI95B,KAAQa,EAAEi5B,GAAK95B,IAGrE,OADA04B,EAAG55B,EAAIA,EAAG45B,EAAGoB,EAAIA,EACVl6B,IAhHC,KA2HZ,SAAS4R,EAAK/D,EAAGzN,GAIf,OAHAA,EAAElB,EAAI2O,EAAE3O,EACRkB,EAAE85B,EAAIrsB,EAAEqsB,EACR95B,EAAE87B,EAAIruB,EAAEquB,EAAE1qB,QACHpR,EAsBT,SAAS06B,EAAOvtB,EAAM9M,GAEpB,IADA,IAA4B87B,EAAxBC,EAAajvB,EAAO,GAAW2sB,EAAI,EAChCA,EAAIsC,EAAWjyB,QACpB9J,EAjJO67B,IAiJIpC,GAjJJoC,KAkJIC,GAAyB,GAAhB97B,EAlJb67B,IAkJwBpC,IAAWsC,EAAWtD,WAAWgB,KAElE,OAAOiB,EAAS16B,GA8BlB,SAAS06B,EAAShnB,GAChB,OAAO6kB,OAAOyD,aAAaC,MAAM,EAAGvoB,GAgBtC,GANA2mB,EAAOT,EAAKvS,SAAU5iB,GAMajG,EAAOD,QAAS,CACjDC,EAAOD,QAAU27B,EAEjB,IACEL,EAAa,EAAQ,IACrB,MAAOqC,eAE+B,KAAxC,aAAoB,OAAOhC,GAAa,8BAtN1C,CAiOmB,oBAATiC,KAAwBA,KAAOz7B,KACvC,GACAymB,O,uFC3PF,MAAMiV,EAAWC,IAAS,IAAMA,EAAItpB,SAAS,KAAKupB,QAAQ,GACnD,SAASC,EAAMzyB,EAAS,IAC3B,IAAI0yB,EAAM,IAAI3B,WAAW/wB,EAAS,GAElC,OADA2yB,OAAO3B,OAAOE,gBAAgBwB,GACvB/pB,MAAMoO,KAAK2b,EAAKJ,GAAS3qB,KAAK,IAElC,SAASirB,EAAW3oB,GACvB,OAAOA,EAAIlK,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QACjEA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,UAAUA,QAAQ,MAAO,UAQjE,SAAS8yB,EAAc5oB,GAC1B,MAAMykB,EAAIrR,KAAKyV,IAPZ,SAAoBp8B,GACvB,IAAIg4B,EAAI,EACR,IAAK,IAAI/5B,EAAI,EAAGA,EAAI+B,EAAEsJ,OAAQrL,IAC1B+5B,EAAIrR,KAAK0V,KAAK,GAAIrE,GAAKh4B,EAAEi4B,WAAWh6B,GAAK,EAC7C,OAAO+5B,EAGYsE,CAAW/oB,IAC9B,MAAO,CAACykB,EAAI,KAAMA,GAAK,GAAK,KAAMA,GAAK,IAAM,KAE1C,SAASuE,EAAMrpB,EAAGC,EAAG7U,GACxB,OAAOqoB,KAAKlhB,IAAIyN,EAAGyT,KAAKnhB,IAAI2N,EAAG7U,IAE5B,SAASk+B,EAAYtpB,EAAGC,EAAG7U,GAC9B,OAAIA,EAAI,EACG4U,EAEF5U,EAAI,EACF6U,EAGAspB,EAAKn+B,EAAG4U,EAAGC,GAGnB,SAASspB,EAAKvpB,EAAGC,EAAG7U,GACvB,OAAO6U,EAAID,GAAK5U,EAAI6U,GAEjB,SAASupB,EAAMxpB,EAAGC,EAAG7U,EAAGC,EAAG4R,EAAGvD,GACjC,OAAO6vB,EAAKtpB,EAAGspB,EAAKvpB,EAAG5U,EAAGC,GAAIk+B,EAAKvpB,EAAG/C,EAAGvD,IAKtC,SAAS+vB,EAAWvoB,GACvB,OAAOA,EAAIA,EAAIA,GAAKA,GAAS,EAAJA,EAAQ,IAAM,IC3CpC,MAAM,EACT,YAAYlV,GACRgB,KAAKhB,MAAQA,EACbgB,KAAK08B,SAAW,GAEpB,IAAI19B,GACA,GAAIgB,KAAKhB,QAAUA,EACf,OACJ,MAAM29B,EAAW38B,KAAKhB,MACtBgB,KAAKhB,MAAQA,EACbgB,KAAK08B,SAASh0B,QAAQmwB,GAAKA,EAAE+D,QAAQ58B,KAAKhB,MAAO29B,IAErD,MACI,OAAO38B,KAAKhB,MAEhB,SAAS49B,EAASt+B,GAEd,OADAs+B,EAAQ58B,KAAKhB,MAAO,MACbgB,KAAK68B,MAAMD,EAASt+B,GAE/B,MAAMs+B,EAASt+B,GACXA,EAAOA,QAAmCA,EAAOu9B,IACjD,MAAMhD,EAAI74B,KAAK08B,SAASI,KAAKjE,GAAKA,EAAEv6B,OAASA,GAO7C,OANIu6B,EACAA,EAAE+D,QAAUA,EAGZ58B,KAAK08B,SAASt4B,KAAK,CAAE9F,OAAMs+B,YAExB58B,MC5BR,MAAM,UAA6B,EACtC,YAAYmE,EAAI2O,GACZ,IAAI3N,EACJ+L,MAA0C,QAAnC/L,EAAK43B,aAAaC,QAAQ74B,UAAwB,IAAPgB,EAAgBA,EAAK2N,GACvE9S,KAAKmE,GAAKA,EAEd,IAAInF,GACAkS,MAAMC,IAAInS,GACV+9B,aAAaE,QAAQj9B,KAAKmE,GAAInF,GAElC,MACI,OAAOgB,KAAKhB,O,WCZhBk+B,EAAwC,SAAUjsB,EAASksB,EAAYC,EAAG1X,GAE1E,OAAO,IAAK0X,IAAMA,EAAIC,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUx+B,GAAS,IAAM0Y,EAAKgO,EAAUsS,KAAKh5B,IAAW,MAAOiR,GAAKstB,EAAOttB,IACpF,SAASwtB,EAASz+B,GAAS,IAAM0Y,EAAKgO,EAAiB,MAAE1mB,IAAW,MAAOiR,GAAKstB,EAAOttB,IACvF,SAASyH,EAAKiB,GAJlB,IAAe3Z,EAIa2Z,EAAO+kB,KAAOJ,EAAQ3kB,EAAO3Z,QAJ1CA,EAIyD2Z,EAAO3Z,MAJhDA,aAAiBo+B,EAAIp+B,EAAQ,IAAIo+B,GAAE,SAAUE,GAAWA,EAAQt+B,OAIT2+B,KAAKH,EAAWC,GAClG/lB,GAAMgO,EAAYA,EAAU6V,MAAMtqB,EAASksB,GAAc,KAAKnF,YAKtE,CAAC,OAAQ,OAAQ,QAAQtvB,QAAQxD,GAAK63B,aAAaa,WAAW,SAAS14B,IACvE,MACM24B,EAAY,qDACZC,EAAqB,8DACrBC,EAAO,CACT,CACI55B,GAAI,gBACJ65B,KAAM,2CACNC,IAAKJ,GAET,CACI15B,GAAI,2BACJ65B,KAAM,2CACNC,IAAKH,IAGN,SAASI,EAAUr7B,EAAQs7B,GAC9B,OAAOjB,EAAUl9B,UAAM,OAAQ,GAAQ,YACnC,MAAMo+B,EAAU,EAAOC,SAASvB,KAAK53B,GAAKA,EAAEf,KAAOg6B,GAC9CC,IAEDA,EAAQE,gBACFjB,QAAQkB,IAAIR,EACbtsB,OAAO5S,GAAKk+B,aAAaC,QAAQ,UAAUn+B,EAAEsF,MAAUtF,EAAEm/B,MACzDh0B,IAAKnL,GAAMq+B,EAAUl9B,UAAM,OAAQ,GAAQ,kBAgI5D,SAAwBw+B,GACpB,OAAOtB,EAAUl9B,UAAM,OAAQ,GAAQ,YACnC,MAAMy+B,QAAcC,OAAOC,KAzJhB,aA0JLC,EAAW,GACjB,IAAK,MAAMC,WAAiBJ,EAAMh2B,OAC1B+1B,EAAQK,EAAQZ,MAChBW,EAASx6B,KAAKq6B,EAAMK,OAAOD,IAGnC,aAAcxB,QAAQkB,IAAIK,IAAWx1B,OAAS,KAxIhC21B,CAAed,GAAOA,EAAIttB,WAAW,GAAG9R,EAAEo/B,OAAOG,EAAQL,KAAKl/B,EAAEsF,QACtE44B,aAAaE,QAAQ,UAAUp+B,EAAEsF,GAAMtF,EAAEm/B,kBAG3CX,QAAQkB,IAAI,CACdS,EAAgBZ,EAASv7B,GACzBo8B,EAAmBb,GACnBc,EAAuBd,EAASv7B,SAI5C,SAASm8B,EAAgBZ,EAASv7B,GAC9B,OAAOq6B,EAAUl9B,UAAM,OAAQ,GAAQ,YACnC,MAAMm/B,EAAa,EAAOA,WACrB1tB,OAAO5S,IAAMA,EAAEy/B,SACf7sB,OAAO5S,GAAKugC,GAAahB,EAAQj6B,GAAItF,EAAEwgC,WAAYxgC,EAAEygC,aAC1D,IAAIF,GAAahB,EAAQj6B,QAAIhE,EAAW,QAoBpC,OAAOk9B,QAAQkB,IAAIY,EAAWn1B,IAAKnL,GAAMq+B,EAAUl9B,UAAM,OAAQ,GAAQ,YACrE,IACI,MAAMi+B,EAAMp/B,EAAE+J,KACR,GAAGi1B,KAAaO,EAAQL,KAAKwB,iBAAiB1gC,EAAE+J,qBAChD,GAAGi1B,KAAaO,EAAQL,KAAKwB,8CAA8C1gC,EAAEsF,mBACnFtB,EAAOa,SAAS7E,EAAEsF,SAAUq7B,EAAQvB,EAAK/4B,GAAKA,EAAE2Y,SAEpD,MAAO5N,GACH0K,QAAQoD,KAAK,iCAAiClf,EAAEsF,MAAO8L,SA5BlB,CAC7C,MAAMguB,EAAM,GAAGJ,KAAaO,EAAQL,KAAKwB,kDACzC,IACI,MAAM9lB,QAAa+lB,EAAQvB,EAAMxkB,IAC7B,MAAMhN,EAAM,GAIZ,OAHAhO,OAAOgK,KAAKgR,GAAM/Q,QAAQzI,IACtBwM,EAAIxM,EAAEoQ,MAAM,KAAO5R,OAAOgK,KAAKgR,EAAKxZ,GAAGgM,WAEpCQ,IAEX0yB,EAAWz2B,QAAQ7J,IACf,IAAIsG,EACJtC,EAAOa,SAAS7E,EAAEsF,GAA0B,QAArBgB,EAAKsU,EAAK5a,EAAEsF,WAAwB,IAAPgB,EAAgBA,EAAK,MAGjF,MAAO8K,GACH0K,QAAQoD,KAAK,4CAA6C9N,QAkB1E,SAASgvB,EAAmBb,GACxB,OAAOlB,EAAUl9B,UAAM,OAAQ,GAAQ,YACnC,GAAIo/B,GAAahB,EAAQj6B,QAAIhE,EAAW,QAAS,CAC7C,MAAM89B,EAAOmB,GAAahB,EAAQj6B,QAAIhE,EAAW,QAC3C,GAAG09B,KAAaO,EAAQL,KAAKwB,8CAC7B,GAAG1B,KAAaO,EAAQL,KAAKwB,uDACnC,IACI,MAAM9lB,QAAa+lB,EAAQvB,EAAMxkB,IAC7B,MAAMhN,EAAM,GAOZ,OANAhO,OAAOgK,KAAKgR,GAAM/Q,QAAQuK,IACtBxG,EAAIwG,GAAK,CACL9M,WAAYsT,EAAKxG,GAAG9M,WACpB7B,QAASmV,EAAKxG,GAAGwsB,OAAO3C,KAAMh9B,GAAMA,EAAEwE,SAAS6B,cAGhDsG,IAEXizB,GAAIC,mBAAqBlmB,EAE7B,MAAOxJ,GACH0K,QAAQoD,KAAK,iDAAkD9N,QAGlE,CACD,MAAMguB,EAAM,GAAGJ,KAAaO,EAAQL,KAAKwB,kEACzC,IACIG,GAAIC,yBAA2BH,EAAQvB,GAE3C,MAAOhuB,GACH0K,QAAQoD,KAAK,iDAAkD9N,QAK/E,SAASivB,EAAuBd,EAASv7B,GACrC,OAAOq6B,EAAUl9B,UAAM,OAAQ,GAAQ,YACnC,MAAMm/B,EAAa,EAAOA,WACrB1tB,OAAO5S,GAAKA,EAAEy/B,SACd7sB,OAAO5S,GAAKugC,GAAahB,EAAQj6B,GAAItF,EAAEwgC,WAAYxgC,EAAEygC,aAC1D,GAAIF,GAAahB,EAAQj6B,GAAI,QAAS,CAClC,MAAM85B,EAAM,GAAGH,KAAsBM,EAAQL,KAAK6B,sDAClD,IACI,MAAMnmB,QAAa+lB,EAAQvB,GAC3BkB,EAAWz2B,QAAQ7J,IACfgE,EAAOa,SAAS7E,EAAEsF,GAAIsV,EAAK5a,EAAEsF,OAGrC,MAAO8L,GACH0K,QAAQoD,KAAK,oDAAqD9N,QAgBlF,SAASuvB,EAAQvB,EAAKjtB,EAAK,CAAC9L,GAAMA,IAC9B,OAAOg4B,EAAUl9B,UAAM,OAAQ,GAAQ,YACnC,MAAMy+B,QAAcC,OAAOC,KA5IhB,aA6ILkB,QAAsBpB,EAAM74B,MAAMq4B,GACxC,GAAI4B,GAAiBA,EAAcC,GAC/B,aAAaD,EAAcE,OAE/B,MAAMC,QAAsBC,MAAMhC,GAC5BiC,EAAelvB,QAASgvB,EAAcD,QAE5C,aADMtB,EAAM0B,IAAIlC,EAAK,IAAImC,SAASxmB,KAAKC,UAAUqmB,KAC1CA,KChKR,MAAMG,EAAU,CACnBC,QAAS,ikBACTC,WAAY,0VACZC,WAAY,0RACZC,YAAa,6RACbC,aAAc,gQACdC,cAAe,+PACfC,OAAQ,4fACRC,KAAM,2VACNC,KAAM,oMACNC,SAAU,oUACVC,IAAK,yvBACLC,WAAY,w5BACZC,KAAM,+pBACNC,KAAM,i3EACNC,MAAO,6zBACPznB,QAAS,qaACT0nB,KAAM,mWACNC,aAAc,8RACdC,iBAAkB,gOAClBC,KAAM,ieACNC,YAAa,0rBACbC,KAAM,kTACNC,KAAM,4dACNC,QAAS,qiBACTC,KAAM,8SACNC,KAAM,gQACNC,YAAa,6TACbC,OAAQ,kQACRC,OAAQ,oWACRC,YAAa,wPACbC,IAAK,40BACL71B,IAAK,ieACL81B,SAAU,kfACVC,WAAY,kUACZC,OAAQ,yoBACRpuB,EAAG,wT,qBCnCA,MAAM,EACT,YAAYyS,GACR3mB,KAAKuiC,GAAgB,IAAX5b,IACV3mB,KAAKwiC,GAAgB,IAAX7b,IACV3mB,KAAKyiC,GAAgB,IAAX9b,IACV3mB,KAAKH,EAAIkS,MAAM,KACf,IAAK,IAAIhU,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAC1BiC,KAAKH,EAAE9B,GAAKA,EAEhB,IAAK,IAAIA,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAAG,CAC7B,MAAMyB,EAAImnB,EAAO6R,SAAW,IAAMz6B,GAC5BkV,EAAIjT,KAAKH,EAAE9B,GACjBiC,KAAKH,EAAE9B,GAAKiC,KAAKH,EAAE9B,EAAIyB,GACvBQ,KAAKH,EAAE9B,EAAIyB,GAAKyT,GAGxB,MAAMiB,EAAGC,EAAGC,EAAGpB,EAAGC,GACd,MAAMyvB,EAAKxuB,EAAIlU,KAAKuiC,GACdI,EAAKxuB,EAAInU,KAAKwiC,GACdI,EAAKxuB,EAAIpU,KAAKyiC,GACdI,EAAKpc,KAAKC,MAAMgc,GAChBI,EAAKrc,KAAKC,MAAMic,GAChBI,EAAKtc,KAAKC,MAAMkc,GAChBI,EAAKN,EAAKG,EACVI,EAAKN,EAAKG,EACVI,EAAKN,EAAKG,EACVI,EAAK1G,EAAWuG,GAChBI,EAAK3G,EAAWwG,GAChBI,EAAK5G,EAAWyG,GACtB,IAAII,EAAK,EAIT,OAHU,IAANtwB,IACAswB,EAAK7c,KAAKC,MAAMD,KAAKnhB,IAAI2N,EAAGgwB,GAAMjwB,GAAKA,GAEpChT,KAAKujC,cAAcV,EAAIC,EAAIC,EAAIC,EAAIC,EAAKK,EAAIJ,EAAIC,EAAIC,EAAIC,GAEnE,QAAQrwB,EAAGC,EAAG7U,EAAGC,GACb,MAAMmlC,EAAO,EAAcC,SAAa,GAAJzwB,GACpC,OAAOwwB,EAAK,GAAKvwB,EAAIuwB,EAAK,GAAKplC,EAAIolC,EAAK,GAAKnlC,EAEjD,EAAEN,GACE,OAAyB,IAAlBiC,KAAKH,EAAM,IAAJ9B,GAElB,cAAciV,EAAGC,EAAG7U,EAAGC,EAAG4R,EAAGvD,EAAGouB,EAAGhD,EAAG/5B,GAClC,MAAMg7B,EAAI/4B,KAAKo9B,EAAEpqB,GAAKC,EAChBhT,EAAID,KAAKo9B,EAAErE,GAAK36B,EAChBJ,EAAIgC,KAAKo9B,EAAErE,EAAI,GAAK36B,EACpBD,EAAI6B,KAAKo9B,EAAEpqB,EAAI,GAAKC,EACpBzT,EAAIQ,KAAKo9B,EAAEj/B,GAAKC,EAChBI,EAAIwB,KAAKo9B,EAAEj/B,EAAI,GAAKC,EAS1B,OLlBD,SAAe4U,EAAGC,EAAG7U,EAAGC,EAAG4R,EAAGvD,EAAGouB,EAAGhD,EAAG/5B,EAAGg7B,EAAG94B,GAChD,OAAOs8B,EAAKn+B,EAAGo+B,EAAMxpB,EAAGC,EAAG5U,EAAG4R,EAAGvD,EAAGouB,GAAI0B,EAAMxpB,EAAGC,EAAG6kB,EAAG/5B,EAAGg7B,EAAG94B,IKiBlDyjC,CAAM5I,EAAGhD,EAAG/5B,EARTiC,KAAK2jC,QAAQ3jC,KAAKo9B,EAAEn9B,GAAI5B,EAAG4R,EAAGvD,GAC9B1M,KAAK2jC,QAAQ3jC,KAAKo9B,EAAE59B,GAAInB,EAAI,EAAG4R,EAAGvD,GAClC1M,KAAK2jC,QAAQ3jC,KAAKo9B,EAAEp/B,GAAIK,EAAG4R,EAAI,EAAGvD,GAClC1M,KAAK2jC,QAAQ3jC,KAAKo9B,EAAE5+B,GAAIH,EAAI,EAAG4R,EAAI,EAAGvD,GACtC1M,KAAK2jC,QAAQ3jC,KAAKo9B,EAAEn9B,EAAI,GAAI5B,EAAG4R,EAAGvD,EAAI,GACtC1M,KAAK2jC,QAAQ3jC,KAAKo9B,EAAE59B,EAAI,GAAInB,EAAI,EAAG4R,EAAGvD,EAAI,GAC1C1M,KAAK2jC,QAAQ3jC,KAAKo9B,EAAEp/B,EAAI,GAAIK,EAAG4R,EAAI,EAAGvD,EAAI,GAC1C1M,KAAK2jC,QAAQ3jC,KAAKo9B,EAAE5+B,EAAI,GAAIH,EAAI,EAAG4R,EAAI,EAAGvD,EAAI,KAIhE,EAAc+2B,SAAW,CAAC,CAAC,EAAG,EAAG,GAAI,EAAE,EAAG,EAAG,GAAI,CAAC,GAAI,EAAG,GAAI,EAAE,GAAI,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,EAAE,EAAG,EAAG,GAAI,CAAC,EAAG,GAAI,GAAI,EAAE,EAAG,GAAI,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,GAAI,EAAG,GAAI,CAAC,EAAG,GAAI,GAAI,CAAC,GAAI,GAAI,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,GAAI,EAAG,GAAI,EAAE,EAAG,EAAG,GAAI,CAAC,GAAI,GAAI,IC3D/M,MAAM,EACT,YAAYr3B,EAAM4a,EAAaC,GAC3BjnB,KAAKinB,WAAaA,EAClBjnB,KAAK4jC,YAAc7xB,MAAM/R,KAAKinB,WAAW7d,QACzC,IAAK,IAAIrL,EAAI,EAAGA,EAAIiC,KAAKinB,WAAW7d,OAAQrL,GAAK,EAC7CiC,KAAK4jC,YAAY7lC,GAAK,IAAI,EAAc,IAAWqO,IAEvDpM,KAAK6jC,sBAAwBpd,KAAK4S,IAAI,EAAGrS,GACzChnB,KAAK8jC,sBAAwBrd,KAAK4S,IAAI,EAAIpS,EAAW7d,OAAS,IAAOqd,KAAK4S,IAAI,EAAGpS,EAAW7d,QAAU,GAE1G,iBAAiBgD,EAAM9G,EAAKC,GACxB,OAAO,IAAI,EAAY6G,EAAM9G,EAAKyM,MAAMxM,EAAMD,EAAM,GAAGy+B,KAAK,IAEhE,SAAS7vB,EAAGC,EAAGC,EAAGpB,EAAI,EAAGC,EAAI,EAAG+wB,GAAO,GACnC,IAAIhlC,EAAQ,EACRilC,EAASjkC,KAAK6jC,sBACdK,EAASlkC,KAAK8jC,sBAClB,IAAK,IAAI/lC,EAAI,EAAGA,EAAIiC,KAAK4jC,YAAYx6B,OAAQrL,GAAK,EAAG,CACjD,MAAMgE,EAAQ/B,KAAK4jC,YAAY7lC,GAC3BgE,IACA/C,GAASgB,KAAKinB,WAAWlpB,GAAKgE,EAAMA,MAAM,EAAYoiC,KAAKjwB,EAAI+vB,GAASD,GAAQjiC,EAAMygC,GAAK,EAAY2B,KAAKhwB,EAAI8vB,GAAS,EAAYE,KAAK/vB,EAAI6vB,GAASjxB,EAAIixB,EAAQhxB,EAAIgxB,GAAUC,GAErLD,GAAU,EACVC,GAAU,EAEd,OAAOllC,EAEX,eAAejB,GACX,OAAOiC,KAAK4jC,YAAY5jC,KAAK4jC,YAAYx6B,OAAS,EAAIrL,GAE1D,YAAYiB,GACR,OAAOA,EAAgD,SAAxCynB,KAAKC,MAAM1nB,EAAQ,SAAc,KChCjD,MAAM,EACT,YAAYoN,EAAM4a,EAAaC,GAC3BjnB,KAAKokC,MAAQ,IAAI,EAAYh4B,EAAM4a,EAAaC,GAChDjnB,KAAKqkC,OAAS,IAAI,EAAYj4B,EAAO,IAAK4a,EAAaC,GACvD,IAAI3hB,EAAOuM,IACPtM,GAAOsM,IACX,IAAK,IAAI9T,EAAI,EAAGA,EAAIkpB,EAAW7d,OAAQrL,GAAK,EAClB,IAAlBkpB,EAAWlpB,KACXuH,EAAMmhB,KAAKnhB,IAAIA,EAAKvH,GACpBwH,EAAMkhB,KAAKlhB,IAAIA,EAAKxH,IAG5B,MAAMumC,EAAoB,IAAO,EAAI,GAAK/+B,EAAMD,EAAM,IACtDtF,KAAKukC,YAAe,EAAI,EAAKD,EAEjC,SAASpwB,EAAGC,EAAGC,GACX,MAAMsuB,EAAS,mBAAJxuB,EACLyuB,EAAS,mBAAJxuB,EACLyuB,EAAS,mBAAJxuB,EACX,OAAQpU,KAAKokC,MAAMI,SAAStwB,EAAGC,EAAGC,GAAKpU,KAAKqkC,OAAOG,SAAS9B,EAAIC,EAAIC,IAAO5iC,KAAKukC,YAEpF,KAAKvlC,GACD,OAAOA,EAAgD,SAAxCynB,KAAKC,MAAM1nB,EAAQ,SAAc,KCvBjD,MAAMylC,EACT,cACIzkC,KAAK0kC,OAAS,OAElB,MAAM97B,GACF,OAAOgR,KAAKC,UAAU7Z,KAAK+T,SAAW6F,KAAKC,UAAUjR,EAAKhK,OAE9D,KAAK+lC,EAAMD,GACP,MAAO,GAEX,OAAOE,EAAIC,KCHR,MAAM,UAA0BJ,EACnC,cACI,IAAIt/B,EACJ+L,QACAlR,KAAK0G,QAAU,EACf1G,KAAK2G,QAAU,EACf3G,KAAKoM,KAAOyvB,IACZ77B,KAAK8kC,UAAY,IAAI,EAAS,GAC9B9kC,KAAK+kC,YAAc,IAAI,EAAS,IAChC/kC,KAAK+kC,YAAY5zB,IAAIyI,KAAKiB,MAAkE,QAA3D1V,EAAK43B,aAAaC,QAVxB,uBAUgF,IAAP73B,EAAgBA,EAAK,OACzHnF,KAAK+B,MAAQ,GACb/B,KAAK+kC,YAAYlI,MAAM,IAAM78B,KAAK0kC,UAEtC,UACI,MAAO,cAEX,OAAO97B,GACH,OAAOA,EAAKo8B,SAAS,IAAI,OAAK,CAAC,YAAa,mBACT,0BAA5Bp8B,EAAKxE,KAAK,QAAQxF,MAE7B,KAAK+lC,EAAMD,GACP,MAAO,yDACuCC,EAAKjhC,SAASuhC,IACxDjlC,KAAK8kC,UAAUI,SAASlmC,IACpB,MAAMwP,EAAgC,IAAtBiY,KAAK4S,IAAI,EAAGr6B,GAC5BimC,EAAGE,YAAc32B,EAAO42B,WACzB,kEAEmBT,EAAKU,QAAQ,KACnCrlC,KAAK8kC,UAAU3zB,IAAInR,KAAK8kC,UAAUlmC,MAAQ,IAC1C8lC,oBAEFrE,EAAQyB,uDAEgB6C,EAAKU,QAAQ,KACnCrlC,KAAK8kC,UAAU3zB,IAAInR,KAAK8kC,UAAUlmC,MAAQ,IAC1C8lC,oBAEFrE,EAAQS,qBAGd,UACI,MAAO,CAAC,IAAK,KAEjB,KAAKlwB,EAAO00B,GACR,IAAIngC,EACJnF,KAAK+B,MAAQ,EAAkBwjC,UAAUv7B,IAAI,CAAC7F,EAAIpG,KAC9C,MAAM6G,EAAS5E,KAAK+T,MAAS5P,EAAH,UAC1B,OAAO,IAAI,EAAYnE,KAAKoM,KAAOrO,EAAG6G,EAAOoiB,YAAapiB,EAAOqiB,cAErE,MAAMue,EAAkB,GACxBxlC,KAAK+T,MAAMkS,OAAOvd,QAASuK,IACvBuyB,EAAgBvyB,EAAEoB,OAASrU,KAAKylC,cAAcxyB,EAAEoB,SAEpD,MAAMoF,EAAO6rB,EAAI7rB,KACX3Z,EAAK2mB,KAAK4S,IAAI,EAAGr5B,KAAK8kC,UAAUlmC,OACtC,IAAK,IAAIsV,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAI,IAAKA,GAAK,EAAG,CAC7B,MAAMpW,EAAKoW,GAAiB,EAAZmxB,EAAInK,OAAmB,EAAJjnB,EAC7BwxB,GAAMxxB,EAAIlU,KAAK0G,SAAW5G,EAAI,IAAMA,EACpC6lC,GAAMxxB,EAAInU,KAAK2G,SAAW7G,EAAI,GAAKA,EACnCmT,EAAIjT,KAAK4lC,aAAaF,EAAIC,GAC1B55B,EAAsC,QAA7B5G,EAAKqgC,EAAgBvyB,UAAuB,IAAP9N,EAAgBA,EAAK,CAAC,IAAK,IAAK,KACpFsU,EAAK1b,GAAKgO,EAAM,GAChB0N,EAAK1b,EAAI,GAAKgO,EAAM,GACpB0N,EAAK1b,EAAI,GAAKgO,EAAM,GACpB0N,EAAK1b,EAAI,GAAK,KAI1B,OAAO6mC,EAAIC,GACP7kC,KAAK0G,SAAWk+B,EAChB5kC,KAAK2G,SAAWk+B,EAEpB,aAAa3wB,EAAGC,GACZ,IAAKnU,KAAK+T,MAAMkS,QAAuC,IAA7BjmB,KAAK+T,MAAMkS,OAAO7c,OACxC,MAAO,GACX,MAAMrH,EAAQ/B,KAAK+B,MAAMiI,IAAIxK,GAAKA,EAAEglC,SAAStwB,EAAGC,EAAG,IACnD,IAAI0xB,EAAUh0B,IACVi0B,EAAW,GACf,IAAK,MAAM7yB,KAAKjT,KAAK+T,MAAMkS,OAAQ,CAC/B,MAAM8f,EAAO/lC,KAAKgmC,QAAQ/yB,EAAEvI,WAAY,CAAEkc,SAAU7kB,EAAM,GAAI8kB,YAAa9kB,EAAM,GAAI+kB,SAAU/kB,EAAM,GAAIglB,UAAWhlB,EAAM,GAAIgB,OAAQ,IAClIgjC,EAAOF,IACPA,EAAUE,EACVD,EAAW7yB,EAAEoB,OAGrB,OAAOyxB,EAEX,QAAQ9yB,EAAGC,GACP,OAAQD,EAAE4T,SAAW3T,EAAE2T,WAAa5T,EAAE4T,SAAW3T,EAAE2T,WAAa5T,EAAE6T,YAAc5T,EAAE4T,cAAgB7T,EAAE6T,YAAc5T,EAAE4T,cAAgB7T,EAAE8T,SAAW7T,EAAE6T,WAAa9T,EAAE8T,SAAW7T,EAAE6T,WAAa9T,EAAE+T,UAAY9T,EAAE8T,YAAc/T,EAAE+T,UAAY9T,EAAE8T,YAAc/T,EAAEjQ,OAASkQ,EAAElQ,SAAWiQ,EAAEjQ,OAASkQ,EAAElQ,QAEjS,cAAcsR,GACV,MAAMtI,EAAQ/L,KAAK+kC,YAAYnmC,MAAMyV,GACrC,YAAclU,IAAV4L,EACOkwB,EAAc5nB,GAElBtI,EAEX,cAAcsI,EAAOrV,GACjB,MAAM+M,EAAQ,CAACqG,SAASpT,EAAMqR,MAAM,EAAG,GAAI,IAAK+B,SAASpT,EAAMqR,MAAM,EAAG,GAAI,IAAK+B,SAASpT,EAAMqR,MAAM,EAAG,GAAI,KAC7GrQ,KAAK+kC,YAAY5zB,IAAI1S,OAAOwnC,OAAOxnC,OAAOwnC,OAAO,GAAIjmC,KAAK+kC,YAAYnmC,OAAQ,CAAE,CAACyV,GAAQtI,KACzFgxB,aAAaE,QAvGc,eAuGsBrjB,KAAKC,UAAU7Z,KAAK+kC,YAAYnmC,QAErF,YAAYyV,GACR,MAAO,IAAMrU,KAAKylC,cAAcpxB,GAAOrK,IAAIiG,GAAKA,EAAEoC,SAAS,IAAI6zB,SAAS,EAAG,MAAMn1B,KAAK,KAG9F,EAAkBw0B,UAAY,CAAC,WAAY,cAAe,WAAY,aCjH/D,MAAMY,EAAU,CACnB,G,OAEG,SAASC,EAAoBpnC,EAAO8E,GACvC,OAAO9E,aAAqC,EAASA,EAAMmK,QAAQ,SAAUvD,IACzE,MAAMoM,EAAQI,SAASxM,EAAMyK,MAAM,GAAI,IACvC,YAA2ElQ,KAAnE2D,aAAuC,EAASA,EAAOkO,IAAwBlO,EAAOkO,GAASpM,IAGxG,SAASygC,EAAO/mC,EAAKwE,GACxB,IAAIqB,EAAIC,EAAIC,EAEZ,OAAqD,QAA7CA,EAAK+gC,EAD4F,QAA1FhhC,EAA4C,QAAtCD,EAAKghC,EAAQzG,GAAI4G,SAAS1nC,cAA2B,IAAPuG,OAAgB,EAASA,EAAG7F,UAAyB,IAAP8F,EAAgBA,EAAK+gC,EAAQI,GAAGjnC,GACzGwE,UAA4B,IAAPuB,EAAgBA,EAAK/F,EAE/E,SAASknC,EAAgBC,EAAU3iC,EAAQ4kB,EAAQ,EAAGge,EAAW,GACpE,MAAO,CAAChH,GAAI4G,SAAS1nC,MAAO,MAAMoR,OAAO,CAAC22B,EAAM9F,KAC5C,IAAI17B,EACJ,QAAahF,IAATwmC,EACA,OAAOA,EACX,MAAMC,EAAQH,EAASp2B,OAAOqY,GAC9B,KAAOke,EAAMx9B,QAAUs9B,GAAU,CAC7B,MAAML,EAASD,EAA6C,QAAxBjhC,EAAKghC,EAAQtF,UAA0B,IAAP17B,OAAgB,EAASA,EAAGyhC,EAAM71B,KAAK,MAAOjN,GAClH,QAAe3D,IAAXkmC,EACA,OAAOA,EACXO,EAAMx1B,eAGXjR,GC3BA,MAAM,EACT,cACIH,KAAKuM,SAAW,GAEpB,SACI,MAAO,GAEX,SAASktB,GACL,MAAMt1B,EAAK03B,IAEX,OADA77B,KAAKuM,SAASpI,GAAMs1B,EACbt1B,EAEX,GAAGY,EAAM00B,GACL,OAAOz5B,KAAK0D,SAASuhC,IACjBA,EAAG4B,iBAAiB9hC,EAAM+hC,IACtBrN,EAASwL,GACT6B,EAAIC,sBAIhB,SAAStN,GACL,OAAOz5B,KAAKgnC,GAAG,SAAUvN,GAE7B,QAAQA,GACJ,OAAOz5B,KAAKgnC,GAAG,QAASvN,GAE5B,QAAQwL,EAAIlqB,GAAQ,GAChBkqB,EAAGgC,iBAAiB,aAAav+B,QAAQu8B,IACrC,IAAI9/B,EAAIC,EACR,MAAMjB,EAAK8gC,EAAGiC,aAAa,WACS,QAAnC9hC,GAAMD,EAAKnF,KAAKuM,UAAUpI,UAAwB,IAAPiB,GAAyBA,EAAGlH,KAAKiH,EAAI8/B,KAEjFlqB,IACA/a,KAAKuM,SAAW,IAEpB04B,EAAGgC,iBAAiB,eAAev+B,QAAQu8B,IACvCA,EAAGE,YAAckB,EAAOpB,EAAGkC,WAAWC,aAAa,aAAapoC,SAGxE,MAAMimC,EAAIoC,EAAMtsB,GAAQ,GACpBkqB,EAAGqC,UAAYD,EACfrnC,KAAKunC,QAAQtC,EAAIlqB,IAGlB,MAAMysB,EAAcvC,IACvBA,EAAGwC,UAAUv7B,IAAI,UACjB,MAAMw7B,EAAW,IAAMC,SAASC,KAAKf,iBAAiB,QAASC,IAC3D,IAAI3hC,EACA2hC,EAAIjkC,OAAO27B,QAAQ,gBAAwD,QAArCr5B,EAAK2hC,EAAIjkC,OAAOglC,QAAQ,eAA4B,IAAP1iC,OAAgB,EAASA,EAAGsiC,UAAUK,SAAS,UAClIJ,IAGJzC,EAAGwC,UAAUM,OAAO,WACrB,CAAEC,SAAS,EAAMC,MAAM,IAC1BP,KCtDG,MAAM,EACT,cACI1nC,KAAKomB,SAAW,GAChBpmB,KAAKkoC,WAAa,EAClBloC,KAAKmoC,YAAc,EACnBnoC,KAAKooC,YAAc,GACnBpoC,KAAKqoC,WAAa,GAClBroC,KAAKsoC,WAAa,GAClBtoC,KAAKuoC,iBAAmB,GACxBvoC,KAAKwoC,QAAU,EACfxoC,KAAKyoC,oBAAsB,EAAYC,UAAU7M,KAAU,GAAI,GAC/D77B,KAAK2oC,oBAAsB,EAAYD,UAAU7M,KAAU,GAAI,GAC/D77B,KAAK4oC,gBAAkB,EAAYF,UAAU7M,KAAU,EAAG,GAC1D77B,KAAK6oC,WAAa,EAAYH,UAAU7M,KAAU,GAAI,GAE1D,MAAMzV,EAAUsC,EAAOpf,EAAOk/B,EAASrN,GACnCn7B,KAAKomB,SAAWA,EAChBpmB,KAAKkoC,WAAwC,EAA3B9hB,EAAShkB,gBAC3BpC,KAAKmoC,YAAuC,EAAzB/hB,EAAS/jB,cAC5BrC,KAAKooC,YAAc3hB,KAAKC,MAAMN,EAAS9jB,OAAStC,KAAKmoC,aACjD/hB,EAAS3e,WAAaihB,EAAQ,IAC9BA,EAAQ,EAAY,EAARA,EACZpf,EAAQ,EAAY,EAARA,GAEhBtJ,KAAKqoC,WAAa,SAAoB,GAAR3f,EAAc,MAC5C1oB,KAAKsoC,WAAa,IAAgB,GAARh/B,EAAc,IACxCtJ,KAAKuoC,iBAAmBx2B,MAAMopB,GAAO4I,KAAK,MAC1C/jC,KAAKwoC,QAAUA,EAEnB,mBAAmBt0B,GACf,MAAMuF,EAAO1H,MAAM/R,KAAKooC,YAAcpoC,KAAKmoC,aACrCW,EAAKriB,KAAKC,MAAMxS,EAAIlU,KAAKkoC,YACzBa,EAAKtiB,KAAKC,MAAMxS,EAAIlU,KAAKkoC,YAAcloC,KAAKkoC,WAC5Cc,EAAShpC,KAAKipC,gBAAgBH,GAC9BI,EAASlpC,KAAKipC,gBAAgBH,EAAK,GACzC,IAAK,IAAI30B,EAAInU,KAAKooC,YAAc,EAAGj0B,GAAK,EAAGA,GAAK,EAC5C,IAAK,IAAIwxB,EAAK3lC,KAAKmoC,YAAaxC,GAAM,EAAGA,GAAM,EAAG,CAC9C,MAAMwD,EAAKxD,EAAK3lC,KAAKmoC,YAErB1uB,EADUtF,EAAInU,KAAKmoC,YAAcxC,GACvBnJ,EAAM2M,EAAIJ,EAAIC,EAAO70B,GAAI60B,EAAO70B,EAAI,GAAI+0B,EAAO/0B,GAAI+0B,EAAO/0B,EAAI,IAGhF,OAAOsF,EAEX,gBAAgBvF,GACZ,MAAMk1B,EAAeppC,KAAKuoC,iBAAiBr0B,EAAIlU,KAAKwoC,SACpD,GAAIY,EACA,OAAOA,EACX,MAAM3vB,EAAO1H,MAAM/R,KAAKooC,YAAc,GAChCiB,EAAU,QAAUrpC,KAAKomB,SAAS7jB,SAASC,SAC3C8uB,EAAS,QAAUtxB,KAAKomB,SAAS7jB,SAASE,QAC1C6mC,EAAWD,EAAUrpC,KAAKomB,SAAS7jB,SAASG,UAC5C6mC,EAAUjY,EAAStxB,KAAKomB,SAAS7jB,SAASI,SAC1C6mC,EAAgBxpC,KAAKomB,SAASjkB,sBAAwBnC,KAAKypC,iBAAiBv1B,GAAK,EACvF,IAAK,IAAIC,EAAI,EAAGA,GAAKnU,KAAKooC,YAAaj0B,GAAK,EAAG,CAC3C,IAAIpS,EAAQ/B,KAAK0pC,oBAAoBx1B,EAAGC,EAAGnU,KAAK4oC,gBAAgBe,eAAe,GAAGlH,GAAI4G,EAAS/X,EAAQgY,EAAUC,GACjH,MAEMK,IAFU,EAAQ,EAAJz1B,EAAQnU,KAAKooC,YAAcoB,GACrBxpC,KAAKomB,SAASpkB,eAAiBhC,KAAKomB,SAASnkB,eAC5CjC,KAAKqoC,YAAcroC,KAAKsoC,WACnDvmC,GAAS6nC,GAAWA,EAAU,EAAI,EAAI,GAClC5pC,KAAKomB,SAASxjB,UAAUE,KAAO,IAC/Bf,EAAQu6B,EAAYt8B,KAAKomB,SAASxjB,UAAUC,OAAQd,GAAQ/B,KAAKooC,YAAcj0B,EAAKnU,KAAKomB,SAASxjB,UAAgB,QAAM5C,KAAKomB,SAASxjB,UAAc,OAEpJ5C,KAAKomB,SAASpjB,aAAaF,KAAO,IAClCf,EAAQu6B,EAAYt8B,KAAKomB,SAASpjB,aAAaH,OAAQd,GAAQoS,EAAKnU,KAAKomB,SAASpjB,aAAmB,QAAMhD,KAAKomB,SAASpjB,aAAiB,OAE9IyW,EAAKtF,GAAKpS,EAGd,OADA/B,KAAKuoC,iBAAiBr0B,EAAIlU,KAAKwoC,SAAW/uB,EACnCA,EAEX,iBAAiBvF,GACb,MAAMnS,EAAQ/B,KAAK6oC,WAAWrE,SAAa,IAAJtwB,EAAS,GAAIlU,KAAK6oC,WAAWc,eAAe,GAAGlH,GAAI,EAAG,GAAG,GAE1FxvB,EAAQ,WADHlR,EAAQ,EAAc,IAARA,EAAcA,GACb,EAC1B,OAAQkR,EAAI,EAAS,oBAAJA,EAA4C,WAAjBwT,KAAKnhB,IAAI2N,EAAG,GAE5D,oBAAoBiB,EAAGC,EAAGC,EAAGi1B,EAAS/X,EAAQgY,EAAUC,GACpD,IAAIv2B,EAAI,EACJC,EAAI,EACJ7U,EAAI,EACJC,EAAI,EACR,IAAK,IAAIN,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC5B,MAAM2kC,EAAK,EAAYyB,KAAKjwB,EAAIm1B,EAAUhrC,GACpCskC,EAAK,EAAYwB,KAAKhwB,EAAImd,EAASjzB,GACnCukC,EAAK,EAAYuB,KAAK/vB,EAAIi1B,EAAUhrC,GACpC4R,EAAIqhB,EAASjzB,EACbwrC,EAAgB7pC,KAAKyoC,oBAAoBkB,eAAe5rC,GAC1D8rC,IACA72B,GAAK62B,EAAc9nC,MAAM2gC,EAAIC,EAAIC,EAAI3yB,EAAGkE,EAAIlE,GAAK5R,GAErD,MAAMyrC,EAAgB9pC,KAAK2oC,oBAAoBgB,eAAe5rC,GAI9D,GAHI+rC,IACA72B,GAAK62B,EAAc/nC,MAAM2gC,EAAIC,EAAIC,EAAI3yB,EAAGkE,EAAIlE,GAAK5R,GAEjDN,EAAI,EAAG,CACP,MAAMgsC,EAAY/pC,KAAK4oC,gBAAgBe,eAAe5rC,GAClDgsC,IACA3rC,GAAK2rC,EAAUhoC,MAAM,EAAYoiC,KAAKjwB,EAAIo1B,EAAWjrC,GAAI,EAAY8lC,KAAKhwB,EAAIo1B,EAAUlrC,GAAI,EAAY8lC,KAAK/vB,EAAIk1B,EAAWjrC,GAAIkrC,EAAUlrC,EAAG8V,EAAIo1B,EAAUlrC,GAAKA,GAGxKA,GAAK,EAET,OAAOi+B,EAAYtpB,EAAI,IAAKC,EAAI,KAAM7U,EAAI,GAAK,GAAK,IClG5D,MAAM4rC,EAAU,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvQC,EAAgB,CAClB,CAAC,IAAK,GAAI,IACV,CAAC,GAAI,IAAK,KACV,CAAC,GAAI,IAAK,IACV,CAAC,IAAK,GAAI,KACV,CAAC,IAAK,IAAK,IACX,CAAC,GAAI,IAAK,MCfd,MAAM,EAAQ,CAACj/B,EAAUiZ,EAAQimB,IAAUC,GAAG,OAAQ,QAASn/B,EAAUiZ,EAAQimB,GAC3E31B,EAAY,CAACvC,EAAOhT,IAAUmrC,GAAG,MAAO,YAAYn4B,EAAShT,GACtDorC,EACEvnC,IACPsnC,GAAG,MAAO,OAAQtnC,GAClBsnC,GAAG,OAAQ,aAHNC,EAMIhM,GAAY,EAAM,YAAa,cAAeA,GANlDgM,EAOI9rC,GAAS,EAAM,UAAW,cAAeA,GAP7C8rC,EASF,IAAM,EAAM,YAAa,SATvBA,EAUH,CAACC,GAAS,IAAU,EAAM,YAAa,OAAQA,EAAS,SAAW,QAVhED,EAWH,CAACC,GAAS,IAAU,EAAM,YAAa,OAAQA,EAAS,SAAW,QAXhED,EAYH,IAAM,EAAM,aAAc,QAZvBA,GAaC,IAAM,EAAM,aAAc,YAb3BA,GAcF,IAAM,EAAM,aAAc,SAdxBA,GAgBI,IAAM,EAAM,UAAW,gBAhB3BA,GAiBQE,GAAc,EAAM,YAAa,kBAAmBA,EAAY,YAAc,eAjBtFF,GAkBIxkB,GAAW,EAAM,YAAa,cAAeA,GAlBjDwkB,GAmBEG,GAAUh2B,EAAU,EAAGg2B,GAnBzBH,GAoBIhM,GAAY7pB,EAAU,EAAG6pB,GApB7BgM,GAqBK9D,GAAa/xB,EAAU,EAAG+xB,GArB/B8D,GAsBII,GAAYj2B,EAAU,EAAGi2B,GCxB1C,IAAI,GAAwC,SAAUv5B,EAASksB,EAAYC,EAAG1X,GAE1E,OAAO,IAAK0X,IAAMA,EAAIC,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUx+B,GAAS,IAAM0Y,EAAKgO,EAAUsS,KAAKh5B,IAAW,MAAOiR,GAAKstB,EAAOttB,IACpF,SAASwtB,EAASz+B,GAAS,IAAM0Y,EAAKgO,EAAiB,MAAE1mB,IAAW,MAAOiR,GAAKstB,EAAOttB,IACvF,SAASyH,EAAKiB,GAJlB,IAAe3Z,EAIa2Z,EAAO+kB,KAAOJ,EAAQ3kB,EAAO3Z,QAJ1CA,EAIyD2Z,EAAO3Z,MAJhDA,aAAiBo+B,EAAIp+B,EAAQ,IAAIo+B,GAAE,SAAUE,GAAWA,EAAQt+B,OAIT2+B,KAAKH,EAAWC,GAClG/lB,GAAMgO,EAAYA,EAAU6V,MAAMtqB,EAASksB,GAAc,KAAKnF,YAiB/D,MAAMyS,GAAW,CACpB,KAAQ,EACR,KAAQ,EACR,KAAQ,GAECC,GAAW,CACpB,YAAe,IAAI,EACnB,eAAkB,ICzBf,cAAmCjG,EACtC,cACIvzB,QACAlR,KAAKm7B,MAAQ,IACbn7B,KAAK0oB,MAAQ,GACb1oB,KAAKsJ,MAAQ,GACbtJ,KAAK0G,QAAU,EACf1G,KAAK2qC,OAAQ,EACb3qC,KAAK0lB,UAAY,IAAI,EAEzB,UACI,MAAO,iBAEX,OAAO9c,GACH,OAAOA,EAAKo8B,SAAS,IAAI,OAAK,CAAC,WAEnC,KAAKL,EAAMD,GACP,MAAO,6DACmBC,EAAKU,QAAQmC,iBACrCnH,EAAQkB,6HAINlB,EAAQc,iHAEiCwD,EAAKjhC,SAASuhC,IACvDA,EAAGjmC,MAAQgB,KAAK0oB,MAAMrW,WACtB4yB,EAAG4B,iBAAiB,SAAU,KAC1B7mC,KAAK0oB,MAAQnF,WAAW0hB,EAAGjmC,OAC3B0lC,yEAKJrE,EAAQc,iHAEiCwD,EAAKjhC,SAASuhC,IACvDA,EAAGjmC,MAAQgB,KAAKsJ,MAAM+I,WACtB4yB,EAAG4B,iBAAiB,SAAU,KAC1B7mC,KAAKsJ,MAAQia,WAAW0hB,EAAGjmC,OAC3B0lC,yEAKJrE,EAAQE,sHAEgCoE,EAAKjhC,SAASuhC,IACtDA,EAAGjmC,MAAQgB,KAAKm7B,MAAM9oB,WACtB4yB,EAAG4B,iBAAiB,SAAU,KAC1B7mC,KAAKm7B,MAAQ5X,WAAW0hB,EAAGjmC,OAC3B0lC,gEAIoBC,EAAKU,QAAQ,KAAQrlC,KAAK2qC,OAAS3qC,KAAK2qC,MAAOjG,sBACvErE,EAAQ4B,6GAMhB,UACI,MAAO,CAACjiC,KAAKm7B,MAAOn7B,KAAK+T,MAAMzR,QAEnC,KAAKsO,EAAO00B,GACRtlC,KAAK0lB,UAAUlL,MAAMxa,KAAK+T,MAAO/T,KAAK0oB,MAAO1oB,KAAKsJ,MAAOtJ,KAAK0G,QAAS1G,KAAKm7B,OAC5E,MAAM1hB,EAAO6rB,EAAI7rB,KACjB,IAAK,IAAIvF,EAAI,EAAGA,EAAIlU,KAAKm7B,MAAOjnB,GAAK,EAAG,CACpC,MAAMnS,EAAQ/B,KAAK0lB,UAAUklB,mBAAmB12B,EAAIlU,KAAK0G,SAASmkC,UAClE,IAAK,IAAI12B,EAAI,EAAGA,EAAInU,KAAK+T,MAAMzR,OAAQ6R,GAAK,EAAG,CAC3C,MAAMpW,EAAKoW,GAAiB,EAAZmxB,EAAInK,OAAmB,EAAJjnB,EAC7BnI,EAAQ/L,KAAK8qC,SAAS/oC,EAAOoS,GACnCsF,EAAK1b,GAAMiC,KAAK2qC,OAAS5oC,EAAMoS,GAAK,EAAK,IAAMpI,EAC/C0N,EAAK1b,EAAI,GAAKgO,EACd0N,EAAK1b,EAAI,GAAKgO,EACd0N,EAAK1b,EAAI,GAAK,MAI1B,OAAO6mC,EAAIC,GACP7kC,KAAK0G,SAAWk+B,EAEpB,SAAS7iC,EAAOoS,GACZ,OAAInU,KAAK2qC,OACG5oC,EAAMoS,GAAK,EAAI,IAEvBpS,EAAMoS,GAAK,EACJ,EAEPpS,EAAMoS,EAAI,GAAK,EACR,IAEJ,MDnEX,UAAa,IFdV,cAA+BswB,EAClC,cACIvzB,QACAlR,KAAK+qC,SAAW,CACZC,UAAW,CAACpmC,EAAQqmC,IACEjrC,KAAKkrC,aAAaD,EAAKrmC,aAAuC,EAASA,EAAOsnB,WAC/Eif,QAAQtrC,GAAKG,KAAKorC,cAAcvrC,EAAG+E,aAAuC,EAASA,EAAO0P,UAE/G+2B,wBAAyB,CAACzmC,EAAQqmC,KAC9B,MAAM32B,EAAUtU,KAAK2mB,SAAW,GAAM/hB,aAAuC,EAASA,EAAOsoB,aAAetoB,aAAuC,EAASA,EAAOqoB,cACnK,OAAOjtB,KAAKorC,cAAcH,EAAK32B,IAEnCg3B,gBAAiB,CAAC1mC,EAAQqmC,KACtB,IAAI9lC,EAAIC,EACR,IAAK,MAAMsH,KAAgF,QAA1EvH,EAAKP,aAAuC,EAASA,EAAO0hB,gBAA6B,IAAPnhB,EAAgBA,EAAK,GACpH,GAAInF,KAAK2mB,UAAsE,QAAzDvhB,EAAKsH,aAA6B,EAASA,EAAE7F,cAA2B,IAAPzB,EAAgBA,EAAK,GACxG,OAAOpF,KAAKorC,cAAcH,EAAKv+B,EAAE4H,SAGzC,OAAOtU,KAAKorC,cAAcH,EAAKrmC,aAAuC,EAASA,EAAON,UAE1FinC,uBAAwB,CAAC3mC,EAAQqmC,KAC7B,IAAI9lC,EAAIC,EAAIC,EACZ,MAAMiP,EAAqF,QAA1EnP,EAAKP,aAAuC,EAASA,EAAO0hB,gBAA6B,IAAPnhB,OAAgB,EAASA,EAAGnF,KAAKwrC,QAAyI,QAAhInmC,EAAgF,QAA1ED,EAAKR,aAAuC,EAASA,EAAO0hB,gBAA6B,IAAPlhB,OAAgB,EAASA,EAAGgE,cAA2B,IAAP/D,EAAgBA,EAAK,IAC1S,OAAOrF,KAAKorC,cAAcH,EAAK32B,KAGvCtU,KAAKyrC,WAAa,CACd5kC,OAAQ,CAACjC,EAAQqmC,KACb,IAAI9lC,EACJ,OAAOnF,KAAK2mB,SAAW,GAA8E,QAAxExhB,EAAKP,aAAuC,EAASA,EAAOiC,cAA2B,IAAP1B,EAAgBA,EAAK,GAAK,CAAC8lC,GAAO,IAEnJt/B,MAAO,CAAC/G,EAAQqmC,KACZ,IAAI9lC,EACJ,OAAO,IAAI4M,MAAM/R,KAAK0rC,iBAAyF,QAAvEvmC,EAAKP,aAAuC,EAASA,EAAO+G,aAA0B,IAAPxG,EAAgBA,EAAK,IAAI4+B,KAAKkH,IAEzJU,YAAa,CAAC/mC,EAAQqmC,KAClB,IAAI9lC,EAAIC,EAAIC,EACZ,IAAIsG,EAAgF,QAAvExG,EAAKP,aAAuC,EAASA,EAAO+G,aAA0B,IAAPxG,EAAgBA,EAAK,EAIjH,OAHmD,QAA9CC,EAAKpF,KAAK2mB,SAAW/hB,EAAOgT,oBAAiC,IAAPxS,GAAgBA,IACvEuG,GAAuC,QAA7BtG,EAAKT,EAAO+S,mBAAgC,IAAPtS,EAAgBA,EAAK,GAEjE,IAAI0M,MAAMpG,GAAOo4B,KAAKkH,IAEjCW,iBAAkB,CAAChnC,EAAQqmC,KACvB,IAAI9lC,EACJ,OAAO,IAAI4M,MAAM/R,KAAK0rC,iBAAyF,QAAvEvmC,EAAKP,aAAuC,EAASA,EAAO+G,aAA0B,IAAPxG,EAAgBA,EAAK,IAAI4+B,KAAKkH,GAChJjhC,IAAInK,GAAK,CACVA,EAAE,GAAKG,KAAKwrC,QAAQ,IACpB3rC,EAAE,GACFA,EAAE,GAAKG,KAAKwrC,QAAQ,OAG5BK,YAAa,CAACjnC,EAAQqmC,KAClB,MACMt/B,EADQ3L,KAAK8rC,eAAetH,SAASyG,EAAI,GAAK,IAAK,EAAGA,EAAI,GAAK,KAC/CrmC,EAAOiT,YAAcjT,EAAOkT,YAAclT,EAAOmT,YACvE,OAAO,IAAIhG,MAAMpG,GAAOo4B,KAAKkH,IAEjCc,mBAAoB,CAACnnC,EAAQqmC,KACzB,MAAMe,EAASvlB,KAAKlhB,IAAI,EAAGX,EAAOqT,cAC5BlW,EAAQ/B,KAAK8rC,eAAetH,SAASyG,EAAI,GAAKe,EAAQ,EAAGf,EAAI,GAAKe,GAClErgC,EAAQ8a,KAAKlhB,IAAI,EAAGkhB,KAAKwlB,MAAMlqC,EAAQ6C,EAAOsT,cAAgBtT,EAAOoT,uBAC3E,OAAO,IAAIjG,MAAMpG,GAAOo4B,KAAKkH,IAEjCiB,cAAe,CAACtnC,EAAQqmC,IACb,IAAI,IAAIl5B,MAAM,KAAK/H,IAAI,CAACiG,EAAGlS,KAC9B,MAAMmW,EAAwB,EAApBuS,KAAKC,MAAM3oB,EAAI,GAAS,EAAIiC,KAAKwrC,QAAQ,GAAKP,EAAI,GAG5D,MAAO,CAAC/2B,EAFEuS,KAAKlhB,IA5ElB,GA4EgCykC,EAAQ3N,EAAM,EAAG,GAAInoB,KACpB,EAApBuS,KAAKC,MAAM3oB,EAAI,GAAS,EAAIiC,KAAKwrC,QAAQ,GAAKP,EAAI,MAIpED,UAAW,CAACpmC,EAAQqmC,IACTjrC,KAAKkrC,aAAaD,EAAKrmC,aAAuC,EAASA,EAAOuT,OAAOgzB,QAAQtrC,GACzFG,KAAKkrC,aAAarrC,EAAG+E,aAAuC,EAASA,EAAOwF,QAG3F+hC,cAAe,CAACvnC,EAAQqmC,KACpB,IAAI9lC,EAAIC,EAAIC,EAAIkyB,EAChB,MAAMpjB,EAAInU,KAAKwrC,QAAiF,QAAxErmC,EAAKP,aAAuC,EAASA,EAAOmB,cAA2B,IAAPZ,EAAgBA,EAAK,GAAKnF,KAAKwrC,QAAiF,QAAxEpmC,EAAKR,aAAuC,EAASA,EAAOmB,cAA2B,IAAPX,EAAgBA,EAAK,IAA+B,QAAxBC,EAAKT,EAAOmB,cAA2B,IAAPV,EAAgBA,EAAK,IAAiF,QAA1EkyB,EAAK3yB,aAAuC,EAASA,EAAOwT,gBAA6B,IAAPmf,EAAgBA,EAAK,GAC/Z,OAAOv3B,KAAKosC,UAAUnB,EAAK92B,IAE/Bk4B,YAAa,CAACznC,EAAQqmC,KAClB,MAAMt/B,EAAQ,EAAI3L,KAAKwrC,QAAQ,GAC/B,MAAO,IAAI,IAAIz5B,MAAMpG,IAAQ3B,IAAIiG,GAAK,CAClCjQ,KAAKwrC,QAAQ,IAAMP,EAAI,GACvBjrC,KAAKwrC,QAAQ,IAAM,EACnBxrC,KAAKwrC,QAAQ,IAAMP,EAAI,MAG/BqB,KAAM,CAAC1nC,EAAQqmC,KACX,MAAMt/B,EAAQ3L,KAAKwrC,QAAQxrC,KAAKwrC,QAAQxrC,KAAK0rC,iBAAiB9mC,aAAuC,EAASA,EAAO+G,SAAW,EAChI,MAAO,IAAI,IAAIoG,MAAMpG,IAAQ3B,IAAIiG,GAAK,CAClCjQ,KAAKwrC,QAAQ,IAAMP,EAAI,GACvBjrC,KAAKwrC,QAAQ,KAAO,EACpBxrC,KAAKwrC,QAAQ,IAAMP,EAAI,MAG/BsB,UAAW,CAAC3nC,EAAQqmC,KAChB,MAAMt/B,EAAQ3L,KAAKwrC,QAAQxrC,KAAKwrC,QAAQxrC,KAAK0rC,iBAAiB9mC,aAAuC,EAASA,EAAO+G,QAAU,GAC/H,MAAO,IAAI,IAAIoG,MAAMpG,IAAQ3B,IAAIiG,GAAK,CAClCjQ,KAAKwrC,QAAQ,IAAMP,EAAI,GACvBjrC,KAAKwrC,QAAQ,KAAO,EACpBxrC,KAAKwrC,QAAQ,IAAMP,EAAI,MAG/Bv8B,UAAW,CAAC9J,EAAQqmC,KAChB,MAAM92B,EAAIsS,KAAKlhB,IApHd,GAoH4BykC,EAAQ3N,EAAM,EAAG,GAAI4O,EAAI,MACtD,OAAOjrC,KAAKosC,UAAUnB,EAAK92B,IAE/Bq4B,wBAAyB,CAAC5nC,EAAQqmC,KAC9B,MAAM92B,EAAIsS,KAAKlhB,IAxHd,GAwH4BykC,EAAQ3N,EAAM,EAAG,GAAI4O,EAAI,MACtD,OAAOjrC,KAAKosC,UAAUnB,EAAKjrC,KAAKwrC,QAAY,EAAJr3B,KAE5Cs4B,wBAAyB,CAAC7nC,EAAQqmC,KAC9B,MAAM92B,EAAIsS,KAAKlhB,IA5Hd,GA4H4BykC,EAAQ3N,EAAM,EAAG,GAAI4O,EAAI,MACtD,OAAOjrC,KAAKosC,UAAUnB,EAAK92B,IAE/Bu4B,QAAS,CAAC9nC,EAAQqmC,IACP,CAAC,CACAjrC,KAAKwrC,QAAQ,GAAK,EAAIP,EAAI,GAC1BA,EAAI,GACJjrC,KAAKwrC,QAAQ,GAAK,EAAIP,EAAI,KAGtC0B,UAAW,CAAC/nC,EAAQqmC,KAChB,IAAI9lC,EAAIC,EACR,GAAqF,IAAjFpF,KAAKwrC,SAAkC,QAAxBrmC,EAAKP,EAAOiC,cAA2B,IAAP1B,EAAgBA,EAAK,GAAK,IAAW,CACpF,MAAMgP,EAAInU,KAAKwrC,QAAQxrC,KAAKwrC,QAAQ,KAAW,GAC/C,GAAIr3B,EA1IP,IA0IsJ,GAA/HnU,KAAKwrC,SAAkF,QAAxEpmC,EAAKR,aAAuC,EAASA,EAAOiC,cAA2B,IAAPzB,EAAgBA,EAAK,GAAK,GAAS,CAGlJ,MAAO,CAAC,CAFEpF,KAAKwrC,QAAQ,IAAMP,EAAI,GAErB92B,EADFnU,KAAKwrC,QAAQ,IAAMP,EAAI,MAIzC,MAAO,IAEX2B,KAAM,CAAChoC,EAAQqmC,IACJ,CAACA,GAEZ3gC,MAAO,CAAC1F,EAAQqmC,KACZ,IAAI9lC,EAAIC,EAAIC,EACZ,MAAM8O,EAAInU,KAAKwrC,SAAmF,QAAzErmC,EAAKP,aAAuC,EAASA,EAAOyS,eAA4B,IAAPlS,EAAgBA,EAAK,IAAmF,QAA5EC,EAAKR,aAAuC,EAASA,EAAO2S,kBAA+B,IAAPnS,EAAgBA,EAAK,KAAuF,QAA/EC,EAAKT,aAAuC,EAASA,EAAO0S,qBAAkC,IAAPjS,EAAgBA,EAAK,GACnW,OAAOrF,KAAKosC,UAAUnB,EAAK92B,IAE/B04B,aAAc,CAACjoC,EAAQqmC,KACnB,IAAI9lC,EAAIC,EAAIC,EACZ,MAAM8O,EAAInU,KAAKwrC,QAAQxrC,KAAKwrC,SAAmF,QAAzErmC,EAAKP,aAAuC,EAASA,EAAOyS,eAA4B,IAAPlS,EAAgBA,EAAK,IAAmF,QAA5EC,EAAKR,aAAuC,EAASA,EAAO2S,kBAA+B,IAAPnS,EAAgBA,EAAK,KAAuF,QAA/EC,EAAKT,aAAuC,EAASA,EAAO0S,qBAAkC,IAAPjS,EAAgBA,EAAK,IAChX,OAAOrF,KAAKosC,UAAUnB,EAAK92B,IAE/B24B,kBAAmB,CAACloC,EAAQqmC,KACxB,IAAI9lC,EAAIC,EAAIC,EAAIkyB,EAChB,MAAMpjB,EAAInU,KAAKwrC,QAAQxrC,KAAKwrC,QAAQxrC,KAAKwrC,SAAmF,QAAzErmC,EAAKP,aAAuC,EAASA,EAAOyS,eAA4B,IAAPlS,EAAgBA,EAAK,IAAmF,QAA5EC,EAAKR,aAAuC,EAASA,EAAO2S,kBAA+B,IAAPnS,EAAgBA,EAAK,KAAuF,QAA/EC,EAAKT,aAAuC,EAASA,EAAO0S,qBAAkC,IAAPjS,EAAgBA,EAAK,KAAuF,QAA/EkyB,EAAK3yB,aAAuC,EAASA,EAAO0S,qBAAkC,IAAPigB,EAAgBA,EAAK,IACjf,OAAOv3B,KAAKosC,UAAUnB,EAAK92B,IAE/B44B,gBAAiB,CAACnoC,EAAQqmC,KACtB,MAAM92B,EAAInU,KAAKwrC,QAAQP,EAAI,GAAK,IAChC,OAAOjrC,KAAKosC,UAAUnB,EAAK92B,IAE/B64B,oBAAqB,CAACpoC,EAAQqmC,KAC1B,MAAM92B,EAAI61B,EAAQ3N,EAAM,EAAG,GAAI4O,EAAI,KACnC,OAAOjrC,KAAKosC,UAAUnB,EAAK92B,IAE/B84B,MAAO,CAACroC,EAAQqmC,KACZ,MAAM92B,EAAInU,KAAKwrC,QAAQP,EAAI,GAAK,IAChC,OAAOjrC,KAAKosC,UAAUnB,EAAK92B,IAE/B8tB,OAAQ,CAACr9B,EAAQqmC,IACN,CAAC,CACAA,EAAI,GAAKjrC,KAAKwrC,QAAQ,IACtBP,EAAI,GACJA,EAAI,GAAKjrC,KAAKwrC,QAAQ,MAGlC0B,WAAY,CAACtoC,EAAQqmC,KACjB,IAAI9lC,EACJ,OAA8E,IAA1EnF,KAAKwrC,QAAiC,QAAxBrmC,EAAKP,EAAOiC,cAA2B,IAAP1B,EAAgBA,EAAK,GAC5D,CAAC,CACAnF,KAAKwrC,QAAQ,IAAMP,EAAI,GACvBjrC,KAAKwrC,QAAQ,KACbxrC,KAAKwrC,QAAQ,IAAMP,EAAI,KAG5B,KAGfjrC,KAAKoM,KAAOyvB,IACZ77B,KAAKmtC,YAAc,MACnBntC,KAAK8C,KAAO,CAAC,GAAI,IAAK,IACtB9C,KAAK2mB,OAAS,IAAW3mB,KAAKoM,MAC9BpM,KAAK8rC,eAAiB,IAAI,EAAYjQ,IAAS,EAAG,CAAC,IACnD77B,KAAKotC,aAAe,GAExB,UACI,MAAO,YAEX,OAAOxkC,GACH,IAAIzD,EACJ,MAA+E,sBAA5C,QAA1BA,EAAKu6B,GAAI9uB,MAAMhS,aAA0B,IAAPuG,OAAgB,EAASA,EAAGhB,KAChEyE,EAAK8I,OAAO,IAAI,OAAK,CAAC,SAAU,gBACQ,wBAAxC9I,EAAKgC,MAAMA,MAAMxG,KAAK,QAAQxF,MAEzC,KAAK+lC,EAAMD,GACP,MAAO,qCACmBC,EAAKU,QAAQ,KACnCrlC,KAAKmtC,YAAmC,QAArBntC,KAAKmtC,YAAwB,OAAS,MACzDzI,oBAEFrE,EAAQuB,wBAGd,UACI,MAA4B,QAArB5hC,KAAKmtC,YAAwB,CAACntC,KAAK8C,KAAK,GAAI9C,KAAK8C,KAAK,IAAM,CAAC9C,KAAK8C,KAAK,GAAI9C,KAAK8C,KAAK,IAEhG,KAAK8N,EAAO00B,GACR,MAAM+H,EAAczzB,KAAKiB,MAAMjB,KAAKC,UAAUjJ,EAAM6I,OACpDzZ,KAAK2mB,OAAS,IAAW3mB,KAAKoM,MAC9BpM,KAAKotC,aAAe,GACpB,IAAIE,EAAa,GACjB,IAAK,IAAIp5B,EAAI,EAAGA,EAAIlU,KAAK8C,KAAK,GAAK,GAAIoR,GAAK,EACxC,IAAK,IAAIE,EAAI,EAAGA,GAA0B,QAArBpU,KAAKmtC,YAAwBntC,KAAK8C,KAAK,GAAK,GAAK,GAAIsR,GAAK,EAAG,CAC9E,MACMm5B,EADkBvtC,KAAKorC,cAAc,CAAK,GAAJl3B,EAAQ,EAAO,GAAJE,GAASi5B,GAC/B57B,OAAO5R,GAC7BA,EAAEorC,IAAIn6B,MAAM,CAACtR,EAAGzB,IAAMyB,GAAK,GAAKA,EAAIQ,KAAK8C,KAAK/E,KAEzDuvC,EAAa,IAAIA,KAAeC,GAGxC,MAAM9zB,EAAO6rB,EAAI7rB,KAEjB,GADA6rB,EAAI7rB,KAAKsqB,KAAK,KACW,SAArB/jC,KAAKmtC,YACL,IAAK,IAAIj5B,EAAI,EAAGA,EAAIlU,KAAK8C,KAAK,GAAIoR,GAAK,EAAG,CACtC,IAAK,IAAIC,EAAI,EAAGA,EAAI61B,EAAQ3N,EAAM,EAAG,GAAInoB,IAAKC,GAAK,EAAG,CAClD,MAAMpW,GAAMiC,KAAK8C,KAAK,GAAKqR,EAAI,IAAkB,EAAZmxB,EAAInK,OAAmB,EAAJjnB,EACxD,IAAK,IAAI6kB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACxBtf,EAAK1b,EAAIg7B,GAAK,GAGtB,IAAK,IAAI5kB,EAAI61B,EAAQ3N,EAAM,EAAG,GAAInoB,IAAKC,EAvPtC,GAuPoDA,GAAK,EAAG,CACzD,MAAMpW,GAAMiC,KAAK8C,KAAK,GAAKqR,EAAI,IAAkB,EAAZmxB,EAAInK,OAAmB,EAAJjnB,EACxDuF,EAAK1b,EAAI,GAAK,IACd0b,EAAK1b,EAAI,GAAK,IACd0b,EAAK1b,EAAI,GAAK,KAI1B,IAAK,IAAI,IAAEktC,EAAG,QAAE32B,KAAag5B,EAAY,CACrC,MAAMvvC,EAAyB,QAArBiC,KAAKmtC,YACRlC,EAAI,IAAkB,EAAZ3F,EAAInK,OAAwB,EAAT8P,EAAI,IAChCjrC,KAAK8C,KAAK,GAAKmoC,EAAI,GAAK,IAAkB,EAAZ3F,EAAInK,OAAwB,EAAT8P,EAAI,GACvDl/B,EAAQuI,EAAU21B,EAAc7gC,OAAS6gC,EAAc31B,GAAW2nB,EAAcj8B,KAAKotC,aAAa94B,IACxGmF,EAAKtI,IAAIpF,EAAM/B,IAAI5L,GAAKi+B,EAAM,GAAI,IAAKj+B,IAAKL,GAEhD,IAAK,IAAImW,EAAI,EAAGA,EAAIlU,KAAK8C,KAAK,GAAIoR,GAAK,EACnC,IAAK,IAAIC,EAAI,EAAGA,GAA0B,QAArBnU,KAAKmtC,YAAwBntC,KAAK8C,KAAK,GAAK9C,KAAK8C,KAAK,IAAKqR,GAAK,EAAG,CACpF,IAAKsS,KAAKC,MAAMxS,EAAI,KAA4B,QAArBlU,KAAKmtC,YAAwB1mB,KAAKC,MAAMvS,EAAI,IAAM,IAAM,GAAM,EACrF,SACJ,MAAMpW,EAAKoW,GAAiB,EAAZmxB,EAAInK,OAAmB,EAAJjnB,EACnC,IAAK,IAAI6kB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACxBtf,EAAK1b,EAAIg7B,GAAK,IAAOtf,EAAK1b,EAAIg7B,IAK9C,WAAWj5B,GACP,MAAM/B,EAAIiC,KAAKotC,aAAanzB,QAAQna,GACpC,OAAU,GAAN/B,EACOA,GACXiC,KAAKotC,aAAahpC,KAAKtE,GAChBE,KAAKotC,aAAahkC,OAAS,GAEtC,cAAc6hC,EAAK32B,GACf,IAAInP,EACJ,GAAuB,iBAAZmP,EACP,MAAO,CAAC,CAAE22B,MAAK32B,QAAStU,KAAKwtC,WAAWl5B,KAE5C,MAAMvP,EAAiF,QAAzEI,EAAKmP,aAAyC,EAASA,EAAQvP,YAAyB,IAAPI,OAAgB,EAASA,EAAGgE,QAAQ,cAAe,IAC5IskC,EAAYztC,KAAK+qC,SAAShmC,GAChC,OAAK0oC,EAGEA,EAAUn5B,EAAQ1P,OAAQqmC,GAFtB,CAAC,CAAEA,MAAK32B,QAAStU,KAAKwtC,WAAW5zB,KAAKC,UAAUvF,MAI/D,aAAa22B,EAAK/e,GACd,IAAI/mB,EACJ,MAAMJ,EAAuF,QAA/EI,EAAK+mB,aAA6C,EAASA,EAAUnnB,YAAyB,IAAPI,OAAgB,EAASA,EAAGgE,QAAQ,cAAe,IAClJukC,EAAc1tC,KAAKyrC,WAAW1mC,GACpC,OAAK2oC,EAGEA,EAAYxhB,aAA6C,EAASA,EAAUtnB,OAAQqmC,GAFhF,CAACA,GAIhB,UAAUA,EAAK92B,GACX,MAAO,CAAC,CAAC82B,EAAI,GAAI92B,EAAG82B,EAAI,KAE5B,iBAAiBjsC,GACb,IAAImG,EAAIC,EACR,MAAqB,iBAAVpG,EACAA,GAGuB,QAArBmG,EAAKnG,EAAM8G,YAAyB,IAAPX,EAAgBA,EAAK,GAAKnF,KAAKwrC,QAAQ,GAA6B,QAAvBpmC,EAAKpG,EAAM+G,cAA2B,IAAPX,EAAgBA,EAAK,IAG/I,QAAQG,GACJ,OAAOkhB,KAAKC,MAAM1mB,KAAK2mB,SAAWphB,MEjS7BooC,GAAS,GACtB,EAAOC,OAAOn8B,OAAOtT,GAAKA,EAAEqb,QACvB9Q,QAAQvK,GAAKwvC,GAAOxvC,EAAEgG,IAAM,IAAI,YAAU1F,OAAA,aAAAA,CAAW,MACnD,MAAMihC,GAAM,CACftB,QAAS,IAAI,EAAqB,iBAAkB,EAAOC,SAAS,EAAOA,SAASj1B,OAAS,GAAGjF,IAC3F04B,MAAMuN,IACXG,MAAO,IAAI,EAAqB,QAAS,QACpC1N,MAAMuN,IACX9D,SAAU,IAAI,EAAqB,WAAY,MAC1CzJ,MAAMuN,IACXx5B,MAAO,IAAI,EAAS,MACpBrN,YAAa,IAAI,EAAS,MAC1BsqC,WAAY,IAAI,EAAS,IACzBC,cAAe,IAAI,GAAS,GAC5BC,cAAe,IAAI,GAAS,GAC5BC,UAAW,IAAI,EAAS,MACxBxD,QAAS,IAAI,EAAS,MACjB3N,MAAMh9B,IAAO,IAAIsF,EAAI,OAAOilC,GAAgF,QAA5DjlC,EAAKtF,aAA6B,EAASA,EAAEouC,iBAA8B,IAAP9oC,EAAgBA,EAAK,UAC9I+oC,cAAe,IAAI,GAAS,GAC5BC,cAAe,IAAI,GAAS,GAC5BC,OAAQ,IAAI,GAAS,GACrBC,YAAa,IAAI,EAAS,QAC1BjoB,SAAU,IEvDP,MACH,YAAYkoB,GACR,IAAInpC,EACJnF,KAAKsuC,cAAgBA,EACrB,MAAMloB,EAAWxM,KAAKiB,MAAqD,QAA9C1V,EAAK43B,aAAaC,QAAQsR,UAAmC,IAAPnpC,EAAgBA,EAAK,MACnG4M,MAAMS,QAAQ4T,EAASnK,UACxBmK,EAASnK,OAAS,IACtBjc,KAAKic,OAASmK,EAASnK,OACvBjc,KAAKuuC,OAET,OACI,MAAMnoB,EAAWxM,KAAKC,UAAU,CAAEoC,OAAQjc,KAAKic,SAC/C8gB,aAAaE,QAAQj9B,KAAKsuC,cAAeloB,GACzCpmB,KAAKic,OAAS,IAAIjc,KAAKic,OAAOxK,OAAOvM,GAAKA,aAA6B,EAASA,EAAE0D,MAAO,MF0CtE,sBACvB+2B,mBAAoB,IAExBD,GAAItB,QAAQ8G,SAAUlmC,GAAU,QAAU,OAAQ,OAAQ,GAAQ,YAC9D0gC,GAAIwO,cAAc/8B,KAAI,SAyB1B,SAAuBitB,GACnB,OAAO,GAAUp+B,UAAM,OAAQ,GAAQ,YACnC0/B,GAAIC,mBAAqB,GACzB,MAAMp8B,EAAcknC,GAASrM,GAASvlB,iBACtC6mB,GAAIn8B,YAAY4N,IAAI5N,SACd26B,EAAU36B,EAAa66B,GAC7B,MAAM96B,EAAUmnC,GAASrM,GAASxlB,WAAWrV,GAC7C,EAAOqqC,OACFn8B,OAAOtT,GAAKA,EAAEqb,QACd/H,OAAOtT,GAAKihC,GAAaM,GAAItB,QAAQx/B,MAAOT,EAAEkhC,aAC9C32B,QAAQvK,IACT,MAAMyS,EAAQ+8B,GAAOxvC,EAAEgG,IACjBqV,EAASlW,EAAQ1E,IAAIT,EAAEqb,QACzBA,IACA5I,EAAM4I,OAASA,EACoB,OAA/BI,KAAKC,UAAUjJ,EAAM6I,QACrB7I,EAAM4J,MAAMhB,EAAOlV,WAAW,GAC9BsM,EAAM+I,QAAU,CAACC,KAAKC,UAAUjJ,EAAM6I,OACtC7I,EAAMkJ,aAAe,SA1C/B00B,CAAcxvC,GACpB0gC,GAAIwO,cAAc/8B,KAAI,OAE1BuuB,GAAI6K,MAAMrF,SAAUlmC,GAAU2oC,SAAS8G,gBAAgBC,aAAa,aAAc1vC,IAClF,IAAI2vC,IAAoB,EAsDjB,SAASvP,GAAajB,EAAWyQ,EAAcC,GAClD,MAAMzQ,EAAU,EAAOC,SAASyQ,UAAU5pC,GAAKA,EAAEf,KAAOg6B,GAClDkB,EAAauP,EAAe,EAAOvQ,SAASyQ,UAAU5pC,GAAKA,EAAEf,KAAOyqC,GAAgB,EACpFtP,EAAauP,EAAe,EAAOxQ,SAASyQ,UAAU5pC,GAAKA,EAAEf,KAAO0qC,GAAgB,EAAOxQ,SAASj1B,OAAS,EACnH,OAAOi2B,GAAcjB,GAAWA,GAAWkB,EAzD/CI,GAAI4G,SAASpB,SAAUlmC,GAAU,QAAU,OAAQ,OAAQ,GAAQ,YAC/D0gC,GAAIyO,cAAch9B,KAAI,SA0C1B,SAAsBm1B,GAClB,OAAO,GAAUtmC,UAAM,OAAQ,GAAQ,YACnC,GAAImmC,EAAQG,KAAcqI,IAAkC,OAAbrI,GAC3C,OACJ,MAAM7sB,cAAoBwmB,MAAM,YAAYqG,WAAkBvG,OAC7C,OAAbuG,IACAqI,IAAoB,GACxBxI,EAAQG,GAAY7sB,KAhDlBs1B,CAAa/vC,GACnB0gC,GAAIyO,cAAch9B,KAAI,OAE1BuuB,GAAIyO,cAActR,MAAO79B,IACjBA,GACA2oC,SAASV,iBAAiB,eAAev+B,QAAQu8B,IAC7CA,EAAGE,YAAckB,EAAOpB,EAAGkC,WAAWC,aAAa,aAAapoC,SAGxE0gC,GAAI0O,OAAOj9B,IAAInS,GAAS0gC,GAAIwO,cAActvC,SAE9C8gC,GAAIwO,cAAcrR,MAAO79B,IACrB0gC,GAAI0O,OAAOj9B,IAAInS,GAAS0gC,GAAIyO,cAAcvvC,SAE9C8gC,GAAI2O,YAAYnJ,SAAUlmC,IACtB2oC,SAASC,KAAK8G,aAAa,aAAc1vC,KA0C7C2oC,SAASd,iBAAiB,QAAUC,IAC5BA,EAAIkI,SAAuB,MAAZlI,EAAIxnC,KACnB8qC,GAAa,GACbuD,GAAOjO,GAAI9uB,MAAMhS,MAAMuF,IAAI8qC,QAEtBnI,EAAIkI,SAAuB,MAAZlI,EAAIxnC,MACxB8qC,GAAa,GACbuD,GAAOjO,GAAI9uB,MAAMhS,MAAMuF,IAAI+qC,UGlI5B,MCAMC,GAAS,CAACxK,EAAM14B,EAAS8H,EAAO6oB,KACzC,MAAMwS,EAAgB,KAAQ,IAAIjqC,EAAI,OAAOk7B,GAA4D,QAAlDl7B,EAAK8G,EAAQ6wB,KAAK7sB,GAAKA,EAAE,KAAO8D,EAAMnV,cAA2B,IAAPuG,EAAgBA,EAAK8G,EAAQ,IAAI,KAQlJ,MAAO,gCAPQ04B,EAAKjhC,SAASuhC,IACzBA,EAAG4B,iBAAiB,QAAS,KACzB,MAAM9oC,EAAIkO,EAAQ6iC,UAAU7+B,GAAKA,EAAE,KAAO8D,EAAMnV,OAChDmV,EAAM5C,IAAIlF,GAASlO,EAAI,GAAKkO,EAAQ7C,QAAQ,MAEhD2K,EAAM8oB,MAAM1vB,GAAK83B,EAAGqC,UAAY8H,IAAiB,gBAEHA,aCHzCC,GAAS,CAAC1K,EAAM1lB,EAAOqwB,EAAW,OAC3C,MAAMC,EAAiB5K,EAAKjhC,SAASuhC,IACjC,MAAMuK,EAAkB,KACpB,MAAMC,EAAS,CAAC,CAAC,UAAW,QAAS,CAAC,OAAQ,QAAS,CAAC,SAAU,SAClE,OAAKA,EAAOzlC,IAAIiG,GAAKA,EAAE,IAAI0M,SAAS+iB,GAAI2O,YAAYzvC,OAE7C6wC,EACFh+B,OAAOxB,GAAKA,EAAE,KAAOyvB,GAAI2O,YAAYzvC,OACrC6S,OAAOxB,GAAc,YAATA,EAAE,IAA0C,OAAtByvB,GAAI8K,QAAQ5rC,OAC9CoL,IAAIiG,GAAK,iBAAiB00B,EAAKU,QAAQ,IAAM3F,GAAI2O,YAAYl9B,IAAIlB,EAAE,qBACxEowB,EAAQpwB,EAAE,uBACLc,KAAK,IANC,IAQf2uB,GAAI2O,YAAYnJ,SAAS,KACrBP,EAAK+K,MAAMzK,EAAIuK,KAAmB,KAEtC9P,GAAI8K,QAAQtF,SAAS,CAAClmC,EAAO29B,KACX,OAAV39B,GAA4C,YAA1B0gC,GAAI2O,YAAYzvC,OAClC8gC,GAAI2O,YAAYl9B,IAAI,QAEV,OAAVnS,GAA+B,OAAb29B,GAClBgI,EAAK+K,MAAMzK,EAAIuK,KAAmB,OAI9C,MAAO,sEAEgBF,oCAA2CjJ,EAAO,YAAYhG,EAAQgC,6BACrFpjB,4EAGgCswB,sCFrCpB,EAAC5K,EAAM3lB,EAAM/S,EAAS8H,EAAO6oB,IAO1C,oDANU+H,EAAKjhC,SAASuhC,IAC3BA,EAAG4B,iBAAiB,SAAU,KAC1B9yB,EAAM5C,IAAI8zB,EAAGjmC,SAEjB+U,EAAMmxB,SAAShgC,GAAK+/B,EAAGjmC,MAAQkG,EAAG,0BAKlC+G,EAAQjC,IAAIiG,GAAK,2BACDA,EAAE,MAAMA,EAAE,uBACzBc,KAAK,2BAERsvB,EAAQrhB,eEyBA2wB,CAAShL,EAAM,QAAS,YAAU36B,IAAIhM,GAAK,CAACA,EAAE6iC,KAAM7iC,EAAEM,OAAQohC,GAAI4G,+BAClE6I,GAAOxK,EAAM,CAAC,CAAC,OAAQ,OAAQ,CAAC,QAAS,SAAUjF,GAAI6K,qFAEZlE,EAAO,8BAClDhG,EAAQc,4KAImFkF,EAAO,4BAClGhG,EAAQoB,oFCzCf,MAAMmO,GAAgB,CAAC3R,EAAK3/B,EAAMuxC,EAAOC,IAAW,oCAJ3D,SAAkB7R,GAEd,OADAA,EAAMA,EAAIttB,WAAW,KAAOstB,EAAM,IAAMA,GAC7B+G,SAAS,KAAO/G,EAAMA,EAAM,IAIlB8R,CAAS9R,6BAA+B6R,EAAS,YAAc,eAChFxxC,YACAuxC,EAAQxP,EAAQM,cAAgB,0BAI3BqP,GAAQrL,IACjB,MAAMsL,EAAiB,EAAOrC,OAAOn8B,OAAOtT,GAAKA,EAAE6M,WAAa00B,GAAI9uB,MAAMhS,MAAMuF,IAChF,MAAO,SACLkrC,GAAO1K,EAAM,gGAGT,EAAOiJ,OACRn8B,OAAOtT,GAA2B,iBAAfA,EAAE6M,UACrBhB,IAAI7L,GAAKyxC,GAAczxC,EAAEgG,GAAIhG,EAAEG,MAAqB,IAAfH,EAAE6M,SAAmB00B,GAAI9uB,MAAMhS,MAAMuF,KAAOhG,EAAEgG,KACnF4M,KAAK,2BAEoB,IAA1Bk/B,EAAe7mC,OAAe,GAAK,qDAE/B6mC,EAAejmC,IAAI7L,GAAKyxC,GAAczxC,EAAEgG,GAAIhG,EAAEG,OAAOyS,KAAK,gDC1BzDm/B,GAAYvL,GACd,SACL0K,GAAO1K,EAAM,2GAGR0B,EAAO,6EAERuJ,GAAc,IAAKvJ,EAAO,SAAS,kCCNhC8J,GAAiBxL,IAC1B,MAAMyL,EAAczL,EAAKjhC,SAAS2sC,IAC9B,MAAMC,EAAY,KACd,MAAMr0B,EAASyjB,GAAItZ,SAASnK,OAC5B,OAAOA,EAAOjS,IAAI,CAAC0C,EAAG3O,KAClB,MAAMwyC,EAAY5L,EAAKjhC,SAASuhC,IAC5B,IAAI9/B,EACJ8/B,EAAGjmC,MAA0B,QAAjBmG,EAAKuH,EAAE9D,YAAyB,IAAPzD,EAAgBA,EAAK,GAC1D8/B,EAAG4B,iBAAiB,SAAU,KAC1B5qB,EAAOle,GAAKU,OAAOwnC,OAAOxnC,OAAOwnC,OAAO,GAAIv5B,GAAI,CAAE9D,KAAMq8B,EAAGjmC,QAC3D0gC,GAAItZ,SAASmoB,OACb5J,EAAK+K,MAAMW,EAAWC,KAAa,OAGrCE,EAAY7L,EAAKjhC,SAASuhC,IAC5B,IAAI9/B,EACJ8/B,EAAGjmC,MAA0B,QAAjBmG,EAAKuH,EAAEpO,YAAyB,IAAP6G,EAAgBA,EAAK,GAC1D8/B,EAAG4B,iBAAiB,SAAU,KAC1B5qB,EAAOle,GAAKU,OAAOwnC,OAAOxnC,OAAOwnC,OAAO,GAAIv5B,GAAI,CAAEpO,KAAM2mC,EAAGjmC,QAC3D0gC,GAAItZ,SAASmoB,OACb5J,EAAK+K,MAAMW,EAAWC,KAAa,OAG3C,MAAO,gEAEFjK,EAAO,0EACYkK,iFAGnBlK,EAAO,gEACEmK,iFAGT9jC,aAA6B,EAASA,EAAE5D,QAAU,iBAAmB,eAAe67B,EAAKU,QAAQ,KAClGppB,EAAOle,GAAG+K,SAAU4D,aAA6B,EAASA,EAAE5D,cAAU3I,EACtEu/B,GAAItZ,SAASmoB,OACb5J,EAAK+K,MAAMW,EAAWC,KAAa,SAChC5jC,EAAE5D,OAASu3B,EAAQY,WAAaZ,EAAQW,yDACnB2D,EAAKU,QAAQ,KACrCppB,EAAO/B,OAAOnc,EAAG,GACjB2hC,GAAItZ,SAASmoB,OACb5J,EAAK+K,MAAMW,EAAWC,KAAa,SAChCjQ,EAAQ+B,qDAGhBrxB,KAAK,KAEZ4zB,EAAK+K,MAAMW,EAAWC,KAAa,KAEvC,MAAO,GAAGjB,GAAO1K,EAAM,2DAEhB0B,EAAO,6EACsB+J,wBCpDxC,IAAI5Y,GAA2B,oBAAXuE,OAAyBA,OAAS,KAClD0U,GAAiB,OAAXjZ,GACN,GAAYiZ,QAAwBtwC,EAAlBq3B,GAAOmQ,SAWzB+I,GAAO,WAAc,OAAO,GAO5BC,GAAOF,GACL,OACE,CAAC,GAAI,WAAY,QAAS,OACvBh/B,QAAO,SAAUm/B,GACd,IAAI3L,EAAK,GAAS4L,cAAc,OAGhC,OAFA5L,EAAG6L,MAAMC,QAAU,SAAWH,EAAS,cAE9B3L,EAAG6L,MAAM1nC,UAErBgI,QAAW,OAGlB4/B,GAAW,SAAU9rC,GAAK,MAAoB,iBAANA,GAAkBA,aAAa2yB,QAKvEoZ,GAAoB,SAAUhM,GAC9B,GAAI+L,GAAS/L,GAAK,CACd,IAAIiM,EAAM,GAASC,cAAclM,GACjC,IAAKiM,EACD,MAAM,IAAI7wC,MAAO,YAAc4kC,EAAK,gCAExC,OAAOiM,EAGX,OAAOjM,GAIPmM,GAAY,SAAU9+B,EAAS++B,EAAUC,GACzC,IAAItyC,EAAQsT,EAAQ++B,GACpB,YAAclxC,IAAVnB,EACOA,EAEJsyC,GAGPC,GAAgB,SAAUC,EAAYC,EAASC,EAAQC,GACvD,GAAIF,EAAS,CACT,GAAoB,QAAhBE,EACA,OAAO,EAEX,GAAoB,WAAhBA,EACA,OAAOH,EAAa,OAErB,GAAIE,EAAQ,CACf,GAAoB,UAAhBC,EACA,OAAO,EAEX,GAAoB,WAAhBA,EACA,OAAOH,EAAa,EAI5B,OAAOA,GAIPI,GAAkB,SAAU7zC,EAAG8zC,GAC/B,IAAIC,EAAM,GAASjB,cAAc,OAEjC,OADAiB,EAAIC,UAAY,iBAAmBF,EAC5BC,GAGPE,GAAwB,SAAUC,EAAKnvC,EAAMovC,GAC7C,IAAIpB,EAAQ,GAQZ,OANKE,GAASluC,GAGVguC,EAAMmB,GAAOnvC,EAFbguC,EAAMmB,GAAOtB,GAAO,IAAM7tC,EAAO,OAASovC,EAAU,MAKjDpB,GAGPqB,GAAuB,SAAUF,EAAKC,GACtC,IAAIz/B,EAEJ,OAAUA,EAAM,IAAQw/B,GAAQC,EAAU,KAAOz/B,GA8oBtC,GAhnBH,SAAU2/B,EAAW9/B,GAG7B,QAFiB,IAAZA,IAAqBA,EAAU,IAEhCm+B,GAAO,MAAO,GAElB,IACIl8B,EACA89B,EACAp+B,EACAq+B,EACAC,EACA1iB,EANA2iB,EAAMJ,EASNrgC,MAAMoO,OACNqyB,EAAMzgC,MAAMoO,KAAKqyB,IAMrB,IACIjzB,EADe0xB,GAAkBuB,EAAI,IACfC,WACtBC,EAAcC,iBAAmBA,iBAAiBpzB,GAAU,KAC5DqzB,EAAsBF,EAAcA,EAAYG,cAAgB,KAGhEC,EAAQ1B,GAAU9+B,EAAS,UAAYkgC,EAAIxoC,KAAI,WAAc,OAAO,IAAMwoC,EAAIppC,UAI9E2pC,EAAU3B,GAAU9+B,EAAS,UAAW,KACxC0gC,EAAWjhC,MAAMS,QAAQugC,GAAWA,EAAUP,EAAIxoC,KAAI,WAAc,OAAO+oC,KAG3EE,EAAc7B,GAAU9+B,EAAS,eAAe,GAChDk/B,EAAaJ,GAAU9+B,EAAS,aAAc,IAC9Cq/B,EAAcP,GAAU9+B,EAAS,cAAe,UAChD4gC,EAAa9B,GAAU9+B,EAAS,aAAc,IAC9C6gC,EAAe/B,GAAU9+B,EAAS,eAAgB,GAClD4iB,EAAYkc,GAAU9+B,EAAS,YA9JtB,cA+JT8gC,EAAShC,GACT9+B,EACA,SAjKS,eAkKT4iB,EAA2B,aAAe,cAE1Cme,EAASjC,GAAU9+B,EAAS,SAAUs/B,IACtC0B,EAAelC,GACf9+B,EACA,eACA0/B,IAEAuB,EAAcnC,GAAU9+B,EAAS,cAAe6/B,IA8BpD,SAASqB,EAAevO,EAAIniC,EAAMovC,EAASn0C,GAKvC,IAAI+yC,EAAQwC,EAAa/+B,EAAWzR,EAAMovC,EAASn0C,GAEnDU,OAAOgK,KAAKqoC,GAAOpoC,SAAQ,SAAUmxB,GAEjCoL,EAAG6L,MAAMjX,GAAQiX,EAAMjX,MAa/B,SAAS4Z,IACL,OAAO5jB,EAAS7lB,KAAI,SAAUsG,GAAW,OAAOA,EAAQxN,QAK5D,SAAS4wC,EAAiBzjC,GACtB,MAAI,YAAaA,EAAYA,EAAE0jC,QAAQ,GAAGtB,GACnCpiC,EAAEoiC,GASb,SAASuB,EAAO7wC,GACZ,IAAIiQ,EAAI6c,EAAS7vB,KAAKgT,GAClBC,EAAI4c,EAAS7vB,KAAKiT,GAClB4gC,EAAa7gC,EAAElQ,KAAOmQ,EAAEnQ,KAE5BkQ,EAAElQ,KAAQC,EAAS/C,KAAK8C,KAAQ+wC,EAChC5gC,EAAEnQ,KAAO+wC,EAAc9wC,EAAS/C,KAAK8C,KAAQ+wC,EAE7CL,EAAexgC,EAAE1C,QAAS0C,EAAElQ,KAAM9C,KAAgB,GAAGgT,EAAEjV,GACvDy1C,EAAevgC,EAAE3C,QAAS2C,EAAEnQ,KAAM9C,KAAgB,GAAGiT,EAAElV,GAiB3D,SAAS+1C,EAAK7jC,GACV,IAAIlN,EACAiQ,EAAI6c,EAAS7vB,KAAKgT,GAClBC,EAAI4c,EAAS7vB,KAAKiT,GAEjBjT,KAAK+zC,WAKVhxC,EACI2wC,EAAiBzjC,GACjBjQ,KAAK+P,OACJ/P,KAAgB,GAAIA,KAAKg0C,YAE1Bb,EAAe,IACfpwC,EAAS0jB,KAAKwtB,MAAMlxC,EAASowC,GAAgBA,GAM7CpwC,GAAUiQ,EAAE+/B,QAAUG,EAAalzC,KAAgB,GACnD+C,EAASiQ,EAAE+/B,QAAU/yC,KAAgB,GAErC+C,GACA/C,KAAK8C,MAAQmQ,EAAE8/B,QAAUG,EAAalzC,KAAgB,MAEtD+C,EAAS/C,KAAK8C,MAAQmQ,EAAE8/B,QAAU/yC,KAAgB,KAItD4zC,EAAO11C,KAAK8B,KAAM+C,GAIlBquC,GAAU9+B,EAAS,SAAUo+B,GAA7BU,CAAmCqC,MAgBvC,SAASS,IAEL,IAAIlhC,EAAI6c,EAAS7vB,KAAKgT,GAAG1C,QACrB2C,EAAI4c,EAAS7vB,KAAKiT,GAAG3C,QAErB6jC,EAAUnhC,EAAuB,wBACjCohC,EAAUnhC,EAAuB,wBAErCjT,KAAK8C,KACDqxC,EAAQ5/B,GACR6/B,EAAQ7/B,GACRvU,KAAgB,GAChBA,KAAgB,GACpBA,KAAK+P,MAAQokC,EAAQlgC,GACrBjU,KAAKoQ,IAAM+jC,EAAQ7B,GAiCvB,SAAS+B,EAAUC,GAGf,IAAIC,EAjCR,SAAmBjkC,GAGf,IAAKqiC,iBAAoB,OAAO,KAEhC,IAAI6B,EAAgB7B,iBAAiBriC,GAErC,IAAKkkC,EAAiB,OAAO,KAE7B,IAAI1xC,EAAOwN,EAAQiiC,GAEnB,OAAa,IAATzvC,EAAqB,KAGrBA,GA5VK,eA2VLoyB,EAEI3R,WAAWixB,EAAcC,aACzBlxB,WAAWixB,EAAcE,cAGzBnxB,WAAWixB,EAAcG,YACzBpxB,WAAWixB,EAAcI,eAahBC,CAAUt1B,GAC3B,GAAmB,OAAfg1B,EACA,OAAOD,EAGX,GAAItB,EAAShjC,QAAO,SAAUgD,EAAGC,GAAK,OAAOD,EAAIC,IAAM,GAAKshC,EACxD,OAAOD,EAKX,IAAIQ,EAAe,EACfC,EAAU,GAEVC,EAAaV,EAAYtqC,KAAI,SAAUlH,EAAM/E,GAE7C,IAAIk3C,EAAaV,EAAazxC,EAAQ,IAClCoyC,EAAoB3D,GACpBC,EACM,IAANzzC,EACAA,IAAMu2C,EAAYlrC,OAAS,EAC3BuoC,GAEAwD,EAAiBnC,EAASj1C,GAAKm3C,EAInC,OAAID,EAAYE,GACZL,GAAgBK,EAAiBF,EACjCF,EAAQ3wC,KAAK,GACN+wC,IAIXJ,EAAQ3wC,KAAK6wC,EAAYE,GAClBF,MAIX,OAAqB,IAAjBH,EACOR,EAGJU,EAAWhrC,KAAI,SAAUirC,EAAWl3C,GACvC,IAAIq3C,EAAeH,EAInB,GAAIH,EAAe,GAAKC,EAAQh3C,GAAK+2C,EAAe,EAAG,CACnD,IAAIO,EAAc5uB,KAAKnhB,IACnBwvC,EACAC,EAAQh3C,GAAK+2C,GAIjBA,GAAgBO,EAChBD,EAAeH,EAAYI,EAI/B,OAAQD,EAAeb,EAAc,OAK7C,SAASe,IACL,IACItiC,EAAI6c,EADG7vB,KACWgT,GAAG1C,QACrB2C,EAAI4c,EAFG7vB,KAEWiT,GAAG3C,QAFdtQ,KAIF+zC,UACL3C,GAAU9+B,EAAS,YAAao+B,GAAhCU,CAAsCqC,KAL/BzzC,KAQN+zC,UAAW,EAGhBvc,GAA0B,oBAAE,UAXjBx3B,KAWiCu1C,MAC5C/d,GAA0B,oBAAE,WAZjBx3B,KAYkCu1C,MAC7C/d,GAA0B,oBAAE,cAbjBx3B,KAaqCu1C,MAChD/d,GAA0B,oBAAE,YAdjBx3B,KAcmCw1C,MAC9Che,GAA0B,oBAAE,YAfjBx3B,KAemCw1C,MAfnCx1C,KAkBNu1C,KAAO,KAlBDv1C,KAmBNw1C,KAAO,KAEZxiC,EAAqB,oBAAE,cAAe09B,IACtC19B,EAAqB,oBAAE,YAAa09B,IACpCz9B,EAAqB,oBAAE,cAAey9B,IACtCz9B,EAAqB,oBAAE,YAAay9B,IAEpC19B,EAAE89B,MAAM2E,WAAa,GACrBziC,EAAE89B,MAAM4E,iBAAmB,GAC3B1iC,EAAE89B,MAAM6E,cAAgB,GACxB3iC,EAAE89B,MAAM8E,cAAgB,GAExB3iC,EAAE69B,MAAM2E,WAAa,GACrBxiC,EAAE69B,MAAM4E,iBAAmB,GAC3BziC,EAAE69B,MAAM6E,cAAgB,GACxB1iC,EAAE69B,MAAM8E,cAAgB,GAlCb51C,KAoCNqzC,OAAOvC,MAAMsC,OAAS,GApChBpzC,KAqCNuf,OAAOuxB,MAAMsC,OAAS,GAC3B,GAASxL,KAAKkJ,MAAMsC,OAAS,GAMjC,SAASyC,EAAc5lC,GAEnB,KAAI,WAAYA,IAAkB,IAAbA,EAAE6lC,OAAvB,CAKA,IACI9iC,EAAI6c,EADG7vB,KACWgT,GAAG1C,QACrB2C,EAAI4c,EAFG7vB,KAEWiT,GAAG3C,QAFdtQ,KAKD+zC,UACN3C,GAAU9+B,EAAS,cAAeo+B,GAAlCU,CAAwCqC,KAI5CxjC,EAAE8lC,iBAVS/1C,KAaN+zC,UAAW,EAbL/zC,KAiBNw1C,KAAO1B,EAAKv0C,KAjBNS,WAkBNu1C,KAAOD,EAAa/1C,KAlBdS,MAqBXw3B,GAAuB,iBAAE,UArBdx3B,KAqB8Bu1C,MACzC/d,GAAuB,iBAAE,WAtBdx3B,KAsB+Bu1C,MAC1C/d,GAAuB,iBAAE,cAvBdx3B,KAuBkCu1C,MAC7C/d,GAAuB,iBAAE,YAxBdx3B,KAwBgCw1C,MAC3Che,GAAuB,iBAAE,YAzBdx3B,KAyBgCw1C,MAG3CxiC,EAAkB,iBAAE,cAAe09B,IACnC19B,EAAkB,iBAAE,YAAa09B,IACjCz9B,EAAkB,iBAAE,cAAey9B,IACnCz9B,EAAkB,iBAAE,YAAay9B,IAEjC19B,EAAE89B,MAAM2E,WAAa,OACrBziC,EAAE89B,MAAM4E,iBAAmB,OAC3B1iC,EAAE89B,MAAM6E,cAAgB,OACxB3iC,EAAE89B,MAAM8E,cAAgB,OAExB3iC,EAAE69B,MAAM2E,WAAa,OACrBxiC,EAAE69B,MAAM4E,iBAAmB,OAC3BziC,EAAE69B,MAAM6E,cAAgB,OACxB1iC,EAAE69B,MAAM8E,cAAgB,OAzCb51C,KA4CNqzC,OAAOvC,MAAMsC,OAASA,EA5ChBpzC,KA6CNuf,OAAOuxB,MAAMsC,OAASA,EAC3B,GAASxL,KAAKkJ,MAAMsC,OAASA,EAG7Bc,EAAeh2C,KAjDJ8B,WAoDNg0C,WAAaN,EAAiBzjC,GApDxBjQ,KAoDkCoQ,KAxhBpC,eA+KT8kB,GACA3gB,EAAY,QACZ89B,EAAa,UACbp+B,EAAW,OACXq+B,EAAc,QACdC,EAAa,eACQ,aAAdrd,IACP3gB,EAAY,SACZ89B,EAAa,UACbp+B,EAAW,MACXq+B,EAAc,SACdC,EAAa,gBAkWjBO,EAAQuB,EAAUvB,GAsBlB,IAAIkD,EAAQ,GA8FZ,SAASC,EAAY3lC,GACjB,IAAIohC,EAASphC,EAAQvS,IAAMi4C,EAAM5sC,OAC7B8sC,EAAOxE,EAASsE,EAAM1lC,EAAQvS,EAAI,GAAKi4C,EAAM1lC,EAAQvS,GAEzDm2C,EAAeh2C,KAAKg4C,GAEpB,IAAIpzC,EAAO4uC,EACLwE,EAAKpzC,KAAOwN,EAAQyiC,QAAUmD,EAAgB,GAC9C5lC,EAAQyiC,QAAUmD,EAAgB,GAExCtC,EAAO11C,KAAKg4C,EAAMpzC,GAgEtB,OAvKA+sB,EAAW2iB,EAAIxoC,KAAI,SAAU7F,EAAIpG,GAE7B,IAOIm4C,EAPA5lC,EAAU,CACVA,QAAS2gC,GAAkB9sC,GAC3BrB,KAAMgwC,EAAM/0C,GACZg1C,QAASC,EAASj1C,GAClBA,EAAGA,GAKP,GAAIA,EAAI,KAEJm4C,EAAO,CACHljC,EAAGjV,EAAI,EACPkV,EAAGlV,EACHg2C,UAAU,EACV7e,UAAWA,EACX3V,OAAQA,IAGI,GAAIgyB,GAChBC,EACAzzC,EAAI,GAAM,GACV,EACA4zC,GAEJuE,EAAgB,GAAI3E,GAChBC,GACA,EACAzzC,IAAMy0C,EAAIppC,OAAS,EACnBuoC,GAKwB,gBAAxBiB,GACwB,mBAAxBA,GACF,CACE,IAAIuD,EAAOD,EAAKljC,EAChBkjC,EAAKljC,EAAIkjC,EAAKjjC,EACdijC,EAAKjjC,EAAIkjC,EASjB,GAAIp4C,EAAI,EAAG,CACP,IAAIq4C,EAAgB/C,EAAOt1C,EAAGm3B,EAAW5kB,EAAQA,UAjZzD,SAAuB8lC,EAAelE,EAASn0C,GAC3C,IAAI+yC,EAAQyC,EAAYh/B,EAAW29B,EAASn0C,GAE5CU,OAAOgK,KAAKqoC,GAAOpoC,SAAQ,SAAUmxB,GAEjCuc,EAActF,MAAMjX,GAAQiX,EAAMjX,MA6YlCwc,CAAcD,EAAe5E,EAAYzzC,GAGzCm4C,EAAwB,GAAIL,EAAct2C,KAAK22C,GAG/CE,EAA8B,iBAC1B,YACAF,EAAwB,IAE5BE,EAA8B,iBAC1B,aACAF,EAAwB,IAG5B32B,EAAO+2B,aAAaF,EAAe9lC,EAAQA,SAE3C4lC,EAAK7C,OAAS+C,EAqBlB,OAlBA5C,EACIljC,EAAQA,QACRA,EAAQxN,KACRyuC,GACIC,EACM,IAANzzC,EACAA,IAAMy0C,EAAIppC,OAAS,EACnBuoC,GAEJ5zC,GAKAA,EAAI,GACJi4C,EAAM5xC,KAAK8xC,GAGR5lC,MAgBF5H,SAAQ,SAAU4H,GACvB,IAAIimC,EAAejmC,EAAQA,QAA6B,wBAAIiE,GAExDgiC,EAAejmC,EAAQyiC,UACnBE,EACAgD,EAAY3lC,GAGZA,EAAQyiC,QAAUwD,MAqDvB,CACHC,SAjDJ,SAAkBC,GACd,IAAIC,EAAUrC,EAAUoC,GACxBC,EAAQhuC,SAAQ,SAAUiuC,EAAS54C,GAC/B,GAAIA,EAAI,EAAG,CACP,IAAIm4C,EAAOF,EAAMj4C,EAAI,GAEjBiV,EAAI6c,EAASqmB,EAAKljC,GAClBC,EAAI4c,EAASqmB,EAAKjjC,GAEtBD,EAAElQ,KAAO4zC,EAAQ34C,EAAI,GACrBkV,EAAEnQ,KAAO6zC,EAETnD,EAAexgC,EAAE1C,QAAS0C,EAAElQ,KAAMozC,EAAgB,GAAGljC,EAAEjV,GACvDy1C,EAAevgC,EAAE3C,QAAS2C,EAAEnQ,KAAMozC,EAAgB,GAAGjjC,EAAElV,QAqC/D01C,SAAUA,EACVmD,SAAU,SAAkB74C,GACxBk4C,EAAYpmB,EAAS9xB,KAEzB84C,QApCJ,SAAiBC,EAAgBC,GAC7Bf,EAAMttC,SAAQ,SAAUwtC,GAcpB,IAbuB,IAAnBa,EACAb,EAAK32B,OAAOy3B,YAAYd,EAAK7C,SAE7B6C,EAAK7C,OAA0B,oBAC3B,YACA6C,EAAwB,IAE5BA,EAAK7C,OAA0B,oBAC3B,aACA6C,EAAwB,MAIT,IAAnBY,EAAyB,CACzB,IAAIhG,EAAQwC,EACR/+B,EACA2hC,EAAKljC,EAAElQ,KACPozC,EAAgB,IAGpBz3C,OAAOgK,KAAKqoC,GAAOpoC,SAAQ,SAAUmxB,GACjChK,EAASqmB,EAAKljC,GAAG1C,QAAQwgC,MAAMjX,GAAQ,GACvChK,EAASqmB,EAAKjjC,GAAG3C,QAAQwgC,MAAMjX,GAAQ,WAanDta,OAAQA,EACRy2B,MAAOA,ICjvBR,MAAMiB,GAAa,CAACtS,EAAMryB,EAASrG,KACtC,IAAI9G,EACJ,MAAO,+BAC8C,QAA5BA,EAAKmN,EAAQ4iB,iBAA8B,IAAP/vB,EAAgBA,EAAK,yBAAyBw/B,EAAKjhC,SAASuhC,IACrH,GAAM,GAAG50B,MAAMnS,KAAK+mC,EAAGp3B,UAAWpP,OAAOwnC,OAAO,CAAEiN,WAAY,GAAK5gC,eAErErG,EAAQ8E,KAAK,mBCFNmmC,GAAiB,CAC1B,SACA,QAAO,WAAE57B,GAAc1S,EAAMuuC,GACzB,OAAO77B,EAAWjO,KAAKrN,KAAM4I,EAAMuuC,IAEvC13C,OAAM,IAAKmJ,EAAMuuC,IACTzM,GAAS0M,YAAYtH,OAAOlnC,GACrByuC,GAAW3M,GAAS0M,YAAaxuC,EAAMuuC,GAE9CzM,GAAS4M,eAAexH,OAAOlnC,GACxByuC,GAAW3M,GAAS4M,eAAgB1uC,EAAMuuC,GAEjDzM,GAASxe,UAAU4jB,OAAOlnC,GACnByuC,GAAW3M,GAASxe,UAAWtjB,EAAMuuC,QADhD,EAIJ,UAAWvuC,EAAMuuC,GACb,GAAIvuC,EAAKo8B,SAAS,IAAI,OAAK,CAAC,YACrBp8B,EAAKgC,MAAMA,MAAMo6B,SAAS,IAAI,OAAK,CAAC,YAAa,eAAgB,YAAa,CACjF,MAAMuS,EAAe7M,GAAS0M,YACxB/iC,EAAQzL,EAAKhK,MACbuF,EAAKgzC,EAAQK,SAASvS,IACxBsS,EAAaE,cAAcpjC,EAAO4wB,EAAGjmC,SAEzC,MAAO,8BAA8Bu4C,EAAaG,YAAYrjC,eAAmBlQ,gBAI7F,SAASkzC,GAAW7M,EAAS5hC,EAAMuuC,GAM/B,MAAO,mBALIA,EAAQ9R,QAAQ,KACvB+E,EAAmBI,EAAQyD,WAC3BzD,EAAQ5hC,KAAOA,EACf82B,GAAI8K,QAAQr5B,IAAIq5B,QAEYnE,EAAO,cAAchG,EAAQwB,gBCtC1D,MAAM8V,GAAe,CACxB7xC,KAAM,IAAM,KACZ,QAAO,OAAE2L,EAAM,gBAAE0K,GAAmBvT,EAAMgvC,EAAQlvB,EAAQ,GACtD,GAAIA,EAAQ,EACR,OAAO,KACX,GAAIjX,EAAQ,CACR,MAAM87B,EAAW,uBAAa3kC,EAAM6I,GACpC,GAAI87B,GAAYA,EAAS3iC,MAAM8G,OAAOkmC,GAClC,OAAOrK,EAAS7yB,OAExB,MAAMmC,EAAeV,EAAgBvT,GACrC,IAAK,MAAM3I,KAAKxB,OAAOgK,KAAKoU,GAAe,CACvC,MAAM0wB,EAAW1wB,EAAa5c,GAAGoN,KAAKrN,KAAM4I,EAAKxE,KAAKnE,GAAI23C,EAAQlvB,GAAS,GAC3E,GAAI6kB,EACA,OAAOA,EAEf,OAAO,OCPTsK,GAAY,IAAI,YAAU,kBAAQ,uBAAc,wBAAe,CAAE99B,WAAY,IAKtE+9B,GAAa,CACtBhyC,KAAI,IACO,CAAC,GAAI,GAAI,IAEpB,SAAQ,KAAEd,GAAQ4D,EAAM5J,EAAOm4C,GAC3B,MAAMY,EAAUZ,EAAQ9R,QAAQJ,IAC5Br8B,EAAKgI,MAAMO,IAAIvI,KAAM5D,EAAK+H,aAAwB,IAAV/N,SAAkBmB,KAExD63C,EAASb,EAAQ9R,QAAQJ,IAC3Br8B,EAAKgI,MAAMO,IAAIvI,GAAM5D,EAAK+H,aAAwB,IAAV/N,QAAiBmB,KAE7D,MAAO,CAAC,GAAI,WAAoB,IAAVnB,EAAkB,oBAAsB,0BACnD+4C,MAAY/b,EAAWqK,EAAO,qCACxB,IAAVrnC,EAAiB,oBAAsB,0BACnCg5C,MAAWhc,EAAWqK,EAAO,oBAAqB,KAEjE,QAAO,QAAEn9B,EAAO,OAAEtE,EAAM,WAAE0W,GAAc1S,EAAM5J,EAAOm4C,GACjD,MAAM57B,EAASD,EAAW1I,WAAWhK,GAAM,GACrC6T,GAAmB7X,aAAuC,EAASA,EAAOP,SAAW,IAAI,YAAUuE,EAAK8T,WAAY,IAAI,OAAK9T,EAAKsJ,WAAY,CAACtN,EAAOP,WAAauE,EACnKqvC,GAAyBrzC,aAAuC,EAASA,EAAOiB,eAAiB,IAAI,OAAK,GAAI,CAACjB,EAAOiB,iBAAmBjB,aAAuC,EAASA,EAAOP,SAAW,IAAI,OAAK,GAAI,CAACO,EAAOP,UAAYuE,GAC3OgoC,EAAQsH,EAAQtQ,GAAQrsB,EAAOvW,KAAKqI,KAAKrN,KAAMyc,EAAiBzd,EAAOm4C,GAC9E,GAAuB,IAAnBjuC,EAAQE,OACR,MAAO,CAACwnC,EAAQsH,EAAQtQ,GAe5B,MAAO,CAACgJ,EALO,oBARCuG,EAAQzzC,SAASuhC,IAC7BA,EAAGjmC,MAAQuc,EAAOxW,KAClBkgC,EAAG4B,iBAAiB,SAAU,KAC1B,IAAI1hC,EACJ,MAAM/G,EAAsD,QAAjD+G,EAAK+D,EAAQ4zB,KAAK1+B,GAAKA,EAAE2G,OAASkgC,EAAGjmC,cAA2B,IAAPmG,EAAgBA,EAAKoW,EACzF3S,EAAKgI,MAAMO,IAAIvI,EAAMxK,EAAE6G,OAAS7G,EAAE6G,OAAOjG,GAASZ,EAAE4G,KAAKV,2BAIjE4E,EAAQc,IAAI5L,GAAK,kBAAkB49B,EAAW59B,EAAE2G,oBAC9Ci3B,EAAWmc,GAAWF,EAAsB7zC,KAAKhG,EAAE2G,4BAC3CgM,KAAK,qBAEUmnC,EAAQtQ,IAErC,MAAK,SAAE/5B,GAAYjF,EAAM5J,EAAOm4C,GAC5B,MAAMiB,EAAQjB,EAAQ9R,QAAQJ,IACrBlzB,MAAMS,QAAQxT,KACfA,EAAQ,IACZ4J,EAAKgI,MAAMO,IAAIvI,EAAM,CAACiF,EAASvJ,aAActF,MAE3Cq5C,EAAclB,EAAQ9R,QAAQJ,IAC3BlzB,MAAMS,QAAQxT,KACfA,EAAQ,IACZ4J,EAAKgI,MAAMO,IAAIvI,EAAM,IAAI5J,EAAO6O,EAASvJ,cAEvC4zC,EAAS,gCAAgCE,kBAAsB/R,EAAO,kBAAkBhG,EAAQ0B,uBACtG,IAAI6F,EAAO,GA6BX,OA5BI71B,MAAMS,QAAQxT,KACd4oC,EAAO5oC,EAAMgL,IAAI,CAACsuC,EAAYtmC,KAC1B,MAAMumC,EAAWpB,EAAQ9R,QAAQJ,GAAMr8B,EAAKgI,MAAMO,IAAIvI,EAAKxE,KAAK4N,QAAQ7R,IAClEq4C,EAAY5vC,EAAKxE,KAAK4N,GAAOxB,YAAY,SACzCxF,EAAW6C,EAAS7C,SAASwtC,IAC5BC,EAASC,EAASC,GAAS9qC,EAASR,KAAKrN,KAAMw4C,EAAWF,EAAYnB,GAC7E,MAAO,4CAA4CtpC,EAAS9I,KAAKyzC,YAAoBxtC,EAAW,kBAAkBgxB,EAAWhxB,MAAe,yDAE9IuG,GAAMinC,EAAWrB,mBACjByB,GAAKJ,EAAWrB,mDACgBoB,kBAAyBlS,EAAO,qBAAqBhG,EAAQ+B,kCAC7FqW,yBACOI,GAAYL,EAAWrB,sBAC5Bnb,EAAWmc,GAAWvvC,EAAK4H,YAAY,SAAU,CAAC,GAAGwB,2CAEvD0mC,kCAEFC,EAAQ,0BAA0BA,UAAgB,+BAE/C5nC,KAAK,IACJ/R,EAAMoK,OAAS,IACfw+B,GAAQ,gHAEmByQ,kBAA4BhS,EAAO,kBAAkBhG,EAAQ0B,2DAKzF,CAAC,GAAImW,EAAQtQ,IAExB,KAAI,KAAEn/B,EAAI,SAAEoF,EAAQ,OAAEjJ,GAAUgE,EAAM5J,EAAOm4C,GACzC,IAAIhyC,EAAIC,EAAIC,EACZ,MAAMyzC,EAAU,IAAI,YAAUjB,GAAW,IAAI,OAAK,CAAC,GAAWjvC,EAAKyJ,eAC7D+lC,EAAQjB,EAAQ9R,QAAQJ,IAC1B,MAAM3lC,EAAMw5C,EAAQl6C,MACpBgK,EAAKgI,MAAMO,IAAIvI,EAAKxE,KAAK9E,GAAMuO,EAASvJ,aAE5C,IAAI4zC,EAAS,GACb,MAAMa,EAA+F,qBAAnD,QAA5B5zC,EAAKP,EAAOV,kBAA+B,IAAPiB,OAAgB,EAASA,EAAGtB,WAAmC67B,GAAIC,mBAAmB,uBAAa/2B,EAAMhE,EAAOV,WAAWJ,OAAOK,IAAIvF,OAAS,KACzM,IAAKm6C,GAAcA,EAAW5yC,WAAY,CAItC+xC,GAHqBa,EACf,qBAAW,KAAM,CAAEpzC,KAAMlH,OAAOgK,KAAsC,QAAhCrD,EAAK2zC,EAAW5yC,kBAA+B,IAAPf,EAAgBA,EAAK,MACnGqD,GAAM4E,KAAKrN,KAAM84C,EAAkC,QAAxBzzC,EAAKyzC,EAAQl6C,aAA0B,IAAPyG,EAAgBA,EAAK,GAAI8xC,GACrE,GAAK,gCAAgCiB,kBAAsB/R,EAAO,kBAAkBhG,EAAQ0B,uBAErH,IAAI6F,EAAO,GA0BX,MAzBqB,iBAAV5oC,QAAgCmB,IAAVnB,IAC7B4oC,EAAOnpC,OAAOgK,KAAKzJ,GACdgL,IAAI1K,IACL,MAAMi5C,EAAWpB,EAAQ9R,QAAQJ,GAAMr8B,EAAKgI,MAAMO,IAAIvI,EAAKxE,KAAK9E,QAAMa,IAChEq4C,EAAY5vC,EAAK2H,UAAUjR,GAC3B0L,EAAW6C,EAAS7C,SAASwtC,IAC5BC,EAASC,EAASC,IAAUI,EAC7B,qBAAW,KAAMA,EAAW5yC,YAAc,CAAER,KAAMozC,EAAW5yC,WAAW7G,KACxEuO,GAAUR,KAAKrN,KAAMw4C,EAAWx5C,EAAMM,GAAM63C,GAClD,MAAO,4CAA4CtpC,EAAS9I,KAAKyzC,YAAoBxtC,EAAW,kBAAkBgxB,EAAWhxB,MAAe,6DAE5IuG,GAAMinC,EAAWrB,qBACjByB,GAAKJ,EAAWrB,qDACgBoB,kBAAyBlS,EAAO,qBAAqBhG,EAAQ+B,oCAC7FqW,2BACOI,GAAYL,EAAWrB,wBAC5Bnb,EAAW18B,6CAEbo5C,sCAEFC,EAAQ,0BAA0BA,UAAgB,iCAG/C5nC,KAAK,KAEP,CAAC,GAAImnC,EAAQtQ,IAExB,QAAO,QAAEnjC,EAAO,OAAEG,GAAUgE,EAAM5J,EAAOm4C,GACrC,IAAIhyC,EACJ,MAAMqyC,EAAWL,EAAQK,SAASvS,IAC9B,MAAMjmC,EAAQimC,EAAGjmC,MACjB,IAAIg6C,GAAUp0C,aAAuC,EAASA,EAAOmH,OAASqG,SAASpT,EAAMqR,MAAM,GAAI,IACjG5L,EAAU2N,SAASpT,GAASukB,WAAWvkB,GAC7C4J,EAAKgI,MAAMO,IAAIvI,EAAMowC,KAEzB,GAAIp0C,aAAuC,EAASA,EAAOmH,MAAO,CAE9D,MAAO,CAAC,GAAI,gCAAgCyrC,cAD8D,QAA5FryC,EAAKnG,aAAqC,EAASA,EAAMqT,SAAS,IAAI6zB,SAAS,EAAG,YAAyB,IAAP/gC,EAAgBA,EAAK,aAC7D,IAE9E,MAAO,CAAC,GAAI,mBAAmBqyC,aAAoBx4C,QAAqCA,EAAQ,OAAQ,KAE5G,QAAO,KAAEgG,EAAI,gBAAEmX,EAAe,kBAAEE,GAAqBzT,EAAM5J,EAAOm4C,GAE9D,IAAIvG,EAAS,GACT5rC,EAAK+H,aAED6jC,OADUzwC,IAAVnB,EACS,4CAA4Cm4C,EAAQ9R,QAAQ,IAAMz8B,EAAKgI,MAAMO,IAAIvI,EAAM5D,EAAKV,4BAA4B+hC,EAAO,qBAAqBhG,EAAQ0B,uBAG5J,0CAA0CoV,EAAQ9R,QAAQ,IAAMz8B,EAAKgI,MAAMO,IAAIvI,OAAMzI,oBAA4BkmC,EAAO,uBAAuBhG,EAAQ+B,qBAGxK,IAAI8V,EAAS,GACTtQ,EAAO,GACX,GAAqB,iBAAV5oC,QAAgCmB,IAAVnB,KAA0BgG,EAAK+H,iBAAwB5M,IAAVnB,GAAuB,CACjG,MAAM6d,EAAeV,EAAgBvT,GAC/BqU,EAAaxe,OAAOgK,KAAKoU,GACzBo8B,EAAqC,IAAzBrwC,EAAKsH,SAAS9G,OAAe,KAAOpE,EAAKqI,KAAKsqC,GAAc/uC,EAAMA,IAChFqwC,GAAep8B,EAAao8B,GAAWnwC,QAAU+T,EAAao8B,GAAWnwC,WACzE8nC,GAAUr/B,GAAM3I,EAAKxE,KAAK60C,GAAY9B,GACtCvG,GAAUgI,GAAKhwC,EAAKxE,KAAK60C,GAAY9B,GACrCe,GAAUr7B,EAAao8B,GAAW5rC,KAAKrN,KAAM4I,EAAKxE,KAAK60C,GAAYj6C,EAAMi6C,GAAY9B,GAAS,IAY9FvP,GAViBlI,GAAIqO,cAAcnvC,MACjCqe,EAAWxL,OAAOxR,QAAkBE,IAAbnB,EAAMiB,IAC7Bgd,GACDxL,OAAOxR,GAAKg5C,IAAch5C,GAC1BwR,OAAOxR,GAAK4c,EAAa5c,GAAG0I,QAAQC,IAMlBoB,IAAI/J,IACnB,IAAIkF,EACJ,MAAM+zC,EAAQr8B,EAAa5c,GACrBu4C,EAAYn8B,EAAkBzT,EAAM3I,GACpCoE,EAAUm0C,EAAUW,aAAapoC,KAAK,KACtCqoC,EAAgB1Z,GAAItZ,SAASnK,OAAO6gB,KAAKpwB,IAAMA,aAA6B,EAASA,EAAE9D,OAASvE,EAAQ2gC,SAASt4B,EAAE9D,OACzH,GAAKswC,EAAMpwC,QAAUowC,EAAMpwC,WAAcswC,aAAqD,EAASA,EAActwC,QACjH,MAAO,GACX,MAAMkC,EAAWkuC,EAAMluC,SAASwtC,IACzBC,EAASC,EAASC,GAASO,EAAM7rC,KAAKrN,KAAMw4C,EAAWx5C,EAAMiB,GAAIk3C,GACxE,MAAU,eAANl3C,GAAkC,KAAZy4C,EACf,GACJ,oBAAoBQ,EAAMn0C,KAAKyzC,WAAmBG,EAAQ,GAAK,cAAc3tC,EAAW,kBAAkBgxB,EAAWhxB,MAAe,6DAE/IuG,GAAMinC,EAAWrB,qBACjByB,GAAKJ,EAAWrB,qBAChBsB,2BACOI,GAAYL,EAAWrB,wBAC5Bnb,EAAuG,QAA3F72B,EAAKi0C,aAAqD,EAASA,EAAc96C,YAAyB,IAAP6G,EAAgBA,EAAKgzC,GAAWK,8CAEjJE,sCAEFC,EAAQ,0BAA0BA,UAAgB,2BAG3C5nC,KAAK,IAIlB,OADAmnC,GAAUlzC,EAAKqI,KAAK6pC,GAAgBtuC,EAAMuuC,IAAY,GAC/C,CAAC,GAAIvG,EAASsH,EAAQtQ,IAEjC,OAAO9jC,EAAQ8E,EAAM5J,EAAOm4C,GACxB,MAAMkC,EAAUlC,EAAQzzC,SAASuhC,IAC7BA,EAAGjmC,MAAQA,QAAqCA,EAAQ,GACxDimC,EAAG4B,iBAAiB,SAAUC,IAC1B,MAAM1pB,EAAW6nB,EAAGjmC,MACpB4J,EAAKgI,MAAMO,IAAIvI,EAA0B,IAApBwU,EAAShU,YAAejJ,EAAYid,GACzD0pB,EAAIC,sBAGNmR,EAASp0C,EAAOkB,KAAKqI,KAAK6pC,GAAgBtuC,EAAMuuC,IAAY,GAClE,MAAO,CAAC,GAAImC,GAAUx1C,EAAQ8E,EAAMywC,GAAWnB,EAAQ,MAW/D,SAASoB,IAAU,KAAEt0C,EAAI,UAAEyY,EAAS,OAAE7Y,GAAUgE,EAAMywC,GAClD,MAAMx7B,EAASJ,IACf,IAR2B,QAAhBtY,EAQAP,SAR+B,IAAPO,OAAgB,EAASA,EAAGQ,QAQxCf,EAAOgZ,WAAY,CAGtC,OAAO27B,GAAUv0C,EAF0B,iBAAhBJ,EAAOe,KAC9B,IAAI,OAAKiD,EAAKsJ,WAAY,CAACtN,EAAOe,OAASiD,EACXiV,EAAQw7B,GAbpD,IACQl0C,EAcJ,GAAIP,GAXR,SAAqB5F,GACjB,IAAImG,EACJ,SAA2B,QAAhBA,EAAKnG,SAA0B,IAAPmG,OAAgB,EAASA,EAAGtB,WASjD2Z,CAAY5Y,IACE,aAArBA,EAAOf,WACuB,iBAAvBe,EAAOd,OAAOC,MACrB8Z,EAAOzU,OAAS,EAAG,CACtB,MAAMowC,EAAc,IAAI,OAAK5wC,EAAKsJ,WAAY,CAACtN,EAAOd,OAAOC,OAC7D,GAAIyiC,EAAgBgT,EAAYhpC,YAAYqN,EAAO,IAAIs7B,cACnD,OAAOI,GAAUv0C,EAAMw0C,EAAa37B,EAAQw7B,GAGpD,MAAMI,EAAa5d,IACnB,MAAO,mBAAmBwd,MAA8B,IAAlBx7B,EAAOzU,OAAe,GAAK,SAASqwC,YACxD,IAAlB57B,EAAOzU,OAAe,GAClB,iBAAiBqwC,YACnB57B,EAAO7T,IAAI9E,GAAK,kBAAkB82B,EAAW92B,QAAQ6L,KAAK,uBAGhE,SAASwoC,GAAUv0C,EAAMw0C,EAAa37B,EAAQw7B,GAC1C,MAAO,oBAAoBA,YACzBr0C,EAAK+H,WAAa,oBAAoBivB,EAAWqK,EAAO,qBAAuB,WAC/ExoB,EAAO7T,IAAI9E,GAAK,kBAAkB82B,EAAW92B,eAC3C82B,EAAWmc,GAAWqB,EAAYhpC,YAAYtL,uBACtC6L,KAAK,mBAGrB,SAAS,GAAWsC,GAChB,IAActV,EAAVigC,EAAO,EACX,IAAKjgC,EAAI,EAAGA,EAAIsV,EAAIjK,OAAQrL,IAExBigC,GAASA,GAAQ,GAAKA,EADhB3qB,EAAI0kB,WAAWh6B,GAErBigC,GAAQ,EAEZ,OAAOA,EAEX,SAASma,GAAWvvC,EAAM9E,GACtB,IAAIqB,EAAIC,EACR,OAAqJ,QAA7IA,EAA2D,QAArDD,EAAKqhC,EAAgB59B,EAAKuwC,aAAcr1C,UAA4B,IAAPqB,EAAgBA,EAAKyD,EAAKuwC,aAAavwC,EAAKuwC,aAAa/vC,OAAS,UAAuB,IAAPhE,EAAgBA,EAAK,GAEtL,SAASmM,GAAM1R,EAAGs3C,GACd,MAAM7lC,EAASzR,EAAE+Q,MAAMU,OAAO1S,IAAIiB,GAAG,GACrC,OAAsB,IAAlByR,EAAOlI,OACA,GACJswC,GAAU,aAAc,eAAgB1d,EAAWqK,EAAO/0B,EAAO,GAAGC,MAAOD,EAAO,GAAGxN,SAAUqzC,GAE1G,SAASyB,GAAKhwC,EAAMuuC,GAChB,MAAMwC,EAAUnT,EAAgB59B,EAAK4H,YAAY,QAAQ2oC,aAAc,GAAI,GAC3E,YAAgBh5C,IAAZw5C,EACO,GACJD,GAAU,YAAa,OAAQ1d,EAAW2d,GAAUxC,GAE/D,MAAMuC,GAAY,CAAC30C,EAAMia,EAAM46B,EAAOzC,IAO3B,yBAAyBpyC,eANhBoyC,EAAQ9R,QAAQJ,IAC5BA,EAAG4U,qBAAqB,QAAQ,GAAGpS,UAAUv7B,IAAI,QACjDy7B,SAASC,KAAKf,iBAAiB,QAAS,KACpC5B,EAAG4U,qBAAqB,QAAQ,GAAGpS,UAAUM,OAAO,SACrD,CAAEC,SAAS,EAAMC,MAAM,yCAGH2R,WAAevZ,EAAQrhB,eAGhD65B,GAAc,CAACjwC,EAAMuuC,IAwDhB,YAvDIA,EAAQzzC,SAASuhC,IACxB,MAAM6U,EAAW,KACb,IAAI30C,EACJ,MAAMy0C,EAAQjS,SAASkJ,cAAc,OACrC+I,EAAMnS,UAAUv7B,IAAI,aACpB,MAAM6tC,EAAcvT,EAAgB59B,EAAK4H,YAAY,QAAQ2oC,aAAc,GAAI,GAC3EY,GACAH,EAAMI,mBAAmB,YAAa,qCAAqCD,YAC/E,MAAM11C,EAAUuE,EAAKuwC,aAAapoC,KAAK,KACvC6oC,EAAMI,mBAAmB,YAAa,kEAEpB3Z,EAAQO,qFAEMv8B,4BAEkB,QAAjDc,EAAKy0C,EAAMzI,cAAc,0BAAuC,IAAPhsC,GAAyBA,EAAG0hC,iBAAiB,QAAS,KAC5G,MAAMoT,EAAUtS,SAASkJ,cAAc,SACvCoJ,EAAQj7C,MAAQqF,EAChB4gC,EAAGiV,YAAYD,GACfA,EAAQE,SACRxS,SAASyS,YAAY,QACrBnV,EAAG+R,YAAYiD,KAEnBhV,EAAGiV,YAAYN,GACfjS,SAASC,KAAKf,iBAAiB,QAAS,KACpC,IACI5B,EAAG+R,YAAY4C,GAEnB,MAAO3pC,MACR,CAAE+3B,SAAS,EAAMC,MAAM,IAC1BN,SAASC,KAAKf,iBAAiB,cAAe,KAC1C,IACI5B,EAAG+R,YAAY4C,GAEnB,MAAO3pC,MACR,CAAE+3B,SAAS,EAAMC,MAAM,KAE9BhD,EAAG4B,iBAAiB,cAAeC,IAC/BgT,IACAhT,EAAIiP,mBAER,IAAIsE,EAAQ,KACZpV,EAAG4B,iBAAiB,aAAc,KAC9BwT,EAAQC,WAAW,KACfR,IACAO,EAAQ,MACT,OAEPpV,EAAG4B,iBAAiB,WAAY,KACxBwT,IACAE,aAAaF,GACbA,EAAQ,aCrWxB,IAAI,GAAwC,SAAUppC,EAASksB,EAAYC,EAAG1X,GAE1E,OAAO,IAAK0X,IAAMA,EAAIC,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUx+B,GAAS,IAAM0Y,EAAKgO,EAAUsS,KAAKh5B,IAAW,MAAOiR,GAAKstB,EAAOttB,IACpF,SAASwtB,EAASz+B,GAAS,IAAM0Y,EAAKgO,EAAiB,MAAE1mB,IAAW,MAAOiR,GAAKstB,EAAOttB,IACvF,SAASyH,EAAKiB,GAJlB,IAAe3Z,EAIa2Z,EAAO+kB,KAAOJ,EAAQ3kB,EAAO3Z,QAJ1CA,EAIyD2Z,EAAO3Z,MAJhDA,aAAiBo+B,EAAIp+B,EAAQ,IAAIo+B,GAAE,SAAUE,GAAWA,EAAQt+B,OAIT2+B,KAAKH,EAAWC,GAClG/lB,GAAMgO,EAAYA,EAAU6V,MAAMtqB,EAASksB,GAAc,KAAKnF,YAW/D,MAAMwiB,GAAY,CAAC7V,EAAM/zB,KAC5B,MAAM6pC,EAAa,KACf,GAAI/a,GAAI0O,OAAOxvC,MAAO,CAClB,MAAMgK,EAAO,IAAI,YAAUgI,GACrB8pC,EAAW9pC,EAAM4I,OAAOnM,KAAKyqC,GAAYlvC,EAAMgI,EAAM6I,KAAMkrB,GAC3D35B,EAAW4F,EAAM4I,OAAOxO,SAASpC,GACvC,OAAI8xC,EAAS,GACF,oBAAoB9pC,EAAM4I,OAAOzU,KAAK6D,YAAeoC,EAAW,kBAAkBA,KAAc,2CAClF0vC,EAAS,8CACXA,EAAS,2BAGzBA,EAAS,GAEpB,MAAO,+BAELC,EAAOhW,EAAKjhC,SAASuhC,IACvBvF,GAAI0O,OAAOlJ,SAAUlmC,IACZA,EASD2lC,EAAK+K,MAAMzK,EAAIwV,KAAc,GAP7B,IAAIpd,QAAQx+B,GAAKy7C,WAAWz7C,EAAG,MAAM8+B,KAAK,KACjC+B,GAAI0O,OAAOxvC,OACZ+lC,EAAK+K,MAAMzK,EAAIwV,KAAc,OAQ7C/a,GAAIqO,cAAclR,MAAM,KACpB8H,EAAK+K,MAAMzK,EAAIwV,KAAc,KAEjC7pC,EAAMgqC,YAAY,CACd,cACIjW,EAAK+K,MAAMzK,EAAIwV,KAAc,MAGrC/P,GAAS0M,YAAYrS,YAAYlI,MAAM,KACnC8H,EAAK+K,MAAMzK,EAAIwV,KAAc,IAC9B,gBAEDt8C,EAAIuhC,GAAI9uB,MAAMhS,MACd2N,IAAapO,aAA6B,EAASA,EAAE6M,WAAa7M,aAA6B,EAASA,EAAE6M,UAAY,IAAM,KAAO7M,aAA6B,EAASA,EAAEqb,QACjL,IAAIqhC,EACJ,MAAMC,EAAenW,EAAKjhC,SAASuhC,GAAM4V,EAAa5V,GAChD8V,EAAcC,IAChB,IAAI71C,EAAIC,EACR,MAAMa,GAAS+0C,QAAqCA,EAAQ,IAAIC,OAAOC,MAAM,KAI7E,OAH+G,QAA7F91C,EAAsC,QAAhCD,EAAKu6B,GAAIn8B,YAAY3E,aAA0B,IAAPuG,OAAgB,EAASA,EAAGvG,IAAI2N,UAA8B,IAAPnH,EAAgBA,EAAK,IACvI4E,IAAInL,GAAKA,EAAEwR,MAAM,KACjBoB,OAAOxB,GAAKhK,EAAM6K,MAAM7R,GAAKgR,EAAE0M,SAAS1d,KAC9B+K,IAAInL,GAAK,6BAA6B8lC,EAAKU,QAAQ,IAAM,QAAU,OAAQ,OAAQ,GAAQ,YACtG3F,GAAIwO,cAAc/8B,KAAI,GACtB,MAAMyU,Q1BoEX,SAAqBwY,EAAS7xB,EAAUpI,GAC3C,OAAO+4B,EAAUl9B,UAAM,OAAQ,GAAQ,YACnC,IACI,MAAMyM,QAAYwzB,MAAM,GAAGnC,KAAsBM,EAAQL,KAAKod,wCAAwC5uC,KAAYpI,UAClH,aAAasI,EAAIszB,OAErB,MAAO9vB,GACH0K,QAAQoD,KAAK,iCAAiCxR,YAAmBpI,KAAO8L,O0B3EnDmrC,CAAY,EAAO/c,SAASvB,KAAK53B,GAAKA,EAAEf,KAAOu7B,GAAItB,QAAQx/B,OAAQT,aAA6B,EAASA,EAAEyK,KAAM/J,GACtI+R,EAAM4J,MAAMoL,GACZ8Z,GAAIwO,cAAc/8B,KAAI,GACtBi5B,IAAoBjsC,aAA6B,EAASA,EAAEyK,MAAQ,IAAM/J,WACtEA,WAAWkS,KAAK,KAc5B,MAAO,wHAZe4zB,EAAKjhC,SAASuhC,IAChCvF,GAAIwO,cAAcrR,MAAM33B,IACpB,IAAIC,EAAIC,EACR,IAAKF,EACD,OACJ,MAAMyD,GAAYxK,aAA6B,EAASA,EAAEyK,OAASw2B,GAAaM,GAAItB,QAAQx/B,MAAO,QACnGqmC,EAAGwC,UAAU4T,OAAO,YAAa1yC,GAAsJ,KAA5C,QAA7FvD,EAAsC,QAAhCD,EAAKu6B,GAAIn8B,YAAY3E,aAA0B,IAAPuG,OAAgB,EAASA,EAAGvG,IAAI2N,UAA8B,IAAPnH,EAAgBA,EAAK,IAAIgE,QACxKT,GACAg8B,EAAK+K,MAAMmL,EAAYE,KAAc,IAE1C,wDAKyBpW,EAAKU,QAAQJ,IACzC,IAAI9/B,EAAIC,EACRoiC,EAAWvC,GACuF,QAAjG7/B,EAAiC,QAA3BD,EAAK8/B,EAAGqW,qBAAkC,IAAPn2C,OAAgB,EAASA,EAAGgsC,cAAc,gBAA6B,IAAP/rC,GAAyBA,EAAG+0C,2BAElI9Z,EAAQC,yKAIND,EAAQ2B,yBAAyB2C,EAAKqC,GAAG,QAAS/B,IACxDN,EAAK+K,MAAMmL,EAAYE,EAAW9V,EAAGjmC,QAAQ,yEAGP87C,8GAIVnW,EAAKU,QAAQmC,mBACrCnH,EAAQ/zB,iCACOq4B,EAAKjhC,SAASuhC,GAAMvF,GAAItB,QAAQvB,MAAM33B,GAAK+/B,EAAGE,YAAcjgC,EAAG,oCAC5Ew6B,GAAItB,QAAQx/B,wGAId,EAAOy/B,SACV5sB,OAAOvM,IAAO,IAAIC,EAAI,OAAOi6B,GAAal6B,EAAEf,GAA0C,QAArCgB,EAAKu6B,GAAI9uB,MAAMhS,MAAMygC,kBAA+B,IAAPl6B,EAAgBA,EAAK,UACnH0lC,UACA7gC,IAAI9E,GAAK,2CACsBy/B,EAAKU,QAAQ,KAC7C+E,EAAmBllC,EAAEf,IACrBu7B,GAAItB,QAAQjtB,IAAIjM,EAAEf,0BAEVe,EAAEf,sCAEL4M,KAAK,wGAIkB4zB,EAAKU,QAAQmC,mBACrCnH,EAAQkB,0HAGkBoD,EAAKU,QAAQ,KAC3C+E,IACAx5B,EAAM4J,MAAM5J,EAAM4I,OAAOlV,+BAEnB+7B,EAAQ1mB,iGAEgBgrB,EAAKjhC,SAASuhC,IAC5CA,EAAG4B,iBAAiB,QAAS,KACzB,MAAM7nC,GAAS0gC,GAAIqO,cAAcnvC,MACjC8gC,GAAIqO,cAAc58B,IAAInS,GACtBorC,GAAuBprC,KAE3B0gC,GAAIqO,cAAc7I,SAASlmC,IACvB2lC,EAAK+K,MAAMzK,EAAI,GAAG5E,EAAQrhC,EAAQ,SAAW,2BAA2BA,EAAQ,WAAa,uBAAuB,uDAG1F2lC,EAAKU,QAAQ,KAAQ+E,IAAgBx5B,EAAMq+B,2BACnE5O,EAAQG,mGAEgBmE,EAAKU,QAAQ,KAAQ+E,IAAgBx5B,EAAMs+B,2BACnE7O,EAAQI,yIAKWka,uBC/JpBY,GAAkB,CAC3Bz1C,KAAI,IAAKqH,EAAGnO,IACDA,EAEX,QAAO,WAAEsc,GAAc1S,EAAM5J,GACzB,OAAOsc,EAAWjO,KAAKrN,KAAM4I,EAAM5J,IAEvC,MAAK,SAAE6O,GAAYjF,EAAM5J,GACrB,OAAK+S,MAAMS,QAAQxT,GAEZA,EAAMgL,IAAI,CAACyI,EAAKT,IAAUnE,EAASR,KAAKrN,KAAM4I,EAAKxE,KAAK4N,GAAQS,IAD5DzT,GAGf,KAAI,SAAE6O,GAAYjF,EAAM5J,GACpB,QAAcmB,IAAVnB,EACA,OACJ,IAAIyN,EAAM,GAEV,OADAhO,OAAOgK,KAAKzJ,GAAO0J,QAAQgE,GAAKD,EAAIC,GAAKmB,EAASR,KAAKrN,KAAM4I,EAAKxE,KAAKsI,GAAI1N,EAAM0N,KAC1ED,GAEX,QAAO,gBAAE0P,GAAmBvT,EAAM5J,GAC9B,GAAIA,SAA0D,iBAAVA,EAChD,OAAOA,EAEX,IAAIyN,EAAM,GACV,MAAMoQ,EAAeV,EAAgBvT,GAMrC,OALAnK,OAAOgK,KAAKoU,GACPpL,OAAOxR,GAAK4c,EAAa5c,GAAG0I,QAAQC,IACpCF,QAAQgE,IACTD,EAAIC,GAAKmQ,EAAanQ,GAAGW,KAAKrN,KAAM4I,EAAKxE,KAAKsI,GAAI1N,EAAM0N,MAErDD,ICxBF+uC,GAAc,CAAC7W,EAAM/zB,KAC9B,MAAM6qC,EAAiBxW,IACnB,MAAMxrB,EAAO7I,EAAM4I,OAAOnM,KAAKkuC,GAAiB,IAAI,YAAU3qC,GAAQA,EAAM6I,MAC5EimB,GAAImO,WAAW18B,IAAIyI,KAAKC,UAAUJ,EAAM,KAAM,IAC9CwrB,EAAGjmC,MAAQ0gC,GAAImO,WAAWjvC,OAExB6K,EAASk7B,EAAKjhC,SAASuhC,IACzBwW,EAAcxW,GACdr0B,EAAMgqC,YAAY,CACd,cACIlb,GAAIsO,UAAU78B,IAAI,MAClBsqC,EAAcxW,MAGtBA,EAAG4B,iBAAiB,SAAU,KAC1B,MAAM6U,EAAYzW,EAAGjmC,MACrB,IACI4R,EAAM4J,MAAMZ,KAAKiB,MAAM6gC,IACvBhc,GAAIsO,UAAU78B,IAAI,MAEtB,MAAOwqC,GACHjc,GAAIsO,UAAU78B,IAAIwqC,EAAIhC,cAgClC,MAAO,6IAGuBhV,EAAKU,QA/BfJ,IAChB,IAAI9/B,EAC4B,QAA/BA,EAAK8/B,EAAG4C,QAAQ,iBAA8B,IAAP1iC,GAAyBA,EAAG00C,qBAAqB,YAAY,GAAGM,SACxGxS,SAASyS,YAAY,QACrBhQ,oBA4BE/J,EAAQO,mIAIkB+D,EAAKU,QAAQmC,mBACrCnH,EAAQkB,0HAGkBoD,EAAKU,QAlCfJ,IACpB,MAAM2W,EAAeC,mBAAmBnc,GAAImO,WAAWjvC,MAAQ,MACzDk9C,EAAiB7W,EAAG8W,iBAC1BD,EAAepN,aAAa,OAAQ,gCAAkCkN,GACtEE,EAAepN,aAAa,WAAY,aACxCoN,EAAeE,QACf5R,yBA6BM/J,EAAQU,gJAGgB4D,EAAKU,QA9BlBJ,IACjB,IAAI9/B,EACJ,MAAM82C,EAAsD,QAAxC92C,EAAK8/B,EAAG4C,QAAQ,0BAAuC,IAAP1iC,OAAgB,EAASA,EAAGgsC,cAAc,SACxG13B,EAAOyiC,KAAKtiC,KAAKC,UAAUD,KAAKiB,MAAM6kB,GAAImO,WAAWjvC,SACrDq/B,EAAMlC,OAAO3mB,SAASwiC,OAAS7b,OAAO3mB,SAAS+mC,SAAW,MAAQ1iC,EACxEwiC,EAAWj9C,MAAQi/B,EACnBge,EAAWnL,MAAM/xB,QAAU,eAC3B4oB,SAASC,KAAKf,iBAAiB,QAASC,IACpCmV,EAAWnL,MAAM/xB,QAAU,QAC5B,CAAEipB,SAAS,EAAMC,MAAM,IAC1BgU,EAAW9B,SACXxS,SAASyS,YAAY,QACrBhQ,yBAmBM/J,EAAQmB,0IAKkB/3B,sFC9E3B2yC,GAAe,CAACzX,EAAM/zB,IAgExB,6CA/DO+zB,EAAKjhC,SAASuhC,IACxB,MAAMoX,EAASpX,EAAGkM,cAAc,UAC1BzM,EAAS,KACX,MAAM8F,EAAU9K,GAAI8K,QAAQ5rC,MAC5B,GAAI4rC,GAAWA,EAAQ5hC,MAAQ4hC,EAAQ5hC,KAAKkS,UAAUlK,GAAOhS,MAAO,CAChE,MAAM09C,EAAMD,EAAOlD,WAAW,MACxBoD,EAAW/R,EAAQ5hC,KAAKkS,UAAUlK,GAAOhS,MAC/C4rC,EAAQz2B,MAAQ6F,KAAKiB,MAAMjB,KAAKC,UAAU0iC,IAC1C,MAAOphB,EAAO74B,GAAUkoC,EAAQgS,UAChCH,EAAOlhB,MAAQA,EACfkhB,EAAO/5C,OAASA,EAChB,MAAMgjC,EAAMgX,EAAIG,gBAAgBthB,EAAO74B,GACvCkoC,EAAQkS,KAAK9rC,EAAO00B,GACpBgX,EAAIK,aAAarX,EAAK,EAAG,QAGzB5F,GAAI8K,QAAQr5B,IAAI,OAwBxB,IAAIyrC,EATJhsC,EAAMgqC,YAAY,CACdvgC,YAAaqqB,IAEjBhF,GAAI8K,QAAQtF,SAAUlmC,IAfA,IACdmG,EAAIC,EAeJpG,IACAA,EAAM0lC,OAASA,EAfnBA,IACAC,EAAK+K,MAAMzK,EAAGkM,cAAc,mBAAoB,WAC2C,QAA9F/rC,EAAkC,QAA5BD,EAAKu6B,GAAI8K,QAAQ5rC,aAA0B,IAAPuG,OAAgB,EAASA,EAAG03C,KAAKlY,EAAMD,UAA4B,IAAPt/B,EAAgBA,EAAK,uCAClGu/B,EAAKU,QAAQ,KAC/B+E,KACA1K,GAAI8K,QAAQr5B,IAAI,sBAEtBkvB,EAAQnsB,mBACH,KAUJ,iBAEH+wB,EAAG4B,iBAAiB,YAAaC,IAC7B8V,EAAY,CAAC9V,EAAIpgC,QAASogC,EAAIngC,WAElCs+B,EAAG4B,iBAAiB,YAAaC,IAC7B,IAAI3hC,EAAIC,EACR,QAAkBjF,IAAdy8C,EAAJ,CAEA,GAAiC,QAA5Bz3C,EAAKu6B,GAAI8K,QAAQ5rC,aAA0B,IAAPuG,OAAgB,EAASA,EAAG23C,OAAQ,CACzE,MAAO3hB,EAAO74B,GAAUo9B,GAAI8K,QAAQ5rC,MAAM49C,UACpC5X,GAAMkC,EAAIpgC,QAAUk2C,EAAU,IAAMzhB,EAAQkhB,EAAOU,YACnDlY,GAAMiC,EAAIngC,QAAUi2C,EAAU,IAAMt6C,EAAS+5C,EAAOW,aAC7C,IAAPpY,GAAmB,IAAPC,IACe,QAA5Bz/B,EAAKs6B,GAAI8K,QAAQ5rC,aAA0B,IAAPwG,GAAyBA,EAAG03C,OAAOlY,EAAIC,GAC5EH,KAGRkY,EAAY,CAAC9V,EAAIpgC,QAASogC,EAAIngC,YAElCs+B,EAAG4B,iBAAiB,UAAWC,IAC3B8V,OAAYz8C,mGC7DX88C,ICHQ5vC,GDGgB,CACjC,SACA,KAAI,OAAEzI,GAAUgE,EAAM5J,GAClB,IAAImG,EAAIC,EAAIC,EACZ,GAAqF,qBAAnD,QAA5BF,EAAKP,EAAOV,kBAA+B,IAAPiB,OAAgB,EAASA,EAAGtB,WAAkC,CACpG,MAAMqC,EAAQ,uBAAa0C,EAAMhE,EAAOV,WAAWJ,OAAOK,IAAIvF,MACxD0S,EAAS1I,EAAK8T,WAAWpL,OACzB4rC,EAAiH,QAAhG73C,GAA+C,QAAxCD,EAAKs6B,GAAIC,mBAAmBz5B,UAA2B,IAAPd,EAAgBA,EAAK,IAAIe,kBAA+B,IAAPd,EAAgBA,EAAK,GAC9IyX,EAAere,OAAOgK,KAAKzJ,QAAqCA,EAAQ,IAC9EP,OAAOgK,KAAKy0C,GAAex0C,QAAQ7I,IAC1Bid,EAAaH,SAAS9c,GAKjBq9C,EAAcr9C,GAAG8c,SAAS3d,EAAMa,KACtCyR,EAAOpF,IAAItD,EAAKxE,KAAKvE,GAAI,4BAA6Bb,EAAMa,IALxC,eAAhB+I,EAAK8R,QACLpJ,EAAOpF,IAAItD,EAAM,qCAAsC/I,QCfhDpB,OAAOwnC,OAAOxnC,OAAOwnC,OAAO,GAAI54B,IAAO,CAAE,OAAOvJ,EAAQ8E,EAAM5J,KAAUsO,GAC/F,IAAInI,GACoB,QAAtBA,EAAKkI,GAAKkO,cAA2B,IAAPpW,EAAgBA,EAAKkI,GAAKvH,MAAMhC,EAAQ8E,EAAM5J,KAAUsO,GACxFxJ,EAAOwX,WAAWjO,KAAKrN,KAAM4I,EAAM5J,KAAUsO,IAEjD,KAAKxJ,EAAQ8E,EAAM5J,KAAUsO,GACzB,IAAInI,GACkB,QAApBA,EAAKkI,GAAKqF,YAAyB,IAAPvN,EAAgBA,EAAKkI,GAAKvH,MAAMhC,EAAQ8E,EAAM5J,KAAUsO,GACjFyE,MAAMS,QAAQxT,IAEnBA,EAAM0J,QAAQ,CAACuH,EAAGlS,IAAM+F,EAAO+J,SAASR,KAAKrN,KAAM4I,EAAKxE,KAAKrG,GAAIkS,KAAM3C,KAE3E,IAAIxJ,EAAQ8E,EAAM5J,KAAUsO,GACxB,IAAInI,GACiB,QAAnBA,EAAKkI,GAAKrD,WAAwB,IAAP7E,EAAgBA,EAAKkI,GAAKvH,MAAMhC,EAAQ8E,EAAM5J,KAAUsO,GAChE,iBAAVtO,GAEXP,OAAOgK,KAAKzJ,GAAO0J,QAAQgE,GAAK5I,EAAO+J,SAASR,KAAKrN,KAAM4I,EAAKxE,KAAKsI,GAAI1N,EAAM0N,MAAOY,KAE1F,OAAOxJ,EAAQ8E,EAAM5J,KAAUsO,GAC3B,IAAInI,EAEJ,IADwB,QAAtBA,EAAKkI,GAAK5N,cAA2B,IAAP0F,EAAgBA,EAAKkI,GAAKvH,MAAMhC,EAAQ8E,EAAM5J,KAAUsO,GAC1E,OAAVtO,GAAmC,iBAAVA,EACzB,OACJ,MAAM6d,EAAe/Y,EAAOqY,gBAAgBvT,GAC5CnK,OAAOgK,KAAKoU,GACPpL,OAAO/E,GAAKmQ,EAAanQ,GAAG/D,QAAQC,IACpCF,QAAQgE,IACTmQ,EAAanQ,GAAGW,KAAKrN,KAAM4I,EAAKxE,KAAKsI,GAAI1N,EAAM0N,MAAOY,SA5B9C,IAACD,GCSd,MAAM8vC,GAAaxY,IACtB,MAAM/zB,EAAQ+8B,GAAOjO,GAAI9uB,MAAMhS,MAAMuF,IACrCyM,EAAM8I,UAAY,GAClB,MAAM0jC,EAAiB,IACZ1d,GAAI8K,QAAQ5rC,MACfq4C,GAAWtS,EAAM,CAAEzP,UAAW,WAAY4d,MAAO,CAAC,GAAI,KAAO,CACzD0I,GAAY7W,EAAM/zB,GAClBwrC,GAAazX,EAAM/zB,KAErB4qC,GAAY7W,EAAM/zB,GAEtBysC,EAAkB,KACpB,IAAIl4C,EACJ,MAAMqlC,EAAU9K,GAAI8K,QAAQ5rC,MACtBgK,EAAiF,QAAzEzD,EAAKqlC,aAAyC,EAASA,EAAQ5hC,YAAyB,IAAPzD,OAAgB,EAASA,EAAG2V,UAAUlK,GAC/HhI,GAAQA,EAAKhK,QAAU4rC,aAAyC,EAASA,EAAQsF,OAAOlnC,KAC1F82B,GAAI8K,QAAQr5B,IAAI,OAGxBP,EAAMgqC,YAAY,CACdvgC,YAAa,KACTgjC,IACAzsC,EAAM4I,OAAOnM,KAAK4vC,GAAkB,IAAI,YAAUrsC,EAAO,IAAI,QAASA,EAAM6I,KAAM7I,EAAMU,WAGhGouB,GAAIwO,cAAcrR,MAAO79B,IACjBA,IACA4R,EAAM1D,WACN0D,EAAM0J,aACN+iC,MAEL,aACH3d,GAAIyO,cAActR,MAAO79B,IACjBA,GAAS0gC,GAAIwO,cAActvC,OAC3BgS,EAAM0J,cAEX,aACHolB,GAAItB,QAAQ8G,SAAUlmC,IAClB,MAAMqgC,EAAaK,GAAI9uB,MAAMhS,MAAMygC,WAC/BA,IAAeD,GAAapgC,EAAOqgC,IACnCK,GAAItB,QAAQjtB,IAAIkuB,IAErB,aACH,MAAMie,EAAc3Y,EAAKjhC,SAASuhC,IAC9BvF,GAAI8K,QAAQ3N,MAAM,CAAC79B,EAAO29B,KACjB39B,GAAU29B,GACXgI,EAAK+K,MAAMzK,EAAImY,KAAkB,IAEtC,eAED9N,EAA+C,iBAA7B5P,GAAI9uB,MAAMhS,MAAMoM,SAAwB,IAAI00B,GAAI9uB,MAAMhS,MAAMoM,iBAAc7K,EAClG,MAAO,GAAGkvC,GAAO1K,EAASjF,GAAI9uB,MAAMhS,MAAMN,KAAnB,aAAqCgxC,wCAExD2H,GAAWtS,EAAM,CAAEzP,UAAW,aAAc4d,MAAO,CAAC,GAAI,KAAO,CAC/D0H,GAAU7V,EAAM/zB,GAChB,wCAAwC0sC,MAAgBF,kCC1D1C,EAACzY,EAAM/zB,KACzB,MAAM6pC,EAAa,IACX/a,GAAIsO,UAAUpvC,MACP,oEAEPo9B,EAAW0D,GAAIsO,UAAUpvC,sGAI3ByhC,EAAQiB,6BAGmB,IAAzB1wB,EAAMU,OAAO3F,QACN,GACJ,GAAG+zB,GAAIoO,cAAclvC,MAAQ,6CAElCgS,EAAMU,OAAOisC,SAASvzC,IAAIiG,GAAK,yEAEFA,EAAErH,KAAKyJ,0FAEJ2pB,EAAWqK,EAAOp2B,EAAEsB,MAAOtB,EAAEnM,+CAE5DiN,KAAK,4BAEN,aACFo+B,GAAOxK,EAAM,CAAC,EAAC,EAAM,gBAAiB,EAAC,EAAO,iBAAkBjF,GAAIoO,iBAexE,MAAO,sCAbQnJ,EAAKjhC,SAASuhC,IACzBr0B,EAAMgqC,YAAY,CACd,SACIjW,EAAK+K,MAAMzK,EAAIwV,KAAc,MAGrC/a,GAAIsO,UAAUnR,MAAM,KAChB8H,EAAK+K,MAAMzK,EAAIwV,KAAc,KAEjC/a,GAAIoO,cAAcjR,MAAM,KACpB8H,EAAK+K,MAAMzK,EAAIwV,KAAc,IAC9B,wBAIHA,mBDmBFppC,CAAOszB,EAAM/zB,MEnEnB,IAAI,GAAwC,SAAUK,EAASksB,EAAYC,EAAG1X,GAE1E,OAAO,IAAK0X,IAAMA,EAAIC,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUx+B,GAAS,IAAM0Y,EAAKgO,EAAUsS,KAAKh5B,IAAW,MAAOiR,GAAKstB,EAAOttB,IACpF,SAASwtB,EAASz+B,GAAS,IAAM0Y,EAAKgO,EAAiB,MAAE1mB,IAAW,MAAOiR,GAAKstB,EAAOttB,IACvF,SAASyH,EAAKiB,GAJlB,IAAe3Z,EAIa2Z,EAAO+kB,KAAOJ,EAAQ3kB,EAAO3Z,QAJ1CA,EAIyD2Z,EAAO3Z,MAJhDA,aAAiBo+B,EAAIp+B,EAAQ,IAAIo+B,GAAE,SAAUE,GAAWA,EAAQt+B,OAIT2+B,KAAKH,EAAWC,GAClG/lB,GAAMgO,EAAYA,EAAU6V,MAAMtqB,EAASksB,GAAc,KAAKnF,YAYtE,MAAMwlB,GAAa,EAAO5P,OAAOn8B,OAAOtT,IAAoB,IAAfA,EAAE6M,UACzCyyC,GAAS,IAAM,QAAU,OAAQ,OAAQ,GAAQ,YACnD,IAAIt4C,EAAIC,EACR,MAAMs4C,EAAWtoC,SAAS+mC,SAASjB,MAAM,KAAKzpC,OAAOxB,GAAKA,GACpD0tC,EAAY,IAAIC,gBAAgBxoC,SAAS4sB,QACzCn/B,EAAS8kC,SAASkW,eAAe,OACvC,IAAI5+B,EAAQonB,EAAO,cACfyX,EAAYnZ,GAAS,GACrBoZ,EAAQ,OACZ,GAAwB,IAApBL,EAASt0C,OACTs2B,GAAI9uB,MAAMO,IAAI,CAAEhN,GAAI,GAAI7F,KAAM,YAAa0M,UAAU,EAAMq0B,WAAY,SACvEye,EAAW9N,QAEV,GAAoB,aAAhB0N,EAAS,IAAqC,WAAhBA,EAAS,GAC5CK,EAAQ,WACRD,EAAW3N,QAEV,GAAwB,IAApBuN,EAASt0C,QAAgBo0C,GAAWxzC,IAAI7L,GAAKA,EAAEgG,IAAIwY,SAAS+gC,EAAS,IAC1Ehe,GAAI9uB,MAAMO,IAAIqsC,GAAW1gB,KAAK3+B,GAAKA,EAAEgG,KAAOu5C,EAAS,KACrDI,EAAW9N,OAEV,CACD+N,EAAQ,OACR,MAAMntC,EAAwE,QAA/DzL,EAAK,EAAOyoC,OAAO9Q,KAAK3+B,GAAKA,EAAEgG,KAAOu5C,EAAS3sC,KAAK,aAA0B,IAAP5L,EAAgBA,EAAK,KAE3G,GADAu6B,GAAI9uB,MAAMO,IAAIP,GACVA,EAAO,CACP,GAAI+sC,EAAUK,IAAI,KACd,IACI,MAAMvkC,EAAOwkC,KAAmC,QAA7B74C,EAAKu4C,EAAU/+C,IAAI,YAAyB,IAAPwG,EAAgBA,EAAK,IAC7EuoC,GAAO/8B,EAAMzM,IAAIqW,MAAMZ,KAAKiB,MAAMpB,IAEtC,MAAOxJ,IAEX6tC,EAAWX,GACXl+B,EAAQonB,EAAO,kBAAmB,CAACA,EAAOz1B,EAAMzM,WAGhD25C,EAAW5N,GAGnB,MAAM7R,EAAW,EAAOA,SACnB5sB,OAAOvM,IAAO,IAAIC,EAAI,OAAOi6B,GAAal6B,EAAEf,GAA+B,QAA1BgB,EAAKu6B,GAAI9uB,MAAMhS,aAA0B,IAAPuG,OAAgB,EAASA,EAAGk6B,cAC/Gr1B,IAAI9E,GAAKA,EAAEf,IAAI4M,KAAK,MACzB42B,SAAS1oB,MAAQ,GAAGA,eAAmBof,IACvCqB,GAAI2O,YAAYl9B,IAAI4sC,GACpB,MAAMpZ,EAAO,IAAI,EACjBA,EAAK+K,MAAM7sC,EAAQi7C,EAASnZ,IAAO,MAEvC5I,OAAO8K,iBAAiB,WAAY4W,IACpC9V,SAASd,iBAAiB,mBAAoB,KAC1Cc,SAASC,KAAKf,iBAAiB,QAAS52B,IACpC,GAAIA,EAAEpN,kBAAkBq7C,SACjBjuC,EAAEpN,OAAOs7C,aAAa,cACtBluC,EAAEpN,OAAOs7C,aAAa,QAAS,CAClCluC,EAAE8lC,iBACF,MAAMlzC,EAASoN,EAAEpN,OAAOqkC,aAAa,QACrCkD,EAAiBvnC,GACjB8W,QAAQykC,UAAU,KAAM,GAAIv7C,GAC5B46C,QAGRA","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.IntProvider = exports.FloatProvider = 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 exports.FloatProvider = (config) => ObjectWithType('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 min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\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 schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\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 schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\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 const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\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: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': {\r\n height: Reference('height_provider')\r\n }\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 separator: core_1.Opt(Reference('text_component')),\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 separator: core_1.Opt(Reference('text_component')),\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 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\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 const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: 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 const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\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 y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\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': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\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.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\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.IntProvider({ min: 0, max: 8 }),\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 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.IntProvider({ min: 1, max: 128 }),\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.IntProvider(),\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.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\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.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\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.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\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.IntProvider({ min: 0, max: 128 }),\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 outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\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.IntProvider()\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.IntProvider({ min: 0, max: 60 }),\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.IntProvider()\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': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\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_provider'),\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.IntProvider({ min: 1, max: 64 }),\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.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\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.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\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.IntProvider({ min: 0, max: 24 })\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:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\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.IntProvider(),\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 size: Common_1.IntProvider({ min: 0 })\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, min: 0 }),\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, min: 0 }),\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 { 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';\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 (false /* 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 { 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});\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