From 578729a66f65909306c0f0b28b9b6b3fad311468 Mon Sep 17 00:00:00 2001 From: misode Date: Tue, 16 Mar 2021 22:21:55 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=208371e?= =?UTF-8?q?21a14135d7de9a8784084d2dde1197200f9=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 449b555f..8f5f6598 100644 --- a/js/bundle.js +++ b/js/bundle.js @@ -1,2 +1,2 @@ -!function(e){var t={};function i(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,o){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(o,r,function(t){return e[t]}.bind(null,r));return o},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=98)}([function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||t.hasOwnProperty(i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),r(i(27),t),r(i(11),t),r(i(12),t),r(i(5),t),r(i(28),t),r(i(29),t),r(i(14),t),r(i(30),t),r(i(31),t),r(i(32),t),r(i(33),t),r(i(34),t),r(i(15),t),r(i(35),t),r(i(36),t),r(i(37),t)},function(e){e.exports=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","refs":{"mcdata_master":"13355f7"}},{"id":"1.16","refs":{"mcdata_master":"1.16.4","vanilla_datapack_data":"1.16.4-data","vanilla_datapack_summary":"1.16.4-summary"}},{"id":"1.17","refs":{"mcdata_master":"master","vanilla_datapack_data":"data","vanilla_datapack_summary":"summary"},"dynamic":true}],"models":[{"id":"loot-table","name":"Loot Table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","name":"Predicate","path":"predicates","schema":"predicate"},{"id":"item-modifier","name":"Item Modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","name":"Advancement","path":"advancements","schema":"advancement"},{"id":"dimension","name":"Dimension","path":"dimension","schema":"dimension","minVersion":"1.16"},{"id":"dimension-type","name":"Dimension Type","path":"dimension_type","schema":"dimension_type","minVersion":"1.16"},{"id":"world","name":"World Settings","schema":"world_settings","minVersion":"1.16"},{"id":"worldgen","name":"Worldgen","category":true,"minVersion":"1.16"},{"id":"worldgen/biome","name":"Biome","path":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/carver","name":"Carver","path":"worldgen/configured_carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/feature","name":"Feature","path":"worldgen/configured_feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/noise-settings","name":"Noise Settings","path":"worldgen/noise_settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/structure-feature","name":"Structure Feature","path":"worldgen/configured_structure_feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/surface-builder","name":"Surface Builder","path":"worldgen/configured_surface_builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16"},{"id":"worldgen/processor-list","name":"Processor List","path":"worldgen/processor_list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template-pool","name":"Template Pool","path":"worldgen/template_pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"}],"registries":[{"id":"advancement","dynamic":true},{"id":"attribute","minVersion":"1.16"},{"id":"block"},{"id":"dimension","dynamic":true},{"id":"dimension_type","dynamic":true},{"id":"enchantment"},{"id":"entity_type"},{"id":"fluid"},{"id":"function","dynamic":true},{"id":"item"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_function_type","minVersion":"1.16"},{"id":"loot_nbt_provider_type","minVersion":"1.17"},{"id":"loot_number_provider_type","minVersion":"1.17"},{"id":"loot_pool_entry_type","minVersion":"1.16"},{"id":"loot_score_provider_type","minVersion":"1.17"},{"id":"loot_table","dynamic":true},{"id":"mob_effect"},{"id":"pos_rule_test","minVersion":"1.16"},{"id":"potion","minVersion":"1.15"},{"id":"predicate","dynamic":true},{"id":"recipe","dynamic":true},{"id":"rule_test","minVersion":"1.16"},{"id":"sound_event"},{"id":"stat_type"},{"id":"structure","dynamic":true},{"id":"tag/block","dynamic":true},{"id":"tag/entity_type","dynamic":true},{"id":"tag/fluid","dynamic":true},{"id":"tag/function","dynamic":true},{"id":"tag/item","dynamic":true},{"id":"worldgen/biome","dynamic":true},{"id":"worldgen/block_state_provider_type","minVersion":"1.16"},{"id":"worldgen/block_placer_type","minVersion":"1.16"},{"id":"worldgen/biome_source","minVersion":"1.16"},{"id":"worldgen/carver","minVersion":"1.16"},{"id":"worldgen/chunk_generator","minVersion":"1.16"},{"id":"worldgen/configured_carver","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_decorator","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_structure_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_surface_builder","minVersion":"1.16","dynamic":true},{"id":"worldgen/decorator","minVersion":"1.16"},{"id":"worldgen/feature","minVersion":"1.16"},{"id":"worldgen/feature_size_type","minVersion":"1.16"},{"id":"worldgen/foliage_placer_type","minVersion":"1.16"},{"id":"worldgen/noise_settings","minVersion":"1.16","dynamic":true},{"id":"worldgen/processor_list","minVersion":"1.16","dynamic":true},{"id":"worldgen/structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_pool_element","minVersion":"1.16"},{"id":"worldgen/structure_processor","minVersion":"1.16"},{"id":"worldgen/surface_builder","minVersion":"1.16"},{"id":"worldgen/template_pool","minVersion":"1.16","dynamic":true},{"id":"worldgen/tree_decorator_type","minVersion":"1.16"},{"id":"worldgen/trunk_placer_type","minVersion":"1.16"},{"id":"biome","maxVersion":"1.15"},{"id":"worldgen/biome","minVersion":"1.16","path":"processed/reports/biomes"}]}')},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.UniformInt=t.Range=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.ConditionCases=void 0;const o=i(0);t.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},t.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),t.Range=e=>o.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:o.NumberNode(e),change:e=>{var t,i,o;return void 0===e?0:null!==(o=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:o.ObjectNode({min:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e)),max:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:o.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:o.NumberNode({integer:!0,min:0}),p:o.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),t.UniformInt=e=>o.ChoiceNode([{type:"number",node:o.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:o.ObjectNode({base:o.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:o.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),t.ConditionCases={"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:o.MapNode(r({validator:"objective"}),t.Range({forceRange:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:o.Opt(o.NumberNode())},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}},t.DimensionTypePresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),e,{"minecraft:overworld":t.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),t.NoiseSettingsPresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),e,{"minecraft:overworld":t.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.FloatProvider=t.UniformFloat=t.UniformInt=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.FunctionCases=t.ConditionCases=void 0;const o=i(0);t.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},t.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>o.Opt(o.ChoiceNode([{type:"number",node:o.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:e})),max:o.Opt(o.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));e.register("int_bounds",a(!0)),e.register("float_bounds",a()),e.register("int_range",o.ChoiceNode([{type:"object",node:o.ObjectNode({min:o.Opt(n("number_provider")),max:o.Opt(n("number_provider"))})},{type:"number",node:o.NumberNode({integer:!0})}],{context:"range"}));const s=(e,t,i,n,a,s,c)=>{let d={};a&&Object.keys(c[a]).forEach(e=>{d[e]=o.Mod(c[a][e],{enabled:e=>void 0===e.push("type").get()})});const l=o.ObjectNode({type:o.Mod(o.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[o.Switch]:[{push:"type"}],[o.Case]:c,...d},{context:s,disableSwitchContext:!0}),m=[{type:t,node:c[n][i]}];return a&&m.push({type:"object",priority:-1,node:l}),Object.keys(c).forEach(e=>{m.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:l,change:t=>({type:e})})}),o.ChoiceNode(m,{context:s,choiceContext:s+".type"})};e.register("number_provider",s("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:o.NumberNode()},"minecraft:uniform":{min:n("number_provider"),max:n("number_provider")},"minecraft:binomial":{n:n("number_provider"),p:n("number_provider")},"minecraft:score":{target:n("scoreboard_name_provider"),score:r({validator:"objective"}),scale:o.Opt(o.NumberNode())}})),e.register("scoreboard_name_provider",s("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:o.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),e.register("nbt_provider",s("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:o.Mod(r({enum:"copy_source"}),{default:()=>"this"})}}));const c=e=>t=>o.ChoiceNode([{type:"number",node:o.NumberNode({integer:e,min:null==t?void 0:t.min,max:null==t?void 0:t.max}),change:e=>e.base},{type:"object",node:o.ObjectNode({base:o.NumberNode({integer:e,min:null==t?void 0:t.min,max:null==t?void 0:t.max}),spread:o.NumberNode({integer:e,min:0,max:null==t?void 0:t.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"});t.UniformInt=c(!0),t.UniformFloat=c(),t.FloatProvider=e=>s("worldgen/float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:o.NumberNode(e)},"minecraft:uniform":{value:o.ObjectNode({base:o.NumberNode(e),spread:o.NumberNode({min:0})})},"minecraft:clamped_normal":{value:o.ObjectNode({min:o.NumberNode(),max:o.NumberNode(),mean:o.NumberNode(),deviation:o.NumberNode()})},"minecraft:trapezoid":{value:o.ObjectNode({min:o.NumberNode(),max:o.NumberNode(),plateau:o.NumberNode()})}}),t.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:o.MapNode(r({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:o.Opt(o.NumberNode({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}}),t.FunctionCases=(e,t=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:t},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:o.ListNode(o.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:o.Opt(o.BooleanNode())},"minecraft:exploration_map":{destination:o.Opt(r({enum:"map_feature"})),decoration:o.Opt(r({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:o.ListNode(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:o.ListNode(o.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:o.Opt(o.BooleanNode())},"minecraft:set_contents":{entries:o.ListNode(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:o.Opt(o.BooleanNode())},"minecraft:set_damage":{damage:n("number_provider"),add:o.Opt(o.BooleanNode())},"minecraft:set_enchantments":{enchantments:o.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:o.Opt(o.BooleanNode())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(a),lore:o.ListNode(n("text_component")),replace:o.Opt(o.BooleanNode())},"minecraft:set_name":{entity:o.Opt(a),name:o.Opt(n("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},c={};return i.get("loot_function_type").forEach(t=>{c[t]={...s[t],...e}}),c},t.DimensionTypePresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),e,{"minecraft:overworld":t.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),t.NoiseSettingsPresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),e,{"minecraft:overworld":t.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Keep=t.Opt=t.Has=t.Mod=t.Base=void 0,t.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...i){return e.base({node:this},t,...i)},canUpdate:()=>!1,update:()=>[]},t.Mod=(e,t)=>({...e,..."function"==typeof t?t(e):t}),t.Has=(e,i)=>t.Mod(i,{enabled:t=>void 0!==t.push(e).get()}),t.Opt=function(e){return{...e,optional:()=>!0}},t.Keep=function(e){return{...e,keep:()=>!0}}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.Range=t.ConditionCases=void 0;const o=i(0);t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0})),{default:()=>[0,0,0]})),t.Range=e=>o.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:o.NumberNode(e),change:e=>{var t,i,o;return void 0===e?0:null!==(o=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:o.ObjectNode({min:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e)),max:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:o.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:o.NumberNode({integer:!0,min:0}),p:o.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),t.ConditionCases={"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:o.MapNode(r({validator:"objective"}),t.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:requirements":{terms:o.ListNode(n("condition"))},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:o.Opt(o.NumberNode())},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=t.Processors=void 0;const o=i(0);t.initProcessorListSchemas=function(e,i){const r=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,i);t.Processors=o.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",o.Mod(o.ObjectNode({processors:o.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",o.Mod(o.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[o.Switch]:[{push:"processor_type"}],[o.Case]:{"minecraft:block_age":{mossiness:o.NumberNode()},"minecraft:block_ignore":{blocks:o.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:o.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:o.NumberNode({integer:!0})},"minecraft:rule":{rules:o.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",o.Mod(o.ObjectNode({position_predicate:o.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const a={min_dist:o.NumberNode({min:0,max:255,integer:!0}),max_dist:o.NumberNode({min:0,max:255,integer:!0}),min_chance:o.NumberNode({min:0,max:1}),max_chance:o.NumberNode({min:0,max:1})};e.register("pos_rule_test",o.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:axis_aligned_linear_pos":{axis:n({enum:["x","y","z"]}),...a},"minecraft:linear_pos":a}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",o.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:o.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:o.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}},function(e,t,i){var o=i(90),r=i(91),n=i(92),a=i(93),s=i(94),c=i(95),d=i(96);d.alea=o,d.xor128=r,d.xorwow=n,d.xorshift7=a,d.xor4096=s,d.tychei=c,e.exports=d},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModelPath=t.Path=t.relativePath=void 0,t.relativePath=function(e,t){return t.reduce((e,t)=>"pop"===t?e.pop():e.push(t.push),e)};class o{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new o(this.modelArr.slice(e,t),this.contextArr)}shift(){return new o(this.modelArr.slice(1),this.contextArr)}pop(){return new o(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new o([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new o([...this.modelArr],[...this.contextArr,t])}copy(){return new o([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new r(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every((e,t)=>e===this.modelArr[t])}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t])}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every((e,i)=>e===this.modelArr[t+i])}toString(){return this.modelArr.map(e=>"string"==typeof e?"."+e:`[${e}]`).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}t.Path=o;class r extends o{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new r(this.model,super.slice(e,t))}shift(){return new r(this.model,super.shift())}pop(){return new r(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new r(this.model,super.modelPush(e))}contextPush(e){return new r(this.model,super.contextPush(e))}copy(){return new r(this.model,super.copy())}}t.ModelPath=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Errors=void 0;class o{constructor(){this.errors=[]}add(e,t,...i){return this.errors.push({path:e,error:t,params:i}),!1}get(e,t=!1){return t?this.errors.filter(t=>t.path.equals(e)):this.errors.filter(t=>t.path.startsWith(e))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}t.Errors=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=void 0;const o=i(0);t.initProcessorListSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("processor_list",o.Mod(o.ObjectNode({processors:o.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",o.Mod(o.ObjectNode({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[o.Switch]:[{push:"processor_type"}],[o.Case]:{"minecraft:block_age":{mossiness:o.NumberNode()},"minecraft:block_ignore":{blocks:o.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:o.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:o.NumberNode({integer:!0})},"minecraft:rule":{rules:o.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",o.Mod(o.ObjectNode({position_predicate:o.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const n={min_dist:o.NumberNode({min:0,max:255,integer:!0}),max_dist:o.NumberNode({min:0,max:255,integer:!0}),min_chance:o.NumberNode({min:0,max:1}),max_chance:o.NumberNode({min:0,max:1})};e.register("pos_rule_test",o.ObjectNode({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:axis_aligned_linear_pos":{axis:r({enum:["x","y","z"]}),...n},"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",o.ObjectNode({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:o.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:o.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListNode=void 0;const o=i(5);t.ListNode=(e,t)=>{var i,r;const n=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,a=null!==(r=null==t?void 0:t.maxLength)&&void 0!==r?r:1/0,s=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return{...o.Base,type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(n)].map(t=>e.default()):[],navigate(t,i){const o=i+1;return t.getArray().length<=o?this:e.navigate(t,o)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,o,r){return r.loose&&!Array.isArray(i)&&(i=this.default()),Array.isArray(i)?(s&&(i.lengtha)?n===a?o.add(t,"error.invalid_list_range.exact",i.length,n):o.add(t,"error.invalid_list_range.between",i.length,n,a):i.lengtha&&o.add(t,"error.invalid_list_range.larger",i.length,a),i.map((i,n)=>e.validate(t.push(n),i,o,r))):(o.add(t,"error.expected_list"),i)},hook(i,o,...r){var n;return(null!==(n=i.list)&&void 0!==n?n:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},o,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwitchNode=void 0;const o=i(5);t.SwitchNode=e=>({...o.Base,type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var i;const o=t+1;return null===(i=this.activeCase(e.slice(0,o)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,o;return null!==(o=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==o?o:e},suggest(t,i){var o,r;return null!==(r=null===(o=this.activeCase(t))||void 0===o?void 0:o.node.suggest(t,i))&&void 0!==r?r:e.filter(e=>e.match(t)).map(e=>e.node.suggest(t,i)).reduce((e,t)=>e.concat(t))},validate(e,t,i,o){let r=this.activeCase(e);return void 0===r?t:r.node.validate(e,t,i,o)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const o=(e,t)=>{var i,o;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(o=e.priority)&&void 0!==o?o:0)},r=e.filter(e=>e.match(t)).sort(o);return i&&0===r.length?e.sort(o)[0]:r.length>0?r[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}})},function(e,t,i){"use strict";function o(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(t,"__esModule",{value:!0}),t.quoteString=t.escapeString=void 0,t.escapeString=o,t.quoteString=function(e){return`"${o(e)}"`}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=t.LocationFields=void 0;const o=i(0),r=i(8);t.initPredicatesSchemas=function(e,i){const n=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,i),s=o.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(a({validator:"resource",params:{pool:"item"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:o.Opt(r.Range()),durability:o.Opt(r.Range()),potion:o.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:o.Opt(r.Range())},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(a({validator:"resource",params:{pool:"block"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(a(),s))},{context:"fluid"})),t.LocationFields={position:o.Opt(o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range())})),biome:o.Opt(a({enum:"biome"})),feature:o.Opt(a({enum:"structure_feature"})),dimension:o.Opt(a({enum:"dimension"})),light:o.Opt(o.ObjectNode({light:o.Opt(r.Range({integer:!0,min:0,max:15}))})),block:o.Opt(n("block_predicate")),fluid:o.Opt(n("fluid_predicate"))},e.register("location_predicate",o.ObjectNode(t.LocationFields,{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:r.Range(),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(a({enum:"gamemode"})),level:o.Opt(r.Range()),advancements:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(a(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(n("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:o.Opt(r.Range()),duration:o.Opt(r.Range()),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range()),absolute:o.Opt(r.Range()),horizontal:o.Opt(r.Range())},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(a({validator:"team"})),location:o.Opt(n("location_predicate")),distance:o.Opt(n("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(a({enum:"slot"}),n("item_predicate"))),player:o.Opt(n("player_predicate")),effects:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(n("entity_predicate")),direct_entity:o.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:o.Opt(r.Range()),taken:o.Opt(r.Range()),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(n("entity_predicate")),type:o.Opt(n("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDecoratorSchemas=void 0;const o=i(0),r=i(3);t.initDecoratorSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a={maximum:o.NumberNode({integer:!0}),bottom_offset:o.NumberNode({integer:!0}),top_offset:o.NumberNode({integer:!0})},s={chance:o.NumberNode({integer:!0,min:0})},c={count:r.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:o.NumberNode({min:0,max:1})},"minecraft:chance":s,"minecraft:count":c,"minecraft:count_extra":{count:o.NumberNode({integer:!0,min:0}),extra_count:o.NumberNode({integer:!0,min:0}),extra_chance:o.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:o.NumberNode(),below_noise:o.NumberNode({integer:!0}),above_noise:o.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:o.NumberNode({integer:!0}),noise_factor:o.NumberNode(),noise_offset:o.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:o.NumberNode({integer:!0}),spread:o.NumberNode({integer:!0})},"minecraft:fire":c,"minecraft:glowstone":c,"minecraft:lava_lake":s,"minecraft:range":a,"minecraft:range_biased":a,"minecraft:range_very_biased":a,"minecraft:water_lake":s}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDecoratorSchemas=void 0;const o=i(0),r=i(4);t.initDecoratorSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("vertical_anchor",o.ChoiceNode(["absolute","above_bottom","below_top"].map(e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,o,r;return{[e]:null!==(r=null!==(o=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==r?r:0}},node:o.ObjectNode({[e]:o.NumberNode({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"}));const a={bottom_inclusive:i("vertical_anchor"),top_inclusive:i("vertical_anchor")},s={...a,cutoff:o.NumberNode({integer:!0})},c={count:r.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:o.NumberNode({integer:!0})},"minecraft:chance":{chance:o.NumberNode({integer:!0,min:0})},"minecraft:count":c,"minecraft:count_extra":{count:o.NumberNode({integer:!0,min:0}),extra_count:o.NumberNode({integer:!0,min:0}),extra_chance:o.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:o.NumberNode(),below_noise:o.NumberNode({integer:!0}),above_noise:o.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:o.NumberNode({integer:!0}),noise_factor:o.NumberNode(),noise_offset:o.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:i("vertical_anchor"),spread:o.NumberNode({integer:!0})},"minecraft:glowstone":c,"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_with_water_threshold":{max_water_depth:o.NumberNode({integer:!0})},"minecraft:range":a,"minecraft:range_biased_to_bottom":s,"minecraft:range_very_biased_to_bottom":s}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=t.lootContext=void 0;const a=i(0),s=i(38),c=i(39);t.lootContext=n(i(18)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=void 0;const a=i(0),s=i(47),c=i(48);t.lootContext=n(i(19)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=void 0;const a=i(0),s=i(68),c=i(69);t.lootContext=n(i(21)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e){e.exports=JSON.parse('{"advancement":"Advancement","button.add":"Add","button.collapse":"Collapse","button.expand":"Expand","button.remove":"Remove","copy":"Copy","dimension-type":"Dimension Type","dimension":"Dimension","download":"Download","error.block_state.missing_property":"Missing block property \\"%0%\\"","fields":"Fields","github":"GitHub","home":"Home","item-modifier":"Item Modifier","language":"Language","loot-table":"Loot Table","maximize":"Maximize","minimize":"Minimize","not_found.description":"The page you were looking for does not exist.","predicate":"Predicate","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","title.generator":"%0% Generator","title.home":"Data Pack Generators","presets":"Presets","preview":"Visualize","preview.show_density":"Show Density","preview.scale":"Scale","preview.depth":"Depth","preview.width":"Width","undo":"Undo","world":"World Settings","worldgen/biome":"Biome","worldgen/carver":"Carver","worldgen/feature":"Feature","worldgen/noise-settings":"Noise Settings","worldgen/processor-list":"Processor List","worldgen/structure-feature":"Structure Feature","worldgen/surface-builder":"Surface Builder","worldgen/template-pool":"Template Pool"}')},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataModel=void 0;const o=i(11),r=i(12);t.DataModel=class{constructor(e,t){var i;this.schema=e,this.data=e.default(),this.listeners=[],this.errors=new r.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0,this.historyMax=null!==(i=null==t?void 0:t.historyMax)&&void 0!==i?i:50}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach(e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)})}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach(e=>{if(void 0===t)return t;t=t[e]}),t}set(e,t,i){if(0===e.getArray().length)return void this.reset(t,!0);let o=this.data;e.pop().forEach(e=>{void 0!==o[e]&&"string"!=typeof o[e]&&"number"!=typeof o[e]||(o[e]={}),o=o[e]}),void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?o.splice(e.last(),1):delete o[e.last()]:o[e.last()]=t,i||(console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate())}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(o)})}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanNode=void 0;const o=i(5);t.BooleanNode=()=>({...o.Base,type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,o){return o.loose&&"boolean"!=typeof t&&(t=this.default()),"boolean"==typeof t&&void 0!==t||i.add(e,"error.expected_boolean"),t},hook(e,t,...i){var o;return(null!==(o=e.boolean)&&void 0!==o?o:e.base).call(e,{node:this},t,...i)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectOrPreset=t.StringOrList=t.ObjectOrList=t.ChoiceNode=void 0;const o=i(14),r=i(15);t.ChoiceNode=(e,t)=>{const i=r.SwitchNode(e.map(e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node})));return{...i,validate(e,t,o,r){let n=i.activeCase(e,!0);return n.node.optional()?t:n.node.validate(e,t,o,r)},hook(o,r,...n){var a;return(null!==(a=o.choice)&&void 0!==a?a:o.base).call(o,{node:this,choices:e,config:null!=t?t:{},switchNode:i},r,...n)}}};const n=e=>(i,r)=>t.ChoiceNode([{type:e,node:i,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:i.default()}},{type:"list",node:o.ListNode(i),change:e=>e?[e]:[]}],r);t.ObjectOrList=n("object"),t.StringOrList=n("string"),t.ObjectOrPreset=(e,i,o)=>t.ChoiceNode([{type:"string",priority:1,node:e,change:e=>Object.keys(o)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=o[e])&&void 0!==t?t:o[Object.keys(o)[0]]}}])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MapNode=void 0;const o=i(5);t.MapNode=(e,t,i)=>({...o.Base,type:()=>"map",default:()=>({}),navigate(e,i){const o=i+1;return e.getArray().length<=o?this:t.navigate(e,o)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,o,r,n){if(n.loose&&"object"!=typeof o&&(o=this.default()),null===o||"object"!=typeof o)return r.add(i,"error.expected_object"),o;let a={};return Object.keys(o).forEach(s=>{e.validate(i,s,r,n),a[s]=t.validate(i.push(s),o[s],r,n)}),a},validationOption(t){var o;return null!==(o=null==i?void 0:i.validation)&&void 0!==o?o:e.validationOption(t.push(""))},hook(o,r,...n){var a;return(null!==(a=o.map)&&void 0!==a?a:o.base).call(o,{node:this,keys:e,children:t,config:null!=i?i:{}},r,...n)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNode=void 0;const o=i(5);t.NumberNode=e=>{var t,i,r;const n=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,a=(null==e?void 0:e.color)?0:null!==(i=null==e?void 0:e.min)&&void 0!==i?i:-1/0,s=(null==e?void 0:e.color)?16777215:null!==(r=null==e?void 0:e.max)&&void 0!==r?r:1/0,c=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return{...o.Base,type:()=>"number",default:()=>a>0?a:0,validate(e,t,i,o){return o.loose&&"number"!=typeof t&&(t=this.default()),"number"!=typeof t?i.add(e,"error.expected_number"):n&&!Number.isInteger(t)?i.add(e,"error.expected_integer"):c&&(ts)?i.add(e,"error.invalid_number_range.between",t,a,s):ts&&i.add(e,"error.invalid_number_range.larger",t,s),t},hook(t,i,...o){var r;return(null!==(r=t.number)&&void 0!==r?r:t.base).call(t,{node:this,integer:n,min:a,max:s,between:c,config:null!=e?e:{}},i,...o)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectNode=t.Case=t.Switch=void 0;const o=i(5),r=i(11),n=i(12),a=i(16);t.Switch=Symbol("switch"),t.Case=Symbol("case"),t.ObjectNode=(e,i)=>{const{[t.Switch]:s,[t.Case]:c,...d}=e,l=e=>{if(void 0===s)return d;const t=r.relativePath(e,s).get(),i=c[t];return{...d,...i}},m=(e,t)=>{var o;const n=s?r.relativePath(e,s).get():void 0,a=s&&null!==(o=c[n])&&void 0!==o?o:{},d=Object.keys(a),l=(null==i?void 0:i.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[i.context])):e;return(!(null==i?void 0:i.disableSwitchContext)&&n&&d.includes(t)?l.contextPush(n):l).push(t)};return{...o.Base,type:()=>"object",category:()=>null==i?void 0:i.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,o=e.getArray();if(o.length<=i)return this;const r=l(e.slice(0,i))[o[i]];return null==r?void 0:r.navigate(e,i)},pathPush:(e,t)=>m(e,t.toString()),suggest(e,t){const i=l(e),o=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter(t=>i[t].enabled(e)).filter(e=>!o.includes(e)).map(a.quoteString)},validate(e,t,i,o){if(o.loose&&"object"!=typeof t&&(t=this.default()),"object"!=typeof t)return i.add(e,"error.expected_object"),t;let a=d;if(s){const i=r.relativePath(e,s);let l=i.get();if(e.equals(i.pop())){const r=i.last();l=d[r].validate(e.push(r),t[r],new n.Errors,o)}a={...a,...c[l]}}const l=Object.keys(a),m=l.filter(e=>!a[e].optional()),p=new Set([...m,...Object.keys(t)]);let u={};return p.forEach(r=>{if(l.includes(r)){if(!a[r].enabled(e))return;const n=a[r].validate(e.push(r),t[r],i,o);!a[r].keep()&&a[r].optional()&&(void 0===n||Array.isArray(n)&&0===n.length||n.constructor===Object&&0===Object.keys(n).length)?u[r]=void 0:(u[r]=n,e.getModel().set(e.push(r),n,!0))}else u[r]=t[r]}),u},hook(e,t,...i){var o;return(null!==(o=e.object)&&void 0!==o?o:e.base).call(e,{node:this,fields:d,filter:s,cases:c,getActiveFields:l,getChildModelPath:m},t,...i)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Reference=void 0,t.Reference=(e,t)=>({type(i){return e.get(t).type.bind(this)(i)},category(i){return e.get(t).category.bind(this)(i)},default(){return e.get(t).default.bind(this)()},transform:(i,o)=>e.get(t).transform(i,o),enabled(i){return e.get(t).enabled.bind(this)(i)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(i,o){return e.get(t).navigate.bind(this)(i,o)},pathPush(i,o){return e.get(t).pathPush.bind(this)(i,o)},suggest(i,o){return e.get(t).suggest.bind(this)(i,o)},validate(i,o,r,n){return e.get(t).validate.bind(this)(i,o,r,n)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,o,...r){return e.get(t).hook.bind(this)(i,o,...r)},activeCase(i,o){return e.get(t).activeCase.bind(this)(i,o)},canUpdate(i,o){return e.get(t).canUpdate.bind(this)(i,o)},update(i,o){return e.get(t).update.bind(this)(i,o)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringNode=void 0;const o=i(5),r=i(16),n=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},a=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};t.StringNode=(e,t)=>{const i=n(t)?"string"==typeof t.enum?()=>{var i;return null!==(i=null==e?void 0:e.get(t.enum))&&void 0!==i?i:[]}:()=>t.enum:"resource"===(null==t?void 0:t.validator)?"string"==typeof t.params.pool?t.params.pool.startsWith("$")?()=>{var i;return null!==(i=null==e?void 0:e.get(t.params.pool.slice(1)))&&void 0!==i?i:[]}:()=>{var i;return null!==(i=null==e?void 0:e.get(t.params.pool))&&void 0!==i?i:[]}:()=>t.params.pool:()=>[];return{...o.Base,type:()=>"string",default:()=>"",validate(e,o,r,s){if(s.loose&&"string"!=typeof o&&(o=this.default()||void 0),"string"!=typeof o)return r.add(e,"error.expected_string"),o;if(a(t)&&("resource"===t.validator&&o.length>0&&!o.includes(":")&&(o="#"===o[0]?"#minecraft:"+o.slice(1):"minecraft:"+o),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===o[0]||t.params.isDefinition||t.params.allowUnknown)))return o;if(n(t)&&t.additional)return o;const c=i();return c.length>0&&!c.includes(o)&&r.add(e,"error.invalid_enum_option",o),o},suggest:()=>i().map(r.quoteString),validationOption:()=>a(t)?t:void 0,hook(e,o,...r){var n;return(null!==(n=e.string)&&void 0!==n?n:e.base).call(e,{node:this,getValues:i,config:t},o,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollectionRegistry=t.SchemaRegistry=void 0;t.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};t.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(40),r=i(8),n=i(41),a=i(42),s=i(43),c=i(17),d=i(44),l=i(45),m=i(46);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),c.initPredicatesSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),a.initLootTableSchemas(e,t),s.initPackMcmetaSchemas(e,t),d.initRecipeSchemas(e,t),l.initTagsSchemas(e,t),m.initTextComponentSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0),r=i(8),n=i(17);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t);e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:a({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(a()),frame:o.Opt(a({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(a({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(a(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(a()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(a({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:a({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:o.Opt(i("entity_predicate")),partner:o.Opt(i("entity_predicate")),child:o.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:o.Opt(a({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(a({enum:"dimension"})),to:o.Opt(a({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(o.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:o.Opt(r.Range())},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:o.Opt(i("entity_predicate")),zombie:o.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o.ObjectNode({amplifier:r.Range(),duration:r.Range()})))},"minecraft:enter_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:o.Opt(i("entity_predicate")),killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":n.LocationFields,"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:o.Opt(r.Range()),occupied:o.Opt(r.Range()),full:o.Opt(r.Range())})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:o.Opt(r.Range()),durability:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:o.Opt(r.Range()),victims:o.Opt(o.ListNode(o.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:o.Opt(r.Range()),duration:o.Opt(r.Range())},"minecraft:location":n.LocationFields,"minecraft:nether_travel":{distance:o.Opt(r.Range()),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:o.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:o.Opt(i("entity_predicate")),killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:a({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:o.Opt(o.ObjectNode({block:o.Opt(a({validator:"resource",params:{pool:"block"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/block"}}))})),item:o.Opt(i("item_predicate"))},"minecraft:slept_in_bed":n.LocationFields,"minecraft:slide_down_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:o.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:o.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:o.Opt(r.Range())},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":n.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(8);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(18),n=i(8);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:o.Opt(n.Range({integer:!0})),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:{"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()}),...s},"minecraft:copy_name":{source:u,...s},"minecraft:copy_nbt":{source:u,ops:o.ListNode(o.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"})),...s},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}})),...s},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"enchantment"}}))),...s},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:o.Opt(o.BooleanNode()),...s},"minecraft:exploration_map":{destination:o.Opt(a({enum:"structure_feature"})),decoration:o.Opt(a({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode()),...s},"minecraft:fill_player_head":{entity:p,...s},"minecraft:limit_count":{limit:n.Range({bounds:!0}),...s},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:o.Opt(o.NumberNode({integer:!0})),...s},"minecraft:set_attributes":{modifiers:o.ListNode(i("attribute_modifier")),...s},"minecraft:set_contents":{entries:o.ListNode(i("loot_entry")),...s},"minecraft:set_count":{count:n.Range({allowBinomial:!0}),...s},"minecraft:set_damage":{damage:n.Range({forceRange:!0}),...s},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(p),lore:o.ListNode(i("text_component")),replace:o.Opt(o.BooleanNode()),...s},"minecraft:set_name":{entity:o.Opt(p),name:o.Opt(i("text_component")),...s},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}}),...s},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()}))),...s}}},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:o.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(49),r=i(3),n=i(50),a=i(51),s=i(52),c=i(53),d=i(54),l=i(55),m=i(56),p=i(57),u=i(58),_=i(59),f=i(67);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initLootTableSchemas(e,t),d.initPackMcmetaSchemas(e,t),l.initPredicatesSchemas(e,t),m.initRecipeSchemas(e,t),p.initTagsSchemas(e,t),u.initTextComponentSchemas(e,t),_.initWorldgenSchemas(e,t),f.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0),r=i(3);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=o.ChoiceNode([{type:"object",node:o.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:o.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(n()),frame:o.Opt(n({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(n(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(n()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({player:o.Mod(a,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:a,partner:a,child:a},"minecraft:brewed_potion":{potion:o.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:o.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(a))},"minecraft:construct_beacon":{level:o.Opt(r.Range())},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:a,zombie:a},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:a,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:a,item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:o.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:o.Opt(r.Range()),occupied:o.Opt(r.Range()),full:o.Opt(r.Range())})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:o.Opt(r.Range()),durability:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:o.Opt(r.Range()),victims:o.Opt(o.ListNode(a))},"minecraft:levitation":{distance:o.Opt(r.Range()),duration:o.Opt(r.Range())},"minecraft:location":{location:o.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:o.Opt(r.Range()),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:a},"minecraft:player_interacted_with_entity":{item:o.Opt(i("item_predicate")),entity:a},"minecraft:player_killed_entity":{entity:a,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:o.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:a},"minecraft:tame_animal":{entity:a},"minecraft:target_hit":{projectile:a,shooter:a,signal_strength:o.Opt(r.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:o.Opt(r.Range())},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(3);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionSchemas=void 0;const o=i(0),r=i(3);t.initDimensionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=e=>o.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",o.Mod(o.ObjectNode({type:r.DimensionTypePresets(i("dimension_type")),generator:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:o.Opt(n({enum:["nether"]})),altitude_noise:a(i("generator_biome_noise")),temperature_noise:a(i("generator_biome_noise")),humidity_noise:a(i("generator_biome_noise")),weirdness_noise:a(i("generator_biome_noise")),biomes:a(o.Mod(o.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:o.Opt(o.NumberNode({integer:!0,min:0,max:62})),biomes:o.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:r.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:o.ObjectNode({biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:o.Opt(o.BooleanNode()),features:o.Opt(o.BooleanNode()),layers:o.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",o.Mod(o.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:o.ObjectNode({altitude:o.NumberNode({min:-1,max:1}),temperature:o.NumberNode({min:-1,max:1}),humidity:o.NumberNode({min:-1,max:1}),weirdness:o.NumberNode({min:-1,max:1}),offset:o.NumberNode({min:-1,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",o.Mod(o.ObjectNode({firstOctave:o.NumberNode({integer:!0}),amplitudes:o.ListNode(o.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionTypeSchemas=void 0;const o=i(0),r=i(3);t.initDimensionTypeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("dimension_type",o.Mod(o.ObjectNode({name:o.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:o.BooleanNode(),natural:o.BooleanNode(),piglin_safe:o.BooleanNode(),respawn_anchor_works:o.BooleanNode(),bed_works:o.BooleanNode(),has_raids:o.BooleanNode(),has_skylight:o.BooleanNode(),has_ceiling:o.BooleanNode(),coordinate_scale:o.NumberNode({min:1e-5,max:3e7}),ambient_light:o.NumberNode(),fixed_time:o.Opt(o.NumberNode({integer:!0})),logical_height:o.NumberNode({integer:!0,min:0,max:256}),effects:o.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>r.DefaultDimensionType}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(19),n=i(3);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:o.Opt(n.Range({integer:!0})),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:u},"minecraft:copy_nbt":{source:u,ops:o.ListNode(o.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:o.Opt(o.BooleanNode())},"minecraft:exploration_map":{destination:o.Opt(a({enum:"map_feature"})),decoration:o.Opt(a({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode())},"minecraft:fill_player_head":{entity:p},"minecraft:limit_count":{limit:n.Range({bounds:!0})},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:o.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:o.ListNode(i("loot_entry"))},"minecraft:set_count":{count:n.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:n.Range({forceRange:!0})},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(p),lore:o.ListNode(i("text_component")),replace:o.Opt(o.BooleanNode())},"minecraft:set_name":{entity:o.Opt(p),name:o.Opt(i("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()})))}},r={};return t.get("loot_function_type").forEach(t=>{r[t]={...e[t],...s}}),r})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:o.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=void 0;const o=i(0),r=i(3);t.initPredicatesSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=o.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(n({validator:"resource",params:{pool:"item"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:o.Opt(r.Range()),durability:o.Opt(r.Range()),potion:o.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:o.Opt(r.Range())},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(n({validator:"resource",params:{pool:"block"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(n(),a,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(n(),a))},{context:"fluid"})),e.register("location_predicate",o.ObjectNode({position:o.Opt(o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range())})),biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:o.Opt(n({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:o.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:o.Opt(o.ObjectNode({light:o.Opt(r.Range({integer:!0,min:0,max:15}))})),smokey:o.Opt(o.BooleanNode()),block:o.Opt(i("block_predicate")),fluid:o.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r.Range(),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(n({enum:"gamemode"})),level:o.Opt(r.Range()),advancements:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(n(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:o.Opt(r.Range()),duration:o.Opt(r.Range()),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range()),absolute:o.Opt(r.Range()),horizontal:o.Opt(r.Range())},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(n({validator:"team"})),location:o.Opt(i("location_predicate")),distance:o.Opt(i("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),player:o.Opt(i("player_predicate")),fishing_hook:o.Opt(o.ObjectNode({in_open_water:o.Opt(o.BooleanNode())})),effects:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),direct_entity:o.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:o.Opt(r.Range()),taken:o.Opt(r.Range()),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),type:o.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:o.Opt(r()),font:o.Opt(r()),bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component")),contents:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:o.Opt(o.ObjectNode({id:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.NumberNode({integer:!0})),tag:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())})),contents:o.Opt(o.Mod(o.ObjectNode({name:o.Opt(i("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const o=i(60),r=i(61),n=i(20),a=i(62),s=i(63),c=i(13),d=i(64),l=i(65),m=i(66);t.initWorldgenSchemas=function(e,t){o.initBiomeSchemas(e,t),r.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),c.initProcessorListSchemas(e,t),d.initStructureFeatureSchemas(e,t),l.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const o=i(0);t.initBiomeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("biome",o.Mod(o.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:o.NumberNode(),scale:o.NumberNode(),temperature:o.NumberNode(),downfall:o.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:o.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:o.Opt(o.BooleanNode()),creature_spawn_probability:o.Opt(o.NumberNode({min:0,max:1})),effects:o.ObjectNode({sky_color:o.NumberNode({color:!0}),fog_color:o.NumberNode({color:!0}),water_color:o.NumberNode({color:!0}),water_fog_color:o.NumberNode({color:!0}),grass_color:o.Opt(o.NumberNode({color:!0})),foliage_color:o.Opt(o.NumberNode({color:!0})),grass_color_modifier:o.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:o.Opt(i()),mood_sound:o.Opt(o.ObjectNode({sound:i(),tick_delay:o.NumberNode({integer:!0}),block_search_extent:o.NumberNode({integer:!0}),offset:o.NumberNode()})),additions_sound:o.Opt(o.ObjectNode({sound:i(),tick_chance:o.NumberNode({min:0,max:1})})),music:o.Opt(o.ObjectNode({sound:i(),min_delay:o.NumberNode({integer:!0,min:0}),max_delay:o.NumberNode({integer:!0,min:0}),replace_current_music:o.BooleanNode()})),particle:o.Opt(o.ObjectNode({options:o.ObjectNode({type:i()}),probability:o.NumberNode({min:0,max:1})}))}),starts:o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:o.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),o.Mod(o.ListNode(o.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:o.NumberNode({integer:!0}),minCount:o.NumberNode({integer:!0}),maxCount:o.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:o.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),o.Mod(o.ObjectNode({energy_budget:o.NumberNode(),charge:o.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:o.MapNode(i({enum:["air","liquid"]}),o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:o.ListNode(o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCarverSchemas=void 0;const o=i(0);t.initCarverSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("configured_carver",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:o.ObjectNode({probability:o.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const o=i(0),r=i(3);i(20),i(13),t.initFeatureSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a={can_replace:o.BooleanNode(),project:o.BooleanNode(),need_water:o.BooleanNode(),xspread:o.NumberNode({integer:!0}),yspread:o.NumberNode({integer:!0}),zspread:o.NumberNode({integer:!0}),tries:o.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:o.ListNode(i("block_state")),blacklist:o.ListNode(i("block_state"))},s={state:i("block_state"),radius:r.UniformInt({min:0,max:4,maxSpread:4}),half_height:o.NumberNode({integer:!0,min:0,max:4}),targets:o.ListNode(i("block_state"))},c={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:o.NumberNode({integer:!0})},d={state:i("block_state"),size:o.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},l={count:r.UniformInt({min:-10,max:128,maxSpread:128})},m=o.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:o.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:r.UniformInt({min:0,max:2,maxSpread:1}),height:r.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:m},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:m},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:r.UniformInt({min:0,max:8,maxSpread:8}),rim_size:r.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":s,"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:o.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:o.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:o.ListNode(o.ObjectNode({centerX:o.NumberNode({integer:!0}),centerZ:o.NumberNode({integer:!0}),radius:o.NumberNode({integer:!0}),height:o.NumberNode({integer:!0}),guarded:o.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:o.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:huge_brown_mushroom":c,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.BooleanNode()},"minecraft:huge_red_mushroom":c,"minecraft:ice_patch":s,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:r.UniformInt()},"minecraft:no_surface_ore":d,"minecraft:ore":d,"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:m,feature_true:m},"minecraft:random_selector":{features:o.ListNode(o.ObjectNode({chance:o.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:sea_pickle":l,"minecraft:seagrass":{probability:o.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:o.ListNode(i("block_state")),place_in:o.ListNode(i("block_state")),place_under:o.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:o.ListNode(m)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:o.NumberNode({integer:!0}),hole_count:o.NumberNode({integer:!0}),requires_block_below:o.BooleanNode(),valid_blocks:o.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:o.NumberNode({integer:!0}),ignore_vines:o.BooleanNode(),heightmap:n({enum:"heightmap_type"}),minimum_size:i("feature_size"),trunk_provider:i("block_state_provider"),leaves_provider:i("block_state_provider"),trunk_placer:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:o.NumberNode({integer:!0,min:0,max:32}),height_rand_a:o.NumberNode({integer:!0,min:0,max:24}),height_rand_b:o.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:r.UniformInt({min:0,max:8,maxSpread:8}),offset:r.UniformInt({min:0,max:8,maxSpread:8}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:r.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:o.ListNode(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:o.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:o.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:o.Opt(o.NumberNode({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:81})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),upper_limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),middle_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:o.ListNode(o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:column_placer":{min_size:o.NumberNode({integer:!0}),extra_size:o.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const o=i(0),r=i(3);t.initNoiseSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("noise_settings",o.Mod(o.ObjectNode({name:o.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:o.NumberNode({integer:!0}),bedrock_floor_position:o.NumberNode({integer:!0}),sea_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:o.ObjectNode({height:o.NumberNode({integer:!0}),density_factor:o.NumberNode(),density_offset:o.NumberNode(),size_horizontal:o.NumberNode({integer:!0}),size_vertical:o.NumberNode({integer:!0}),simplex_surface_noise:o.BooleanNode(),random_density_offset:o.Opt(o.BooleanNode()),island_noise_override:o.Opt(o.BooleanNode()),amplified:o.Opt(o.BooleanNode()),sampling:o.ObjectNode({xz_scale:o.NumberNode(),y_scale:o.NumberNode(),xz_factor:o.NumberNode(),y_factor:o.NumberNode()}),bottom_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>r.DefaultNoiseSettings})),e.register("generator_structures",o.ObjectNode({stronghold:o.Opt(o.ObjectNode({distance:o.NumberNode({integer:!0,min:0,max:1023}),spread:o.NumberNode({integer:!0,min:0,max:1023}),count:o.NumberNode({integer:!0,min:1,max:4095})})),structures:o.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),o.Mod(o.ObjectNode({spacing:o.NumberNode({integer:!0,min:0,max:4096}),separation:o.Mod(o.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,o,r)=>(t.pop().push("spacing").get()<=i&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,i,o,r))})),salt:o.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",o.Mod(o.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:o.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initStructureFeatureSchemas=void 0;const o=i(0);t.initStructureFeatureSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:o.NumberNode({integer:!0})};e.register("configured_structure_feature",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:o.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:o.NumberNode({min:0,max:1}),cluster_probability:o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.BooleanNode()},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSurfaceBuilderSchemas=void 0;const o=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=o.Reference.bind(void 0,e);e.register("configured_surface_builder",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:o.ObjectNode({top_material:r("block_state"),under_material:r("block_state"),underwater_material:r("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTemplatePoolSchemas=void 0;const o=i(0);i(13),t.initTemplatePoolSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",o.Mod(o.ObjectNode({name:r(),fallback:r(),elements:o.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",o.Mod(o.ObjectNode({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[o.Switch]:[{push:"element_type"}],[o.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:n},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:n},"minecraft:list_pool_element":{elements:o.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:n}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldSettingsSchemas=void 0;const o=i(0);t.initWorldSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("world_settings",o.Mod(o.ObjectNode({generate_features:o.BooleanNode(),bonus_chest:o.BooleanNode(),seed:o.NumberNode({integer:!0}),dimensions:o.MapNode(r({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(70),r=i(4),n=i(71),a=i(72),s=i(73),c=i(74),d=i(75),l=i(76),m=i(77),p=i(78),u=i(79),_=i(80),f=i(81),g=i(89);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initItemModifierSchemas(e,t),d.initLootTableSchemas(e,t),l.initPackMcmetaSchemas(e,t),m.initPredicatesSchemas(e,t),p.initRecipeSchemas(e,t),u.initTagsSchemas(e,t),_.initTextComponentSchemas(e,t),f.initWorldgenSchemas(e,t),g.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"object",node:o.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:o.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(r()),frame:o.Opt(r({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(r({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(r(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(r()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(r({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({player:o.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:o.Opt(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(r({validator:"resource",params:{pool:"$dimension"}})),to:o.Opt(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(n))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"mob_effect"}}),o.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")})))},"minecraft:enter_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:o.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:o.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:o.Opt(o.ListNode(n))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:location":{location:o.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:o.Opt(i("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:o.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:n},"minecraft:tame_animal":{entity:n},"minecraft:target_hit":{projectile:n,shooter:n,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(4);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionSchemas=void 0;const o=i(0),r=i(4);t.initDimensionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=e=>o.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",o.Mod(o.ObjectNode({type:r.DimensionTypePresets(i("dimension_type")),generator:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:o.Opt(n({enum:["nether"]})),altitude_noise:a(i("generator_biome_noise")),temperature_noise:a(i("generator_biome_noise")),humidity_noise:a(i("generator_biome_noise")),weirdness_noise:a(i("generator_biome_noise")),biomes:a(o.Mod(o.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:o.Opt(o.NumberNode({integer:!0,min:0,max:62})),biomes:o.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:r.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:o.ObjectNode({biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:o.Opt(o.BooleanNode()),features:o.Opt(o.BooleanNode()),layers:o.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",o.Mod(o.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:o.ObjectNode({altitude:o.NumberNode({min:-1,max:1}),temperature:o.NumberNode({min:-1,max:1}),humidity:o.NumberNode({min:-1,max:1}),weirdness:o.NumberNode({min:-1,max:1}),offset:o.NumberNode({min:-1,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",o.Mod(o.ObjectNode({firstOctave:o.NumberNode({integer:!0}),amplitudes:o.ListNode(o.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionTypeSchemas=void 0;const o=i(0),r=i(4);t.initDimensionTypeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("dimension_type",o.Mod(o.ObjectNode({name:o.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:o.BooleanNode(),natural:o.BooleanNode(),piglin_safe:o.BooleanNode(),respawn_anchor_works:o.BooleanNode(),bed_works:o.BooleanNode(),has_raids:o.BooleanNode(),has_skylight:o.BooleanNode(),has_ceiling:o.BooleanNode(),coordinate_scale:o.NumberNode({min:1e-5,max:3e7}),ambient_light:o.NumberNode(),fixed_time:o.Opt(o.NumberNode({integer:!0})),logical_height:o.NumberNode({integer:!0,min:0,max:4096}),effects:o.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:o.NumberNode({integer:!0,min:-2048,max:2047}),height:o.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),e=>({default:()=>r.DefaultDimensionType,validate:(t,i,o,r)=>((null==(i=e.validate(t,i,o,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),i)})))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initItemModifierSchemas=void 0;const o=i(0),r=i(4);t.initItemModifierSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("item_modifier",o.ObjectOrList(i("function"),{choiceContext:"function"}));const a={conditions:o.Opt(o.ListNode(i("condition")))};e.register("function",o.Mod(o.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[o.Switch]:[{push:"function"}],[o.Case]:r.FunctionCases(a)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(21),n=i(4);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:i("number_provider"),bonus_rolls:o.Opt(i("number_provider")),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:n.FunctionCases(s,u,p)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:n.ConditionCases(p)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:i("number_provider"),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=void 0;const o=i(0);t.initPredicatesSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"string",node:r(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:o.Opt(r({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(r({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(r({validator:"resource",params:{pool:"block"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(r(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(r({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(r(),n))},{context:"fluid"})),e.register("location_predicate",o.ObjectNode({position:o.Opt(o.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:o.Opt(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:o.Opt(r({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:o.Opt(r({validator:"resource",params:{pool:"$dimension"}})),light:o.Opt(o.ObjectNode({light:i("int_bounds")})),smokey:o.Opt(o.BooleanNode()),block:o.Opt(i("block_predicate")),fluid:o.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:i("int_bounds"),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(r({enum:"gamemode"})),level:i("int_bounds"),advancements:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(r(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(r({validator:"team"})),location:o.Opt(i("location_predicate")),distance:o.Opt(i("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(r({enum:"slot"}),i("item_predicate"))),vehicle:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),player:o.Opt(i("player_predicate")),fishing_hook:o.Opt(o.ObjectNode({in_open_water:o.Opt(o.BooleanNode())})),effects:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),direct_entity:o.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),type:o.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("game_event_tag",r("game_event")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:o.Opt(r()),font:o.Opt(r()),bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component")),contents:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:o.Opt(o.ObjectNode({id:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.NumberNode({integer:!0})),tag:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())})),contents:o.Opt(o.Mod(o.ObjectNode({name:o.Opt(i("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const o=i(82),r=i(83),n=i(22),a=i(84),s=i(85),c=i(9),d=i(86),l=i(87),m=i(88);t.initWorldgenSchemas=function(e,t){c.initProcessorListSchemas(e,t),o.initBiomeSchemas(e,t),r.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),d.initStructureFeatureSchemas(e,t),l.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const o=i(0);t.initBiomeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("biome",o.Mod(o.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:o.NumberNode(),scale:o.NumberNode(),temperature:o.NumberNode(),downfall:o.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:o.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:o.Opt(o.BooleanNode()),creature_spawn_probability:o.Opt(o.NumberNode({min:0,max:1})),effects:o.ObjectNode({sky_color:o.NumberNode({color:!0}),fog_color:o.NumberNode({color:!0}),water_color:o.NumberNode({color:!0}),water_fog_color:o.NumberNode({color:!0}),grass_color:o.Opt(o.NumberNode({color:!0})),foliage_color:o.Opt(o.NumberNode({color:!0})),grass_color_modifier:o.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:o.Opt(i()),mood_sound:o.Opt(o.ObjectNode({sound:i(),tick_delay:o.NumberNode({integer:!0}),block_search_extent:o.NumberNode({integer:!0}),offset:o.NumberNode()})),additions_sound:o.Opt(o.ObjectNode({sound:i(),tick_chance:o.NumberNode({min:0,max:1})})),music:o.Opt(o.ObjectNode({sound:i(),min_delay:o.NumberNode({integer:!0,min:0}),max_delay:o.NumberNode({integer:!0,min:0}),replace_current_music:o.BooleanNode()})),particle:o.Opt(o.ObjectNode({options:o.ObjectNode({type:i()}),probability:o.NumberNode({min:0,max:1})}))}),starts:o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:o.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),o.Mod(o.ListNode(o.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:o.NumberNode({integer:!0}),minCount:o.NumberNode({integer:!0}),maxCount:o.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:o.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),o.Mod(o.ObjectNode({energy_budget:o.NumberNode(),charge:o.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:o.MapNode(i({enum:["air","liquid"]}),o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:o.ListNode(o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCarverSchemas=void 0;const o=i(0),r=i(4);t.initCarverSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("configured_carver",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:o.ObjectNode({probability:o.NumberNode({min:0,max:1}),debug_settings:o.Opt(o.ObjectNode({debug_mode:o.Opt(o.BooleanNode()),air_state:o.Opt(i("block_state"))})),[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:canyon":{bottom_inclusive:i("vertical_anchor"),top_inclusive:i("vertical_anchor"),y_scale:r.UniformInt(),distanceFactor:r.FloatProvider({min:0,max:1}),vertical_rotation:r.FloatProvider(),thickness:r.FloatProvider(),width_smoothness:o.NumberNode({integer:!0,min:0}),horizontal_radius_factor:r.FloatProvider(),vertical_radius_default_factor:o.NumberNode(),vertical_radius_center_factor:o.NumberNode()}}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const o=i(0),r=i(4);i(22),i(9);const n=i(9);t.initFeatureSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={can_replace:o.BooleanNode(),project:o.BooleanNode(),need_water:o.BooleanNode(),xspread:o.NumberNode({integer:!0}),yspread:o.NumberNode({integer:!0}),zspread:o.NumberNode({integer:!0}),tries:o.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:o.ListNode(i("block_state")),blacklist:o.ListNode(i("block_state"))},c={state:i("block_state"),radius:r.UniformInt({min:0,max:4,maxSpread:4}),half_height:o.NumberNode({integer:!0,min:0,max:4}),targets:o.ListNode(i("block_state"))},d={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:o.NumberNode({integer:!0})},l={size:o.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:o.NumberNode({min:0,max:1}),targets:o.ListNode(o.ObjectNode({target:i("rule_test"),state:i("block_state")}))},m={count:r.UniformInt({min:-10,max:128,maxSpread:128})},p=o.ChoiceNode([{type:"string",node:a({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),u={surface:a({enum:["floor","ceiling"]}),depth:r.UniformInt({min:1,max:64,maxSpread:64}),vertical_range:o.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:o.NumberNode({min:0,max:1}),extra_edge_column_chance:o.NumberNode({min:0,max:1}),vegetation_chance:o.NumberNode({min:0,max:1}),xz_radius:r.UniformInt(),replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:p};e.register("configured_feature",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:o.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:r.UniformInt({min:0,max:2,maxSpread:1}),height:r.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:p},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:p},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:r.UniformInt({min:0,max:8,maxSpread:8}),rim_size:r.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":c,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:o.NumberNode({integer:!0,min:1,max:512}),height:r.UniformInt({min:1,max:64,maxSpread:64}),radius:r.UniformInt({min:1,max:64,maxSpread:64}),max_stalagmite_stalactite_height_diff:o.NumberNode({integer:!0,min:0,max:64}),height_deviation:o.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:r.UniformInt({min:0,max:64,maxSpread:64}),density:r.FloatProvider({min:0,max:2}),wetness:r.FloatProvider({min:0,max:2}),wetness_mean:o.NumberNode({min:0,max:1}),wetness_deviation:o.NumberNode({min:0,max:1}),chance_of_dripstone_column_at_max_distance_from_center:o.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:o.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:o.NumberNode({integer:!0,min:1,max:64})},"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:o.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:o.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:o.ListNode(o.ObjectNode({centerX:o.NumberNode({integer:!0}),centerZ:o.NumberNode({integer:!0}),radius:o.NumberNode({integer:!0}),height:o.NumberNode({integer:!0}),guarded:o.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:o.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":s,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:o.NumberNode({integer:!0,min:0,max:7}),fossil_structures:o.ListNode(a({validator:"resource",params:{pool:"$structure"}})),overlay_structures:o.ListNode(a({validator:"resource",params:{pool:"$structure"}})),fossil_processors:n.Processors,overlay_processors:n.Processors},"minecraft:geode":{blocks:o.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:o.ListNode(i("block_state"))}),layers:o.ObjectNode({filling:o.Opt(o.NumberNode({min:.01,max:50})),inner_layer:o.Opt(o.NumberNode({min:.01,max:50})),middle_layer:o.Opt(o.NumberNode({min:.01,max:50})),outer_layer:o.Opt(o.NumberNode({min:.01,max:50}))}),crack:o.ObjectNode({generate_crack_chance:o.Opt(o.NumberNode({min:0,max:1})),base_crack_size:o.Opt(o.NumberNode({min:0,max:5})),crack_point_offset:o.Opt(o.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:o.Opt(o.NumberNode({min:0,max:1})),use_potential_placements_chance:o.Opt(o.NumberNode({min:0,max:1})),use_alternate_layer0_chance:o.Opt(o.NumberNode({min:0,max:1})),placements_require_layer0_alternate:o.Opt(o.BooleanNode()),min_outer_wall_distance:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_outer_wall_distance:o.Opt(o.NumberNode({min:1,max:20,integer:!0})),min_distribution_points:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_distribution_points:o.Opt(o.NumberNode({min:1,max:20,integer:!0})),min_point_offset:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_point_offset:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),min_gen_offset:o.Opt(o.NumberNode({integer:!0})),max_gen_offset:o.Opt(o.NumberNode({integer:!0})),invalid_blocks_threshold:o.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:o.Opt(o.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:o.Opt(o.NumberNode({min:0,max:1})),can_place_on_floor:o.Opt(o.BooleanNode()),can_place_on_ceiling:o.Opt(o.BooleanNode()),can_place_on_wall:o.Opt(o.BooleanNode()),can_be_placed_on:o.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:a({enum:["up","down","north","east","south","west"]}),allow_water:o.BooleanNode(),height_distribution:o.ListNode(o.ObjectNode({weight:o.NumberNode({integer:!0}),data:r.UniformInt()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":d,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.BooleanNode()},"minecraft:huge_red_mushroom":d,"minecraft:ice_patch":c,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:o.Opt(o.NumberNode({integer:!0,min:1,max:512})),column_radius:r.UniformInt({min:1,max:30,maxSpread:30}),height_scale:r.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:o.NumberNode({min:0,max:1}),stalactite_bluntness:r.FloatProvider({min:.1,max:10}),stalagmite_bluntness:r.FloatProvider({min:.1,max:10}),wind_speed:r.FloatProvider({min:0,max:2}),min_radius_for_wind:o.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:o.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:r.UniformInt()},"minecraft:ore":l,"minecraft:random_patch":s,"minecraft:random_boolean_selector":{feature_false:p,feature_true:p},"minecraft:random_selector":{features:o.ListNode(o.ObjectNode({chance:o.NumberNode({min:0,max:1}),feature:p})),default:p},"minecraft:root_system":{required_vertical_space_for_tree:o.NumberNode({integer:!0,min:1,max:64}),root_radius:o.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:o.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:o.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:o.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:o.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:o.NumberNode({integer:!0,min:0,max:256}),root_replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),feature:p},"minecraft:scattered_ore":l,"minecraft:sea_pickle":m,"minecraft:seagrass":{probability:o.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:o.ListNode(i("block_state")),place_in:o.ListNode(i("block_state")),place_under:o.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:o.ListNode(p)},"minecraft:small_dripstone":{max_placements:o.NumberNode({integer:!0,min:0,max:100}),empty_space_search_radius:o.NumberNode({integer:!0,min:0,max:20}),max_offset_from_origin:o.NumberNode({integer:!0,min:0,max:20}),chance_of_taller_dripstone:o.Opt(o.NumberNode({integer:!0,min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:o.NumberNode({integer:!0}),hole_count:o.NumberNode({integer:!0}),requires_block_below:o.BooleanNode(),valid_blocks:o.ListNode(a({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:o.Opt(o.BooleanNode()),force_dirt:o.Opt(o.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:o.NumberNode({integer:!0,min:0,max:32}),height_rand_a:o.NumberNode({integer:!0,min:0,max:24}),height_rand_b:o.NumberNode({integer:!0,min:0,max:24}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:bending_trunk_placer":{bend_length:r.UniformInt({min:1,max:32,maxSpread:32}),min_height_for_leaves:o.Opt(o.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:r.UniformInt({min:0,max:8,maxSpread:8}),offset:r.UniformInt({min:0,max:8,maxSpread:8}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:random_spread_foliage_placer":{foliage_height:r.UniformInt({min:1,max:256,maxSpread:256}),leaf_placement_attempts:o.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:r.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:o.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:o.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:o.Opt(o.NumberNode({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:81})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),upper_limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),middle_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:randomized_int_state_provider":{property:a(),values:r.UniformInt(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:o.ListNode(o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:column_placer":{min_size:o.NumberNode({integer:!0}),extra_size:o.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const o=i(0),r=i(4);t.initNoiseSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("noise_settings",o.Mod(o.ObjectNode({name:o.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:o.NumberNode({integer:!0}),bedrock_floor_position:o.NumberNode({integer:!0}),sea_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),noise_caves_enabled:o.BooleanNode(),aquifers_enabled:o.BooleanNode(),deepslate_enabled:o.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:o.ObjectNode({min_y:o.NumberNode({integer:!0,min:-2048,max:2047}),height:o.NumberNode({integer:!0,min:0,max:4096}),density_factor:o.NumberNode(),density_offset:o.NumberNode(),size_horizontal:o.NumberNode({integer:!0}),size_vertical:o.NumberNode({integer:!0}),simplex_surface_noise:o.BooleanNode(),random_density_offset:o.Opt(o.BooleanNode()),island_noise_override:o.Opt(o.BooleanNode()),amplified:o.Opt(o.BooleanNode()),sampling:o.ObjectNode({xz_scale:o.NumberNode(),y_scale:o.NumberNode(),xz_factor:o.NumberNode(),y_factor:o.NumberNode()}),bottom_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),e=>({default:()=>r.DefaultNoiseSettings,validate:(t,i,o,r)=>{var n,a,s,c;return(null===(n=null==(i=e.validate(t,i,o,r))?void 0:i.noise)||void 0===n?void 0:n.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}}))),e.register("generator_structures",o.ObjectNode({stronghold:o.Opt(o.ObjectNode({distance:o.NumberNode({integer:!0,min:0,max:1023}),spread:o.NumberNode({integer:!0,min:0,max:1023}),count:o.NumberNode({integer:!0,min:1,max:4095})})),structures:o.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),o.Mod(o.ObjectNode({spacing:o.NumberNode({integer:!0,min:0,max:4096}),separation:o.Mod(o.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,o,r)=>(t.pop().push("spacing").get()<=i&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,i,o,r))})),salt:o.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",o.Mod(o.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:o.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initStructureFeatureSchemas=void 0;const o=i(0);t.initStructureFeatureSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:o.NumberNode({integer:!0})};e.register("configured_structure_feature",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:o.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:o.NumberNode({min:0,max:1}),cluster_probability:o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.BooleanNode()},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSurfaceBuilderSchemas=void 0;const o=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=o.Reference.bind(void 0,e);e.register("configured_surface_builder",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:o.ObjectNode({top_material:r("block_state"),under_material:r("block_state"),underwater_material:r("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTemplatePoolSchemas=void 0;const o=i(0);i(9);const r=i(9);t.initTemplatePoolSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("template_pool",o.Mod(o.ObjectNode({name:n(),fallback:n(),elements:o.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",o.Mod(o.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[o.Switch]:[{push:"element_type"}],[o.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:r.Processors},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r.Processors},"minecraft:list_pool_element":{elements:o.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldSettingsSchemas=void 0;const o=i(0);t.initWorldSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("world_settings",o.Mod(o.ObjectNode({generate_features:o.BooleanNode(),bonus_chest:o.BooleanNode(),seed:o.NumberNode({integer:!0}),dimensions:o.MapNode(r({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))}},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t,i=this,o=(t=4022871197,function(e){e=String(e);for(var i=0;i>>0,t=(o*=t)>>>0,t+=4294967296*(o-=t)}return 2.3283064365386963e-10*(t>>>0)});i.next=function(){var e=2091639*i.s0+2.3283064365386963e-10*i.c;return i.s0=i.s1,i.s1=i.s2,i.s2=e-(i.c=0|e)},i.c=1,i.s0=o(" "),i.s1=o(" "),i.s2=o(" "),i.s0-=o(e),i.s0<0&&(i.s0+=1),i.s1-=o(e),i.s1<0&&(i.s1+=1),i.s2-=o(e),i.s2<0&&(i.s2+=1),o=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function c(e,t){var i=new a(e),o=t&&t.state,r=i.next;return r.int32=function(){return 4294967296*i.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.alea=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:i+=e;for(var o=0;o>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xor128=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:i+=e;for(var o=0;o>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function c(e,t){var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xorwow=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this;t.next=function(){var e,i,o=t.x,r=t.i;return e=o[r],i=(e^=e>>>7)^e<<24,i^=(e=o[r+1&7])^e>>>10,i^=(e=o[r+3&7])^e>>>3,i^=(e=o[r+4&7])^e<<7,e=o[r+7&7],i^=(e^=e<<13)^e<<9,o[r]=i,t.i=r+1&7,i},function(e,t){var i,o=[];if(t===(0|t))o[0]=t;else for(t=""+t,i=0;i0;--i)e.next()}(t,e)}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function c(e,t){null==e&&(e=+new Date);var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&(o.x&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xorshift7=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this;t.next=function(){var e,i,o=t.w,r=t.X,n=t.i;return t.w=o=o+1640531527|0,i=r[n+34&127],e=r[n=n+1&127],i^=i<<13,e^=e<<17,i^=i>>>15,e^=e>>>12,i=r[n]=i^e,t.i=n,i+(o^o>>>16)|0},function(e,t){var i,o,r,n,a,s=[],c=128;for(t===(0|t)?(o=t,t=null):(t+="\0",o=0,c=Math.max(c,t.length)),r=0,n=-32;n>>15,o^=o<<4,o^=o>>>13,n>=0&&(a=a+1640531527|0,r=0==(i=s[127&n]^=o+a)?r+1:0);for(r>=128&&(s[127&(t&&t.length||0)]=-1),r=127,n=512;n>0;--n)o=s[r+34&127],i=s[r=r+1&127],o^=o<<13,i^=i<<17,o^=o>>>15,i^=i>>>12,s[r]=o^i;e.w=a,e.X=s,e.i=r}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function c(e,t){null==e&&(e=+new Date);var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&(o.X&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xor4096=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.next=function(){var e=t.b,i=t.c,o=t.d,r=t.a;return e=e<<25^e>>>7^i,i=i-o|0,o=o<<24^o>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^i,t.c=i=i-o|0,t.d=o<<16^i>>>16^r,t.a=r-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):i+=e;for(var o=0;o>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.tychei=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){var o;!function(r,n,a){var s,c=a.pow(256,6),d=a.pow(2,52),l=2*d;function m(e,t,i){var o=[],m=_(function e(t,i){var o,r=[],n=typeof t;if(i&&"object"==n)for(o in t)try{r.push(e(t[o],i-1))}catch(e){}return r.length?r:"string"==n?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,f(n)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),f(e)}catch(e){var t=r.navigator,i=t&&t.plugins;return[+new Date,r,i,r.screen,f(n)]}}():e,3),o),g=new p(o),h=function(){for(var e=g.g(6),t=c,i=0;e=l;)e/=2,t/=2,i>>>=1;return(e+i)/t};return h.int32=function(){return 0|g.g(4)},h.quick=function(){return g.g(4)/4294967296},h.double=h,_(f(g.S),n),(t.pass||i||function(e,t,i,o){return o&&(o.S&&u(o,g),e.state=function(){return u(g,{})}),i?(a.random=e,t):e})(h,m,"global"in t?t.global:this==a,t.state)}function p(e){var t,i=e.length,o=this,r=0,n=o.i=o.j=0,a=o.S=[];for(i||(e=[i++]);r<256;)a[r]=r++;for(r=0;r<256;r++)a[r]=a[n=255&n+e[r%i]+(t=a[r])],a[n]=t;(o.g=function(e){for(var t,i=0,r=o.i,n=o.j,a=o.S;e--;)t=a[r=255&r+1],i=256*i+a[255&(a[r]=a[n=255&n+t])+(a[n]=t)];return o.i=r,o.j=n,i})(256)}function u(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function _(e,t){for(var i,o=e+"",r=0;r("0"+e.toString(16)).substr(-2);function c(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,s).join("")}function d(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function l(e){const t=Math.abs(function(e){let t=0;for(let i=0;i>8)%256,(t>>16)%256]}function m(e,t,i){return Math.max(e,Math.min(t,i))}function p(e,t,i){return i<0?e:i>1?t:u(i,e,t)}function u(e,t,i){return t+e*(i-t)}function _(e,t,i,o,r,n){return u(t,u(e,i,o),u(e,r,n))}function f(e){return e*e*e*(e*(6*e-15)+10)}class g{constructor(e){this.value=e,this.watchers=[]}set(e){if(this.value===e)return;const t=this.value;this.value=e,this.watchers.forEach(e=>e.watcher(this.value,t))}get(){return this.value}watchRun(e,t){return e(this.value,null),this.watch(e,t)}watch(e,t){t=null!=t?t:c();const i=this.watchers.find(e=>e.name===t);return i?i.watcher=e:this.watchers.push({name:t,watcher:e}),this}}class h extends g{constructor(e,t){var i;super(null!==(i=localStorage.getItem(e))&&void 0!==i?i:t),this.id=e}set(e){super.set(e),localStorage.setItem(this.id,e)}get(){return this.value}}var b=i(1),v=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};["1.15","1.16","1.17"].forEach(e=>localStorage.removeItem("cache_"+e));const y="https://raw.githubusercontent.com/Arcensoth/mcdata",N="https://raw.githubusercontent.com/SPGoding/vanilla-datapack",w=[{id:"mcdata_master",hash:"a6bd46e069d99e9b4c0729f120299e7785c8db3e",url:y},{id:"vanilla_datapack_summary",hash:"028371e07ecc554af8c3a5d816ef2ea9d96492fe",url:N}];function O(e,t){return v(this,void 0,void 0,(function*(){const i=b.versions.find(e=>e.id===t);i&&(i.dynamic&&(yield Promise.all(w.filter(e=>localStorage.getItem("cached_"+e.id)!==e.hash).map(e=>v(this,void 0,void 0,(function*(){yield function(e){return v(this,void 0,void 0,(function*(){const t=yield caches.open("misode-v1"),i=[];for(const o of yield t.keys())e(o.url)&&i.push(t.delete(o));return(yield Promise.all(i)).length>0}))}(t=>t.startsWith(`${e.url}/${i.refs[e.id]}`)),localStorage.setItem("cached_"+e.id,e.hash)}))))),yield Promise.all([k(i,e),x(i),j(i,e)]))}))}function k(e,t){return v(this,void 0,void 0,(function*(){const i=b.registries.filter(e=>!e.dynamic).filter(t=>fe(e.id,t.minVersion,t.maxVersion));if(!fe(e.id,void 0,"1.15"))return Promise.all(i.map(i=>v(this,void 0,void 0,(function*(){try{const o=i.path?`${y}/${e.refs.mcdata_master}/${i.path}/data.min.json`:`${y}/${e.refs.mcdata_master}/processed/reports/registries/${i.id}/data.min.json`;t.register(i.id,yield S(o,e=>e.values))}catch(e){console.warn(`Error occurred while registry ${i.id}:`,e)}}))));{const o=`${y}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=yield S(o,e=>{const t={};return Object.keys(e).forEach(i=>{t[i.slice(10)]=Object.keys(e[i].entries)}),t});i.forEach(i=>{var o;t.register(i.id,null!==(o=e[i.id])&&void 0!==o?o:[])})}catch(e){console.warn("Error occurred while fetching registries:",e)}}}))}function x(e){return v(this,void 0,void 0,(function*(){if(fe(e.id,void 0,"1.16")){const t=fe(e.id,void 0,"1.15")?`${y}/${e.refs.mcdata_master}/generated/reports/blocks.json`:`${y}/${e.refs.mcdata_master}/processed/reports/blocks/data.min.json`;try{const e=yield S(t,e=>{const t={};return Object.keys(e).forEach(i=>{t[i]={properties:e[i].properties,default:e[i].states.find(e=>e.default).properties}}),t});ue.blockStateRegistry=e}catch(e){console.warn("Error occurred while fetching block state map:",e)}}else{const t=`${y}/${e.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;try{ue.blockStateRegistry=yield S(t)}catch(e){console.warn("Error occurred while fetching block state map:",e)}}}))}function j(e,t){return v(this,void 0,void 0,(function*(){const i=b.registries.filter(e=>e.dynamic).filter(t=>fe(e.id,t.minVersion,t.maxVersion));if(fe(e.id,"1.16")){const o=`${N}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=yield S(o);i.forEach(i=>{t.register(i.id,e[i.id])})}catch(e){console.warn("Error occurred while fetching dynamic registries:",e)}}}))}function S(e,t=(e=>e)){return v(this,void 0,void 0,(function*(){const i=yield caches.open("misode-v1"),o=yield i.match(e);if(o&&o.ok)return yield o.json();const r=yield fetch(e),n=t(yield r.json());return yield i.put(e,new Response(JSON.stringify(n))),n}))}const M={archive:'',arrow_both:'',arrow_left:'',arrow_right:'',chevron_down:'',chevron_right:'',clippy:'',code:'',dash:'',download:'',eye:'',eye_closed:'',fold:'',gear:'',globe:'',history:'',info:'',issue_opened:'',kebab_horizontal:'',link:'',mark_github:'',moon:'',note:'',package:'',play:'',plus:'',plus_circle:'',search:'',square:'',square_fill:'',sun:'',tag:'',trashcan:'',three_bars:'',unfold:'',x:''};var C=i(10),z=i.n(C);class L{constructor(e){this.xo=256*e(),this.yo=256*e(),this.zo=256*e(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let t=0;t<256;t+=1){const i=e.int32()%(256-t),o=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=o}}noise(e,t,i,o,r){const n=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(n),d=Math.floor(a),l=Math.floor(s),m=n-c,p=a-d,u=s-l,_=f(m),g=f(p),h=f(u);let b=0;return 0!==o&&(b=Math.floor(Math.min(r,p)/o)*o),this.sampleAndLerp(c,d,l,m,p-b,u,_,g,h)}gradDot(e,t,i,o){const r=L.GRADIENT[15&e];return r[0]*t+r[1]*i+r[2]*o}P(e){return 255&this.p[255&e]}sampleAndLerp(e,t,i,o,r,n,a,s,c){const d=this.P(e)+t,l=this.P(d)+i,m=this.P(d+1)+i,p=this.P(e+1)+t,f=this.P(p)+i,g=this.P(p+1)+i;return function(e,t,i,o,r,n,a,s,c,d,l){return u(i,_(e,t,o,r,n,a),_(e,t,s,c,d,l))}(a,s,c,this.gradDot(this.P(l),o,r,n),this.gradDot(this.P(f),o-1,r,n),this.gradDot(this.P(m),o,r-1,n),this.gradDot(this.P(g),o-1,r-1,n),this.gradDot(this.P(l+1),o,r,n-1),this.gradDot(this.P(f+1),o-1,r,n-1),this.gradDot(this.P(m+1),o,r-1,n-1),this.gradDot(this.P(g+1),o-1,r-1,n-1))}}L.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]];class ${constructor(e,t,i){this.amplitudes=i,this.noiseLevels=Array(this.amplitudes.length);for(let t=0;t{}}dirty(e){return JSON.stringify(this.state)!==JSON.stringify(e.get())}menu(e,t){return""}onDrag(e,t){}}class A extends B{constructor(){var e;super(),this.offsetX=0,this.offsetY=0,this.seed=c(),this.viewScale=new g(0),this.biomeColors=new g({}),this.biomeColors.set(JSON.parse(null!==(e=localStorage.getItem("biome_colors"))&&void 0!==e?e:"{}")),this.noise=[],this.biomeColors.watch(()=>this.redraw())}getName(){return"biome-noise"}active(e){return e.endsWith(new o.Path(["generator","biome_source"]))&&"minecraft:multi_noise"===e.push("type").get()}menu(e,t){return`\n
\n
\n ${M.plus}\n
\n
\n ${M.dash}\n
`}getSize(){return[200,100]}draw(e,t){var i;this.noise=A.noiseMaps.map((e,t)=>{const i=this.state[e+"_noise"];return new P(this.seed+t,i.firstOctave,i.amplitudes)});const o={};this.state.biomes.forEach(e=>{o[e.biome]=this.getBiomeColor(e.biome)});const r=t.data,n=Math.pow(2,this.viewScale.get());for(let e=0;e<200;e+=1)for(let a=0;a<100;a+=1){const s=a*(4*t.width)+4*e,c=(e-this.offsetX)*n-100*n,d=(a-this.offsetY)*n-50*n,l=this.closestBiome(c,d),m=null!==(i=o[l])&&void 0!==i?i:[128,128,128];r[s]=m[0],r[s+1]=m[1],r[s+2]=m[2],r[s+3]=255}}onDrag(e,t){this.offsetX+=e,this.offsetY+=t}closestBiome(e,t){if(!this.state.biomes||0===this.state.biomes.length)return"";const i=this.noise.map(i=>i.getValue(e,t,0));let o=1/0,r="";for(const e of this.state.biomes){const t=this.fitness(e.parameters,{altitude:i[0],temperature:i[1],humidity:i[2],weirdness:i[3],offset:0});te.toString(16).padStart(2,"0")).join("")}}A.noiseMaps=["altitude","temperature","humidity","weirdness"];const R={en:i(26)};function I(e,t){return null==e?void 0:e.replace(/%\d+%/g,e=>{const i=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[i])?t[i]:e})}function E(e,t){var i,o,r;return null!==(r=I(null!==(o=null===(i=R[ue.language.get()])||void 0===i?void 0:i[e])&&void 0!==o?o:R.en[e],t))&&void 0!==r?r:e}function q(e,t,i=5,o=1){return[ue.language.get(),"en"].reduce((r,n)=>{var a;if(void 0!==r)return r;const s=e.slice(-i);for(;s.length>=o;){const e=I(null===(a=R[n])||void 0===a?void 0:a[s.join(".")],t);if(void 0!==e)return e;s.shift()}},void 0)}class T{constructor(){this.registry={}}render(){return""}register(e){const t=c();return this.registry[t]=e,t}on(e,t){return this.register(i=>{i.addEventListener(e,e=>{t(i),e.stopPropagation()})})}onChange(e){return this.on("change",e)}onClick(e){return this.on("click",e)}mounted(e,t=!0){e.querySelectorAll("[data-id]").forEach(e=>{var t,i;const o=e.getAttribute("data-id");null===(i=(t=this.registry)[o])||void 0===i||i.call(t,e)}),t&&(this.registry={}),e.querySelectorAll("[data-i18n]").forEach(e=>{e.textContent=E(e.attributes.getNamedItem("data-i18n").value)})}mount(e,t,i=!0){e.innerHTML=t,this.mounted(e,i)}}const D=e=>{e.classList.add("active");const t=()=>document.body.addEventListener("click",i=>{var o;i.target.matches(".btn.input")||(null===(o=i.target.closest(".btn"))||void 0===o?void 0:o.classList.contains("input"))?t():e.classList.remove("active")},{capture:!0,once:!0});t()};class F{constructor(){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0,this.minLimitPerlinNoise=$.fromRange(c(),-15,0),this.maxLimitPerlinNoise=$.fromRange(c(),-15,0),this.mainPerlinNoise=$.fromRange(c(),-7,0),this.depthNoise=$.fromRange(c(),-15,0)}reset(e,t,i,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,i=1+4*i),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*i+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(i),n=this.fillNoiseColumn(i+1);for(let e=this.chunkCountY-1;e>=0;e-=1)for(let i=this.chunkHeight;i>=0;i-=1){const a=i/this.chunkHeight;t[e*this.chunkHeight+i]=_(a,o,r[e],r[e+1],n[e],n[e+1])}return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const i=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,n=o/this.settings.sampling.xz_factor,a=r/this.settings.sampling.y_factor,s=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let t=0;t<=this.chunkCountY;t+=1){let c=this.sampleAndClampNoise(e,t,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,n,a);const d=((1-2*t/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;c+=d*(d>0?4:1),this.settings.top_slide.size>0&&(c=p(this.settings.top_slide.target,c,(this.chunkCountY-t-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(c=p(this.settings.bottom_slide.target,c,(t-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),i[t]=c}return this.noiseColumnCache[e-this.xOffset]=i,i}getRandomDensity(e){const t=this.depthNoise.getValue(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),i=24.575625*(t<0?.3*-t:t)-2;return i<0?.009486607142857142*i:.006640625*Math.min(i,1)}sampleAndClampNoise(e,t,i,o,r,n,a){let s=0,c=0,d=0,l=1;for(let m=0;m<16;m+=1){const p=$.wrap(e*o*l),u=$.wrap(t*r*l),_=$.wrap(i*o*l),f=r*l,g=this.minLimitPerlinNoise.getOctaveNoise(m);g&&(s+=g.noise(p,u,_,f,t*f)/l);const h=this.maxLimitPerlinNoise.getOctaveNoise(m);if(h&&(c+=h.noise(p,u,_,f,t*f)/l),m<8){const o=this.mainPerlinNoise.getOctaveNoise(m);o&&(d+=o.noise($.wrap(e*n*l),$.wrap(t*a*l),$.wrap(i*n*l),a*l,t*a*l)/l)}l/=2}return p(s/512,c/512,(d/10+1)/2)}}const V=[50,50,51,51,52,52,53,54,56,57,57,58,58,59,60,60,60,59,59,59,60,61,61,62,63,63,64,64,64,65,65,66,66,65,65,66,66,67,67,67,68,69,71,73,74,76,79,80,81,81,82,83,83,82,82,81,81,80,80,80,81,81,82,82],U=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];const H=(e,t,i)=>ga("send","event",e,t,i),W=(e,t)=>ga("set","dimension"+e,t),J=e=>{ga("set","page",e),ga("send","pageview")},Y=e=>H("Generator","set-version",e),G=e=>H("Preview","set-preview",e),X=()=>H("Generator","reset"),K=(e=!1)=>H("Generator","undo",e?"Hotkey":"Menu"),Z=(e=!1)=>H("Generator","redo",e?"Hotkey":"Menu"),Q=()=>H("JsonOutput","copy"),ee=()=>H("JsonOutput","download"),te=()=>H("JsonOutput","share"),ie=()=>H("Preview","hide-preview"),oe=e=>H("Generator","toggle-minimize",e?"minimized":"unminimized"),re=e=>H("Generator","load-preset",e),ne=e=>W(1,e),ae=e=>W(3,e),se=e=>W(4,e),ce=e=>W(5,e);var de=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const le={1.15:r,1.16:n,1.17:a},me={biome_noise:new A,noise_settings:new class extends B{constructor(){super(),this.width=256,this.depth=.1,this.scale=.2,this.offsetX=0,this.debug=!1,this.generator=new F}getName(){return"noise-settings"}active(e){return e.endsWith(new o.Path(["noise"]))}menu(e,t){return`
\n
\n ${M.kebab_horizontal}\n
\n
\n
\n ${M.gear}\n \n {this.depth=parseFloat(e.value),t()})})}">\n
\n
\n ${M.gear}\n \n {this.scale=parseFloat(e.value),t()})})}">\n
\n
\n ${M.arrow_both}\n \n {this.width=parseFloat(e.value),t()})})}">\n
\n
\n ${M.square}\n \n
\n
\n
`}getSize(){return[this.width,this.state.height]}draw(e,t){this.generator.reset(this.state,this.depth,this.scale,this.offsetX,this.width);const i=t.data;for(let e=0;e0?255:a,i[n+1]=a,i[n+2]=a,i[n+3]=255}}}onDrag(e,t){this.offsetX-=e}getColor(e,t){return this.debug?-e[t]/2+128:e[t]>0?0:e[t+1]>0?150:255}},decorator:new class extends B{constructor(){super(),this.Features={decorated:(e,t)=>this.getPositions(t,null==e?void 0:e.decorator).flatMap(t=>this.getPlacements(t,null==e?void 0:e.feature)),random_boolean_selector:(e,t)=>{const i=this.random()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false;return this.getPlacements(t,i)},random_selector:(e,t)=>{var i,o;for(const r of null!==(i=null==e?void 0:e.features)&&void 0!==i?i:[])if(this.random()<(null!==(o=null==r?void 0:r.chance)&&void 0!==o?o:0))return this.getPlacements(t,r.feature);return this.getPlacements(t,null==e?void 0:e.default)},simple_random_selector:(e,t)=>{var i,o,r;const n=null===(i=null==e?void 0:e.features)||void 0===i?void 0:i[this.nextInt(null!==(r=null===(o=null==e?void 0:e.features)||void 0===o?void 0:o.length)&&void 0!==r?r:0)];return this.getPlacements(t,n)}},this.Decorators={chance:(e,t)=>{var i;return this.random()<1/(null!==(i=null==e?void 0:e.chance)&&void 0!==i?i:1)?[t]:[]},count:(e,t)=>{var i;return new Array(this.sampleUniformInt(null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1)).fill(t)},count_extra:(e,t)=>{var i,o,r;let n=null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1;return null!==(o=this.random(){var i;return new Array(this.sampleUniformInt(null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1)).fill(t).map(e=>[e[0]+this.nextInt(16),e[1],e[2]+this.nextInt(16)])},count_noise:(e,t)=>{const i=this.biomeInfoNoise.getValue(t[0]/200,0,t[2]/200){const i=Math.max(1,e.noise_factor),o=this.biomeInfoNoise.getValue(t[0]/i,0,t[2]/i),r=Math.max(0,Math.ceil((o+e.noise_offset)*e.noise_to_count_ratio));return new Array(r).fill(t)},dark_oak_tree:(e,t)=>[...new Array(16)].map((e,i)=>{const o=4*Math.floor(i/4)+1+this.nextInt(3)+t[0];return[o,Math.max(63,V[m(0,63,o)]),4*Math.floor(i%4)+1+this.nextInt(3)+t[2]]}),decorated:(e,t)=>this.getPositions(t,null==e?void 0:e.outer).flatMap(t=>this.getPositions(t,null==e?void 0:e.inner)),depth_average:(e,t)=>{var i,o,r,n;const a=this.nextInt(null!==(i=null==e?void 0:e.spread)&&void 0!==i?i:0)+this.nextInt(null!==(o=null==e?void 0:e.spread)&&void 0!==o?o:0)-(null!==(r=e.spread)&&void 0!==r?r:0)+(null!==(n=null==e?void 0:e.baseline)&&void 0!==n?n:0);return this.decorateY(t,a)},emerald_ore:(e,t)=>{const i=3+this.nextInt(6);return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(28)+4,this.nextInt(16)+t[2]])},fire:(e,t)=>{const i=this.nextInt(this.nextInt(this.sampleUniformInt(null==e?void 0:e.count)))+1;return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(120)+4,this.nextInt(16)+t[2]])},glowstone:(e,t)=>{const i=this.nextInt(this.nextInt(this.sampleUniformInt(null==e?void 0:e.count))+1);return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(120)+4,this.nextInt(16)+t[2]])},heightmap:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,i)},heightmap_spread_double:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,this.nextInt(2*i))},heightmap_world_surface:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,i)},iceberg:(e,t)=>[[this.nextInt(8)+4+t[0],t[1],this.nextInt(8)+4+t[2]]],lava_lake:(e,t)=>{var i,o;if(0===this.nextInt((null!==(i=e.chance)&&void 0!==i?i:1)/10)){const i=this.nextInt(this.nextInt(248)+8);if(i<63||0==this.nextInt((null!==(o=null==e?void 0:e.chance)&&void 0!==o?o:1)/8)){return[[this.nextInt(16)+t[0],i,this.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t)=>{var i,o,r;const n=this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0);return this.decorateY(t,n)},range_biased:(e,t)=>{var i,o,r;const n=this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0));return this.decorateY(t,n)},range_very_biased:(e,t)=>{var i,o,r,n;const a=this.nextInt(this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0))+(null!==(n=null==e?void 0:e.bottom_offset)&&void 0!==n?n:0));return this.decorateY(t,a)},spread_32_above:(e,t)=>{const i=this.nextInt(t[1]+32);return this.decorateY(t,i)},top_solid_heightmap:(e,t)=>{const i=V[m(0,63,t[0])];return this.decorateY(t,i)},magma:(e,t)=>{const i=this.nextInt(t[1]+32);return this.decorateY(t,i)},square:(e,t)=>[[t[0]+this.nextInt(16),t[1],t[2]+this.nextInt(16)]],water_lake:(e,t)=>{var i;return 0===this.nextInt(null!==(i=e.chance)&&void 0!==i?i:1)?[[this.nextInt(16)+t[0],this.nextInt(256),this.nextInt(16)+t[2]]]:[]}},this.seed=c(),this.perspective="top",this.size=[64,128,48],this.random=z()(this.seed),this.biomeInfoNoise=new $(c(),0,[1]),this.usedFeatures=[]}getName(){return"decorator"}active(e){var t;return"worldgen/feature"===(null===(t=ue.model.get())||void 0===t?void 0:t.id)&&e.equals(new o.Path(["config","decorator"]))&&"minecraft:decorated"===e.pop().pop().push("type").get()}menu(e,t){return`\n
\n ${M.package}\n
`}getSize(){return"top"===this.perspective?[this.size[0],this.size[2]]:[this.size[0],this.size[1]]}draw(e,t){const i=JSON.parse(JSON.stringify(e.data));this.random=z()(this.seed),this.usedFeatures=[];let o=[];for(let e=0;ee.pos.every((e,t)=>e>=0&&em(50,205,e)),o)}for(let e=0;ee.schema).forEach(e=>pe[e.id]=new o.DataModel(Object(o.ObjectNode)({})));const ue={version:new h("schema_version",b.versions[b.versions.length-1].id).watch(ae),theme:new h("theme","dark").watch(ne),language:new h("language","en").watch(se),model:new g(null),collections:new g(null),jsonOutput:new g(""),errorsVisible:new g(!1),treeMinimized:new g(!1),jsonError:new g(null),preview:new g(null).watch(e=>{var t;return ce(null!==(t=null==e?void 0:e.getName())&&void 0!==t?t:"none")}),schemasLoaded:new g(!1),localesLoaded:new g(!1),loaded:new g(!1),mobilePanel:new g("tree"),settings:new class{constructor(e){var t;this.local_storage=e;const i=JSON.parse(null!==(t=localStorage.getItem(e))&&void 0!==t?t:"{}");Array.isArray(i.fields)||(i.fields=[]),this.fields=i.fields,this.save()}save(){const e=JSON.stringify({fields:this.fields});localStorage.setItem(this.local_storage,e),this.fields=[...this.fields.filter(e=>null==e?void 0:e.path),{}]}}("generator_settings"),blockStateRegistry:{}};ue.version.watchRun(e=>de(void 0,void 0,void 0,(function*(){ue.schemasLoaded.set(!1),yield function(e){return de(this,void 0,void 0,(function*(){ue.blockStateRegistry={};const t=le[e].getCollections();ue.collections.set(t),yield O(t,e);const i=le[e].getSchemas(t);b.models.filter(e=>e.schema).filter(e=>fe(ue.version.get(),e.minVersion)).forEach(e=>{const t=pe[e.id],o=i.get(e.schema);o&&(t.schema=o,"{}"===JSON.stringify(t.data)&&(t.reset(o.default(),!0),t.history=[JSON.stringify(t.data)],t.historyIndex=0))})}))}(e),ue.schemasLoaded.set(!0)}))),ue.theme.watchRun(e=>document.documentElement.setAttribute("data-theme",e));let _e=!1;function fe(e,t,i){const o=b.versions.findIndex(t=>t.id===e),r=t?b.versions.findIndex(e=>e.id===t):0,n=i?b.versions.findIndex(e=>e.id===i):b.versions.length-1;return r<=o&&o<=n}ue.language.watchRun(e=>de(void 0,void 0,void 0,(function*(){ue.localesLoaded.set(!1),yield function(e){return de(this,void 0,void 0,(function*(){if(R[e]&&(_e||"en"!==e))return;const t=yield(yield fetch(`/locales/${e}.json`)).json();"en"===e&&(_e=!0),R[e]=t}))}(e),ue.localesLoaded.set(!0)}))),ue.localesLoaded.watch(e=>{e&&document.querySelectorAll("[data-i18n]").forEach(e=>{e.textContent=E(e.attributes.getNamedItem("data-i18n").value)}),ue.loaded.set(e&&ue.schemasLoaded.get())}),ue.schemasLoaded.watch(e=>{ue.loaded.set(e&&ue.localesLoaded.get())}),ue.mobilePanel.watchRun(e=>{document.body.setAttribute("data-panel",e)}),document.addEventListener("keyup",e=>{e.ctrlKey&&"z"===e.key?(K(!0),pe[ue.model.get().id].undo()):e.ctrlKey&&"y"===e.key&&(Z(!0),pe[ue.model.get().id].redo())});const ge=(e,t,i,o)=>{const r=()=>{var e;return M[(null!==(e=t.find(e=>e[0]===i.get()))&&void 0!==e?e:t[0])[1]]};return`
{const e=t.findIndex(e=>e[0]===i.get());i.set(t[(e+1)%t.length][0])}),i.watch(t=>e.innerHTML=r(),"toggle")})}">${r()}
`},he=(e,t,i="/")=>{const o=e.register(t=>{const i=()=>{const t=[["preview","play"],["tree","note"],["source","code"]];return t.map(e=>e[0]).includes(ue.mobilePanel.get())?t.filter(e=>e[0]!==ue.mobilePanel.get()).filter(e=>"preview"!==e[0]||null!==ue.preview.get()).map(t=>`
\n ${M[t[1]]}\n
`).join(""):""};ue.mobilePanel.watchRun(()=>{e.mount(t,i(),!1)}),ue.preview.watchRun((o,r)=>{null===o&&"preview"===ue.mobilePanel.get()&&ue.mobilePanel.set("tree"),null!==o&&null!==r||e.mount(t,i(),!1)})});return`
\n
\n ${M.three_bars}\n

${t}

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

    404

    \n

    ${E("not_found.description")}

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

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

    \n
      \n
      `};var we="undefined"!=typeof window?window:null,Oe=null===we,ke=Oe?void 0:we.document,xe=function(){return!1},je=Oe?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=ke.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",Se=function(e){return"string"==typeof e||e instanceof String},Me=function(e){if(Se(e)){var t=ke.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},Ce=function(e,t,i){var o=e[t];return void 0!==o?o:i},ze=function(e,t,i,o){if(t){if("end"===o)return 0;if("center"===o)return e/2}else if(i){if("start"===o)return 0;if("center"===o)return e/2}return e},Le=function(e,t){var i=ke.createElement("div");return i.className="gutter gutter-"+t,i},$e=function(e,t,i){var o={};return Se(t)?o[e]=t:o[e]=je+"("+t+"% - "+i+"px)",o},Pe=function(e,t){var i;return(i={})[e]=t+"px",i},Be=function(e,t){if(void 0===t&&(t={}),Oe)return{};var i,o,r,n,a,s,c=e;Array.from&&(c=Array.from(c));var d=Me(c[0]).parentNode,l=getComputedStyle?getComputedStyle(d):null,m=l?l.flexDirection:null,p=Ce(t,"sizes")||c.map((function(){return 100/c.length})),u=Ce(t,"minSize",100),_=Array.isArray(u)?u:c.map((function(){return u})),f=Ce(t,"expandToMin",!1),g=Ce(t,"gutterSize",10),h=Ce(t,"gutterAlign","center"),b=Ce(t,"snapOffset",30),v=Ce(t,"dragInterval",1),y=Ce(t,"direction","horizontal"),N=Ce(t,"cursor","horizontal"===y?"col-resize":"row-resize"),w=Ce(t,"gutter",Le),O=Ce(t,"elementStyle",$e),k=Ce(t,"gutterStyle",Pe);function x(e,t,o,r){var n=O(i,t,o,r);Object.keys(n).forEach((function(t){e.style[t]=n[t]}))}function j(){return s.map((function(e){return e.size}))}function S(e){return"touches"in e?e.touches[0][o]:e[o]}function M(e){var t=s[this.a],i=s[this.b],o=t.size+i.size;t.size=e/this.size*o,i.size=o-e/this.size*o,x(t.element,t.size,this._b,t.i),x(i.element,i.size,this._c,i.i)}function C(e){var i,o=s[this.a],r=s[this.b];this.dragging&&(i=S(e)-this.start+(this._b-this.dragOffset),v>1&&(i=Math.round(i/v)*v),i<=o.minSize+b+this._b?i=o.minSize+this._b:i>=this.size-(r.minSize+b+this._c)&&(i=this.size-(r.minSize+this._c)),M.call(this,i),Ce(t,"onDrag",xe)(j()))}function z(){var e=s[this.a].element,t=s[this.b].element,o=e.getBoundingClientRect(),a=t.getBoundingClientRect();this.size=o[i]+a[i]+this._b+this._c,this.start=o[r],this.end=o[n]}function L(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var i=e[a];return 0===i?null:i-="horizontal"===y?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(d);if(null===t)return e;if(_.reduce((function(e,t){return e+t}),0)>t)return e;var i=0,o=[],r=e.map((function(r,n){var a=t*r/100,s=ze(g,0===n,n===e.length-1,h),c=_[n]+s;return a0&&o[r]-i>0){var a=Math.min(i,o[r]-i);i-=a,n=e-a}return n/t*100}))}function $(){var e=s[this.a].element,i=s[this.b].element;this.dragging&&Ce(t,"onDragEnd",xe)(j()),this.dragging=!1,we.removeEventListener("mouseup",this.stop),we.removeEventListener("touchend",this.stop),we.removeEventListener("touchcancel",this.stop),we.removeEventListener("mousemove",this.move),we.removeEventListener("touchmove",this.move),this.stop=null,this.move=null,e.removeEventListener("selectstart",xe),e.removeEventListener("dragstart",xe),i.removeEventListener("selectstart",xe),i.removeEventListener("dragstart",xe),e.style.userSelect="",e.style.webkitUserSelect="",e.style.MozUserSelect="",e.style.pointerEvents="",i.style.userSelect="",i.style.webkitUserSelect="",i.style.MozUserSelect="",i.style.pointerEvents="",this.gutter.style.cursor="",this.parent.style.cursor="",ke.body.style.cursor=""}function P(e){if(!("button"in e)||0===e.button){var i=s[this.a].element,o=s[this.b].element;this.dragging||Ce(t,"onDragStart",xe)(j()),e.preventDefault(),this.dragging=!0,this.move=C.bind(this),this.stop=$.bind(this),we.addEventListener("mouseup",this.stop),we.addEventListener("touchend",this.stop),we.addEventListener("touchcancel",this.stop),we.addEventListener("mousemove",this.move),we.addEventListener("touchmove",this.move),i.addEventListener("selectstart",xe),i.addEventListener("dragstart",xe),o.addEventListener("selectstart",xe),o.addEventListener("dragstart",xe),i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",this.gutter.style.cursor=N,this.parent.style.cursor=N,ke.body.style.cursor=N,z.call(this),this.dragOffset=S(e)-this.end}}"horizontal"===y?(i="width",o="clientX",r="left",n="right",a="clientWidth"):"vertical"===y&&(i="height",o="clientY",r="top",n="bottom",a="clientHeight"),p=L(p);var B=[];function A(e){var t=e.i===B.length,i=t?B[e.i-1]:B[e.i];z.call(i);var o=t?i.size-e.minSize-i._c:e.minSize+i._b;M.call(i,o)}return(s=c.map((function(e,t){var o,r={element:Me(e),size:p[t],minSize:_[t],i:t};if(t>0&&((o={a:t-1,b:t,dragging:!1,direction:y,parent:d})._b=ze(g,t-1==0,!1,h),o._c=ze(g,!1,t===c.length-1,h),"row-reverse"===m||"column-reverse"===m)){var n=o.a;o.a=o.b,o.b=n}if(t>0){var a=w(t,y,r.element);!function(e,t,o){var r=k(i,t,o);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}(a,g,t),o._a=P.bind(o),a.addEventListener("mousedown",o._a),a.addEventListener("touchstart",o._a),d.insertBefore(a,r.element),o.gutter=a}return x(r.element,r.size,ze(g,0===t,t===c.length-1,h),t),t>0&&B.push(o),r}))).forEach((function(e){var t=e.element.getBoundingClientRect()[i];t0){var o=B[i-1],r=s[o.a],n=s[o.b];r.size=t[i-1],n.size=e,x(r.element,r.size,o._b,r.i),x(n.element,n.size,o._c,n.i)}}))},getSizes:j,collapse:function(e){A(s[e])},destroy:function(e,t){B.forEach((function(o){if(!0!==t?o.parent.removeChild(o.gutter):(o.gutter.removeEventListener("mousedown",o._a),o.gutter.removeEventListener("touchstart",o._a)),!0!==e){var r=O(i,o.a.size,o._b);Object.keys(r).forEach((function(e){s[o.a].element.style[e]="",s[o.b].element.style[e]=""}))}}))},parent:d,pairs:B}};const Ae=(e,t,i)=>{var o;return`\n
      {Be([].slice.call(e.children),Object.assign({snapOffset:0},t))})}>\n ${i.join("")}\n
      \n`},Re={base(){},choice({switchNode:e},t,i){return e.hook(this,t,i)},object:({},e,t)=>me.biome_noise.active(e)?Ie(me.biome_noise,e,t):me.noise_settings.active(e)?Ie(me.noise_settings,e,t):me.decorator.active(e)?Ie(me.decorator,e,t):void 0,string({},e,t){if(e.endsWith(new o.Path(["biome"]))&&e.pop().pop().endsWith(new o.Path(["generator","biome_source","biomes"]))){const i=me.biome_noise,o=e.get(),r=t.onChange(e=>{i.setBiomeColor(o,e.value)});return``}}};function Ie(e,t,i){return``}const Ee={base:()=>null,object({filter:e,getActiveFields:t},i,r,n=0){if(n>2)return null;if(e){const t=Object(o.relativePath)(i,e);if(t&&t.pop().equals(r))return t.last()}const a=t(i);for(const e of Object.keys(a)){const t=a[e].hook(this,i.push(e),r,n+=1);if(t)return t}return null}},qe={base:()=>!1,object({node:e,getActiveFields:t},i){const o=0===i.modelArr.length?null:e.hook(Ee,i,i),r=Object.entries(t(i)).filter(([e,t])=>o!==e&&t.enabled(i));if(1!==r.length)return!1;const n=i.push(r[0][0]);return"object"===r[0][1].type(n)&&null===r[0][1].hook(Ee,n,n)}},Te=new o.DataModel(Object(o.MapNode)(Object(o.StringNode)(),Object(o.StringNode)()),{historyMax:0}),De={base:()=>["","",""],boolean({node:e},t,i,o){const r=o.onClick(o=>{t.model.set(t,!(!e.optional()||!1!==i)&&void 0)}),n=o.onClick(o=>{t.model.set(t,!e.optional()||!0!==i||void 0)});return["",`${d(E("false"))}\n ${d(E("true"))}`,""]},choice({choices:e,config:t,switchNode:i},r,n,a){const s=i.activeCase(r,!0),c=(null==t?void 0:t.context)?new o.ModelPath(r.getModel(),new o.Path(r.getArray(),[t.context])):r,l=(null==t?void 0:t.choiceContext)?new o.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new o.Path([],[t.context]):r,[m,p,u]=s.node.hook(this,c,n,a);if(1===e.length)return[m,p,u];return[m,``+p,u]},list({children:e},t,i,o){const r=o.onClick(o=>{Array.isArray(i)||(i=[]),t.model.set(t,[e.default(),...i])}),n=o.onClick(o=>{Array.isArray(i)||(i=[]),t.model.set(t,[...i,e.default()])}),a=``;let s="";return Array.isArray(i)&&(s=i.map((i,r)=>{const n=o.onClick(e=>t.model.set(t.push(r),void 0)),a=t.push(r).contextPush("entry"),s=e.category(a),[c,l,m]=e.hook(this,a,i,o);return`
      \n
      \n ${We(a,o)}\n ${Je(a,o)}\n \n ${c}\n \n ${l}\n
      \n ${m?`
      ${m}
      `:""}\n
      `}).join(""),i.length>2&&(s+=`
      \n
      \n \n
      \n
      `)),["",a,s]},map({keys:e,children:t,config:i},r,n,a){var s,c,l;const m=new o.ModelPath(Te,new o.Path([Ue(r.toString())])),p=a.onClick(e=>{const i=m.get();r.model.set(r.push(i),t.default())});let u="";const _="block_state_map"===(null===(s=i.validation)||void 0===s?void 0:s.validator)?ue.blockStateRegistry[Object(o.relativePath)(r,i.validation.params.id).get()]:null;if(!_||_.properties){u=(_?Object(o.StringNode)(null,{enum:Object.keys(null!==(c=_.properties)&&void 0!==c?c:{})}):e).hook(this,m,null!==(l=m.get())&&void 0!==l?l:"",a)[1]+``}let f="";return"object"==typeof n&&void 0!==n&&(f=Object.keys(n).map(e=>{const i=a.onClick(t=>r.model.set(r.push(e),void 0)),s=r.modelPush(e),c=t.category(s),[l,m,p]=(_?Object(o.StringNode)(null,_.properties&&{enum:_.properties[e]}):t).hook(this,s,n[e],a);return`
      \n
      \n ${We(s,a)}\n ${Je(s,a)}\n \n ${l}\n \n ${m}\n
      \n ${p?`
      ${p}
      `:""}\n
      `}).join("")),["",u,f]},number({integer:e,config:t},i,o,r){var n;const a=r.onChange(o=>{const r=o.value;let n=(null==t?void 0:t.color)?parseInt(r.slice(1),16):e?parseInt(r):parseFloat(r);i.model.set(i,n)});if(null==t?void 0:t.color){return["",``,""]}return["",``,""]},object({node:e,getActiveFields:t,getChildModelPath:i},o,r,n){var a;let s="";e.optional()&&(s=void 0===r?``:``);let c="",l="";if("object"==typeof r&&void 0!==r&&(!e.optional()||void 0!==r)){const m=t(o),p=Object.keys(m),u=0===o.modelArr.length?null:e.hook(Ee,o,o);!u||m[u].hidden&&m[u].hidden()||(s+=We(o.push(u),n),s+=Je(o.push(u),n),c+=m[u].hook(this,o.push(u),r[u],n)[1]);const _=(ue.treeMinimized.get()?p.filter(e=>void 0!==r[e]):p).filter(e=>u!==e).filter(e=>m[e].enabled(o));if(e.hook(qe,o)){const e=null!==(a=r[_[0]])&&void 0!==a?a:{};l=m[_[0]].hook(this,o.push(_[0]),e,n)[2]}else l=_.map(e=>{var t;const a=m[e],s=i(o,e),c=s.getContext().join("."),l=ue.settings.fields.find(e=>(null==e?void 0:e.path)&&c.endsWith(e.path));if(a.hidden&&a.hidden()||(null==l?void 0:l.hidden))return"";const p=a.category(s),[u,_,f]=a.hook(this,s,r[e],n);return"Properties"===e&&""===_?"":`
      \n
      \n ${We(s,n)}\n ${Je(s,n)}\n ${u}\n \n ${_}\n
      \n ${f?`
      ${f}
      `:""}\n
      `}).join("")}return c+=e.hook(Re,o,n)||"",["",s+c,l]},string(e,t,i,o){const r=o.register(e=>{e.value=null!=i?i:"",e.addEventListener("change",i=>{const o=e.value;t.model.set(t,0===o.length?void 0:o),i.stopPropagation()})}),n=e.node.hook(Re,t,o)||"";return["",Fe(e,t,r)+n,""]}};function Fe({node:e,getValues:t,config:i},r,n){const a=t();if((null===(s=i)||void 0===s?void 0:s.enum)&&!i.additional){return Ve(e,"string"==typeof i.enum?new o.Path(r.getArray(),[i.enum]):r,a,n)}var s;if(i&&function(e){var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)}(i)&&"resource"===i.validator&&"string"==typeof i.params.pool&&a.length>0){const t=new o.Path(r.getArray(),[i.params.pool]);if(q(t.contextPush(a[0]).getContext()))return Ve(e,t,a,n)}const l=c();return`\n ${0===a.length?"":`\n ${a.map(e=>``}`}function Ve(e,t,i,o){return``}function Ue(e){var t,i=0;for(t=0;t`
      {e.getElementsByTagName("span")[0].classList.remove("show")},{capture:!0,once:!0})})}">\n ${i}${M[t]}\n
      `,Ge=(e,t)=>`data-id="${t.register(t=>{const i=()=>{var i;const o=document.createElement("div");o.classList.add("node-menu");const r=q(e.contextPush("help").getContext(),[],6);r&&o.insertAdjacentHTML("beforeend",`${r}`);const n=e.getContext().join(".");o.insertAdjacentHTML("beforeend",`\n `),null===(i=o.querySelector(".menu-item .btn"))||void 0===i||i.addEventListener("click",()=>{const e=document.createElement("input");e.value=n,t.appendChild(e),e.select(),document.execCommand("copy"),t.removeChild(e)}),t.appendChild(o),document.body.addEventListener("click",()=>{try{t.removeChild(o)}catch(e){}},{capture:!0,once:!0}),document.body.addEventListener("contextmenu",()=>{try{t.removeChild(o)}catch(e){}},{capture:!0,once:!0})};t.addEventListener("contextmenu",e=>{i(),e.preventDefault()});let o=null;t.addEventListener("touchstart",()=>{o=setTimeout(()=>{i(),o=null},800)}),t.addEventListener("touchend",()=>{o&&(clearTimeout(o),o=null)})})}"`;var Xe=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const Ke=(e,t)=>{const i=()=>{if(ue.loaded.get()){const i=new o.ModelPath(t),r=t.schema.hook(De,i,t.data,e),n=t.schema.category(i);return r[1]?`
      \n
      ${r[1]}
      \n
      ${r[2]}
      \n
      `:r[2]}return'
      '},r=e.register(o=>{ue.loaded.watchRun(t=>{t?e.mount(o,i(),!1):new Promise(e=>setTimeout(e,100)).then(()=>{ue.loaded.get()||e.mount(o,i(),!1)})}),ue.treeMinimized.watch(()=>{e.mount(o,i(),!1)}),t.addListener({invalidated(){e.mount(o,i(),!1)}}),me.biome_noise.biomeColors.watch(()=>{e.mount(o,i(),!1)},"tree-panel")}),n=ue.model.get(),a=((null==n?void 0:n.category)?(null==n?void 0:n.category)+"/":"")+(null==n?void 0:n.schema);let s;const c=e.register(e=>s=e),d=i=>{var o,r;const s=(null!=i?i:"").trim().split(" ");return(null!==(r=null===(o=ue.collections.get())||void 0===o?void 0:o.get(a))&&void 0!==r?r:[]).map(e=>e.slice(10)).filter(e=>s.every(t=>e.includes(t))).map(i=>`
      ${i}
      `).join("")};return`
      \n
      \n
      \n
      \n ${M.archive}\n
      \n
      \n
      \n ${M.search}{e.mount(s,d(t.value),!1)})}">\n
      \n
      \n
      \n
      \n
      \n
      \n ${M.tag}\n \n ${ue.version.get()}\n \n
      \n
      \n ${b.versions.filter(e=>{var t;return fe(e.id,null!==(t=ue.model.get().minVersion)&&void 0!==t?t:"1.15")}).reverse().map(t=>`\n
      \n ${t.id}\n
      \n `).join("")}\n
      \n
      \n
      \n
      \n ${M.kebab_horizontal}\n
      \n
      \n
      \n ${M.history}\n
      \n
      {const e=!ue.treeMinimized.get();ue.treeMinimized.set(e),oe(e)}),ue.treeMinimized.watchRun(i=>{e.mount(t,`${M[i?"unfold":"fold"]}`,!1)})})}">
      \n
      \n ${M.arrow_left}\n
      \n
      \n ${M.arrow_right}\n
      \n
      \n
      \n
      \n
      \n
      `},Ze={base:({},e,t)=>t,choice({switchNode:e},t,i){return e.hook(this,t,i)},list({children:e},t,i){return Array.isArray(i)?i.map((i,o)=>e.hook(this,t.push(o),i)):i},map({children:e},t,i){if(void 0===i)return;let o={};return Object.keys(i).forEach(r=>o[r]=e.hook(this,t.push(r),i[r])),o},object({getActiveFields:e},t,i){if(null==i||"object"!=typeof i)return i;let o={};const r=e(t);return Object.keys(r).filter(e=>r[e].enabled(t)).forEach(e=>{o[e]=r[e].hook(this,t.push(e),i[e])}),o}},Qe=(e,t)=>{const i=e=>{const i=t.schema.hook(Ze,new o.ModelPath(t),t.data);ue.jsonOutput.set(JSON.stringify(i,null,2)),e.value=ue.jsonOutput.get()},r=e.register(e=>{i(e),t.addListener({invalidated(){ue.jsonError.set(null),i(e)}}),e.addEventListener("change",()=>{const i=e.value;try{t.reset(JSON.parse(i)),ue.jsonError.set(null)}catch(e){ue.jsonError.set(e.message)}})});return`
      \n
      \n \n
      \n ${M.clippy}\n \n
      \n
      \n
      \n ${M.kebab_horizontal}\n
      \n
      \n
      \n ${M.download}\n \n
      \n
      {i.style.display="none"},{capture:!0,once:!0}),i.select(),document.execCommand("copy"),te()})}">\n ${M.link}\n
      \n
      \n
      \n
      \n \n
      `},et=(e,t)=>`
      {const e=ue.preview.get();if(e&&e.path&&e.path.withModel(t).get()){const i=o.getContext("2d"),r=e.path.withModel(t).get();e.state=JSON.parse(JSON.stringify(r));const[n,a]=e.getSize();o.width=n,o.height=a;const s=i.createImageData(n,a);e.draw(t,s),i.putImageData(s,0,0)}else ue.preview.set(null)};let n;t.addListener({invalidated:r}),ue.preview.watchRun(t=>{var o,n;t&&(t.redraw=r,r(),e.mount(i.querySelector(".panel-controls"),`\n ${null!==(n=null===(o=ue.preview.get())||void 0===o?void 0:o.menu(e,r))&&void 0!==n?n:""}\n
      \n ${M.x}\n
      `,!1))},"preview-panel"),i.addEventListener("mousedown",e=>{n=[e.offsetX,e.offsetY]}),i.addEventListener("mousemove",e=>{var t,i;if(void 0!==n){if(null===(t=ue.preview.get())||void 0===t?void 0:t.onDrag){const[t,a]=ue.preview.get().getSize(),s=(e.offsetX-n[0])*t/o.clientWidth,c=(e.offsetY-n[1])*a/o.clientHeight;0===s&&0===c||(null===(i=ue.preview.get())||void 0===i||i.onDrag(s,c),r())}n=[e.offsetX,e.offsetY]}}),i.addEventListener("mouseup",e=>{n=void 0})})}">\n
      \n \n
      `,tt=(it={base(){},map({config:e},t,i){var r,n,a;if("block_state_map"===(null===(r=e.validation)||void 0===r?void 0:r.validator)){const r=Object(o.relativePath)(t,e.validation.params.id).get(),s=t.getModel().errors,c=null!==(a=(null!==(n=ue.blockStateRegistry[r])&&void 0!==n?n:{}).properties)&&void 0!==a?a:{},d=Object.keys(null!=i?i:{});Object.keys(c).forEach(e=>{d.includes(e)?c[e].includes(i[e])||s.add(t.push(e),"error.invalid_enum_option",i[e]):"Properties"===t.last()&&s.add(t,"error.block_state.missing_property",e)})}},object({node:e,getActiveFields:t},i,o){let r=t(i);const n=0===i.modelArr.length?null:e.hook(Ee,i,i),a=Object.keys(r).filter(e=>n!==e).filter(e=>r[e].enabled(i));1===a.length&&"object"===r[a[0]].type(i.push(a[0]))&&r[a[0]].optional()&&"{}"===JSON.stringify(o[a[0]])&&i.push(a[0]).set(void 0)}},Object.assign(Object.assign({},it),{choice(e,t,i,...o){var r;(null!==(r=it.choice)&&void 0!==r?r:it.base)(e,t,i,...o),e.switchNode.hook(this,t,i,...o)},list(e,t,i,...o){var r;(null!==(r=it.list)&&void 0!==r?r:it.base)(e,t,i,...o),Array.isArray(i)&&i.forEach((i,r)=>e.children.hook(this,t.push(r),i,...o))},map(e,t,i,...o){var r;(null!==(r=it.map)&&void 0!==r?r:it.base)(e,t,i,...o),"object"==typeof i&&Object.keys(i).forEach(r=>e.children.hook(this,t.push(r),i[r],...o))},object(e,t,i,...o){var r;if((null!==(r=it.object)&&void 0!==r?r:it.base)(e,t,i,...o),null===i||"object"!=typeof i)return;const n=e.getActiveFields(t);Object.keys(n).filter(e=>n[e].enabled(t)).forEach(e=>{n[e].hook(this,t.push(e),i[e],...o)})}}));var it;const ot=e=>{const t=pe[ue.model.get().id];t.listeners=[];const i=()=>ue.preview.get()?Ae(e,{direction:"vertical",sizes:[60,40]},[Qe(e,t),et(e,t)]):Qe(e,t),r=()=>{var e;const i=ue.preview.get(),o=null===(e=null==i?void 0:i.path)||void 0===e?void 0:e.withModel(t);o&&o.get()&&(null==i?void 0:i.active(o))||ue.preview.set(null)};t.addListener({invalidated:()=>{r(),t.schema.hook(tt,new o.ModelPath(t,new o.Path),t.data,t.errors)}}),ue.schemasLoaded.watch(e=>{e&&(t.validate(),t.invalidate(),r())},"generator"),ue.localesLoaded.watch(e=>{e&&ue.schemasLoaded.get()&&t.invalidate()},"generator"),ue.version.watchRun(e=>{const t=ue.model.get().minVersion;t&&!fe(e,t)&&ue.version.set(t)},"generator");const n=e.register(t=>{ue.preview.watch((o,r)=>{o&&r||e.mount(t,i(),!1)},"generator")}),a="string"==typeof ue.model.get().category?`/${ue.model.get().category}/`:void 0;return`${he(e,ue.model.get().name+" Generator",a)}\n
      \n ${Ae(e,{direction:"horizontal",sizes:[66,34]},[Ke(e,t),`
      ${i()}
      `])}\n
      \n ${((e,t)=>{const i=()=>ue.jsonError.get()?`
      \n
      \n ${d(ue.jsonError.get())}\n
      \n
      \n
      \n ${M.issue_opened}\n
      `:0===t.errors.count()?"":`${ue.errorsVisible.get()?`\n
      \n ${t.errors.getAll().map(e=>`\n
      \n ${e.path.toString()}\n -\n ${d(E(e.error,e.params))}\n
      \n `).join("")}\n
      \n `:""}\n ${ge(e,[[!0,"chevron_down"],[!1,"issue_opened"]],ue.errorsVisible)}`;return`\n
      \n ${i()}\n
      `})(e,t)}`};var rt=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const nt=b.models.filter(e=>!0===e.category),at=()=>rt(void 0,void 0,void 0,(function*(){var e,t;const i=location.pathname.split("/").filter(e=>e),o=new URLSearchParams(location.search),r=document.getElementById("app");let n=E("title.home"),a=e=>"",s="home";if(0===i.length)ue.model.set({id:"",name:"Data Pack",category:!0,minVersion:"1.15"}),a=ve;else if("settings"===i[0]&&"fields"===i[1])s="settings",a=Ne;else if(1===i.length&&nt.map(e=>e.id).includes(i[0]))ue.model.set(nt.find(e=>e.id===i[0])),a=ve;else{s="tree";const r=null!==(e=b.models.find(e=>e.id===i.join("/")))&&void 0!==e?e:null;if(ue.model.set(r),r){if(o.has("q"))try{const e=atob(null!==(t=o.get("q"))&&void 0!==t?t:"");pe[r.id].reset(JSON.parse(e))}catch(e){}a=ot,n=E("title.generator",[E(r.id)])}else a=ye}const c=b.versions.filter(e=>{var t;return fe(e.id,null===(t=ue.model.get())||void 0===t?void 0:t.minVersion)}).map(e=>e.id).join(", ");document.title=`${n} Minecraft ${c}`,ue.mobilePanel.set(s);const d=new T;d.mount(r,a(d),!0)}));window.addEventListener("popstate",at),document.addEventListener("DOMContentLoaded",()=>{document.body.addEventListener("click",e=>{if(e.target instanceof Element&&e.target.hasAttribute("data-link")&&e.target.hasAttribute("href")){e.preventDefault();const t=e.target.getAttribute("href");J(t),history.pushState(null,"",t),at()}}),at()})}]); +!function(e){var t={};function i(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,o){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(o,r,function(t){return e[t]}.bind(null,r));return o},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=98)}([function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||t.hasOwnProperty(i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),r(i(27),t),r(i(11),t),r(i(12),t),r(i(5),t),r(i(28),t),r(i(29),t),r(i(14),t),r(i(30),t),r(i(31),t),r(i(32),t),r(i(33),t),r(i(34),t),r(i(15),t),r(i(35),t),r(i(36),t),r(i(37),t)},function(e){e.exports=JSON.parse('{"languages":[{"code":"de","name":"Deutsch"},{"code":"en","name":"English"},{"code":"fr","name":"Français"},{"code":"it","name":"Italiano"},{"code":"ja","name":"日本語"},{"code":"pl","name":"Polski"},{"code":"pt","name":"Português"},{"code":"ru","name":"Русский"},{"code":"zh-cn","name":"简体中文"},{"code":"zh-tw","name":"正體中文"}],"versions":[{"id":"1.15","refs":{"mcdata_master":"13355f7"}},{"id":"1.16","refs":{"mcdata_master":"1.16.4","vanilla_datapack_data":"1.16.4-data","vanilla_datapack_summary":"1.16.4-summary"}},{"id":"1.17","refs":{"mcdata_master":"master","vanilla_datapack_data":"data","vanilla_datapack_summary":"summary"},"dynamic":true}],"models":[{"id":"loot-table","name":"Loot Table","path":"loot_tables","schema":"loot_table"},{"id":"predicate","name":"Predicate","path":"predicates","schema":"predicate"},{"id":"item-modifier","name":"Item Modifier","path":"item_modifiers","schema":"item_modifier","minVersion":"1.17"},{"id":"advancement","name":"Advancement","path":"advancements","schema":"advancement"},{"id":"dimension","name":"Dimension","path":"dimension","schema":"dimension","minVersion":"1.16"},{"id":"dimension-type","name":"Dimension Type","path":"dimension_type","schema":"dimension_type","minVersion":"1.16"},{"id":"world","name":"World Settings","schema":"world_settings","minVersion":"1.16"},{"id":"worldgen","name":"Worldgen","category":true,"minVersion":"1.16"},{"id":"worldgen/biome","name":"Biome","path":"worldgen/biome","category":"worldgen","schema":"biome","minVersion":"1.16"},{"id":"worldgen/carver","name":"Carver","path":"worldgen/configured_carver","category":"worldgen","schema":"configured_carver","minVersion":"1.16"},{"id":"worldgen/feature","name":"Feature","path":"worldgen/configured_feature","category":"worldgen","schema":"configured_feature","minVersion":"1.16"},{"id":"worldgen/noise-settings","name":"Noise Settings","path":"worldgen/noise_settings","category":"worldgen","schema":"noise_settings","minVersion":"1.16"},{"id":"worldgen/structure-feature","name":"Structure Feature","path":"worldgen/configured_structure_feature","category":"worldgen","schema":"configured_structure_feature","minVersion":"1.16"},{"id":"worldgen/surface-builder","name":"Surface Builder","path":"worldgen/configured_surface_builder","category":"worldgen","schema":"configured_surface_builder","minVersion":"1.16"},{"id":"worldgen/processor-list","name":"Processor List","path":"worldgen/processor_list","category":"worldgen","schema":"processor_list","minVersion":"1.16"},{"id":"worldgen/template-pool","name":"Template Pool","path":"worldgen/template_pool","category":"worldgen","schema":"template_pool","minVersion":"1.16"}],"registries":[{"id":"advancement","dynamic":true},{"id":"attribute","minVersion":"1.16"},{"id":"block"},{"id":"dimension","dynamic":true},{"id":"dimension_type","dynamic":true},{"id":"enchantment"},{"id":"entity_type"},{"id":"fluid"},{"id":"function","dynamic":true},{"id":"item"},{"id":"loot_condition_type","minVersion":"1.16"},{"id":"loot_function_type","minVersion":"1.16"},{"id":"loot_nbt_provider_type","minVersion":"1.17"},{"id":"loot_number_provider_type","minVersion":"1.17"},{"id":"loot_pool_entry_type","minVersion":"1.16"},{"id":"loot_score_provider_type","minVersion":"1.17"},{"id":"loot_table","dynamic":true},{"id":"mob_effect"},{"id":"pos_rule_test","minVersion":"1.16"},{"id":"potion","minVersion":"1.15"},{"id":"predicate","dynamic":true},{"id":"recipe","dynamic":true},{"id":"rule_test","minVersion":"1.16"},{"id":"sound_event"},{"id":"stat_type"},{"id":"structure","dynamic":true},{"id":"tag/block","dynamic":true},{"id":"tag/entity_type","dynamic":true},{"id":"tag/fluid","dynamic":true},{"id":"tag/function","dynamic":true},{"id":"tag/item","dynamic":true},{"id":"worldgen/biome","dynamic":true},{"id":"worldgen/block_state_provider_type","minVersion":"1.16"},{"id":"worldgen/block_placer_type","minVersion":"1.16"},{"id":"worldgen/biome_source","minVersion":"1.16"},{"id":"worldgen/carver","minVersion":"1.16"},{"id":"worldgen/chunk_generator","minVersion":"1.16"},{"id":"worldgen/configured_carver","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_decorator","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_structure_feature","minVersion":"1.16","dynamic":true},{"id":"worldgen/configured_surface_builder","minVersion":"1.16","dynamic":true},{"id":"worldgen/decorator","minVersion":"1.16"},{"id":"worldgen/feature","minVersion":"1.16"},{"id":"worldgen/feature_size_type","minVersion":"1.16"},{"id":"worldgen/foliage_placer_type","minVersion":"1.16"},{"id":"worldgen/noise_settings","minVersion":"1.16","dynamic":true},{"id":"worldgen/processor_list","minVersion":"1.16","dynamic":true},{"id":"worldgen/structure_feature","minVersion":"1.16"},{"id":"worldgen/structure_pool_element","minVersion":"1.16"},{"id":"worldgen/structure_processor","minVersion":"1.16"},{"id":"worldgen/surface_builder","minVersion":"1.16"},{"id":"worldgen/template_pool","minVersion":"1.16","dynamic":true},{"id":"worldgen/tree_decorator_type","minVersion":"1.16"},{"id":"worldgen/trunk_placer_type","minVersion":"1.16"},{"id":"biome","maxVersion":"1.15"},{"id":"worldgen/biome","minVersion":"1.16","path":"processed/reports/biomes"}]}')},function(e,t){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.UniformInt=t.Range=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.ConditionCases=void 0;const o=i(0);t.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld"},t.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]})),t.Range=e=>o.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:o.NumberNode(e),change:e=>{var t,i,o;return void 0===e?0:null!==(o=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:o.ObjectNode({min:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e)),max:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:o.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:o.NumberNode({integer:!0,min:0}),p:o.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),t.UniformInt=e=>o.ChoiceNode([{type:"number",node:o.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),change:e=>e.base},{type:"object",node:o.ObjectNode({base:o.NumberNode({integer:!0,min:null==e?void 0:e.min,max:null==e?void 0:e.max}),spread:o.NumberNode({integer:!0,min:0,max:null==e?void 0:e.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"}),t.ConditionCases={"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:o.MapNode(r({validator:"objective"}),t.Range({forceRange:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:o.Opt(o.NumberNode())},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}},t.DimensionTypePresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),e,{"minecraft:overworld":t.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether"},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end"}}),t.NoiseSettingsPresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),e,{"minecraft:overworld":t.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise:{density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,height:256,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise:{density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,height:128,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise:{density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,height:128,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.FloatProvider=t.UniformFloat=t.UniformInt=t.NoiseSettingsPresets=t.DefaultNoiseSettings=t.DimensionTypePresets=t.DefaultDimensionType=t.FunctionCases=t.ConditionCases=void 0;const o=i(0);t.DefaultDimensionType={ultrawarm:!1,natural:!0,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!0,has_raids:!0,has_skylight:!0,has_ceiling:!1,coordinate_scale:1,ambient_light:0,logical_height:256,infiniburn:"minecraft:infiniburn_overworld",min_y:0,height:256},t.DefaultNoiseSettings={name:"minecraft:overworld",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0}),{minLength:3,maxLength:3}),{default:()=>[0,0,0]}));const a=e=>o.Opt(o.ChoiceNode([{type:"number",node:o.NumberNode({integer:e}),change:e=>{var t,i;return void 0===e?0:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:0}},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:e})),max:o.Opt(o.NumberNode({integer:e}))},{context:"range"}),change:e=>({min:null!=e?e:0,max:null!=e?e:0})}]));e.register("int_bounds",a(!0)),e.register("float_bounds",a()),e.register("int_range",o.ChoiceNode([{type:"object",node:o.ObjectNode({min:o.Opt(n("number_provider")),max:o.Opt(n("number_provider"))})},{type:"number",node:o.NumberNode({integer:!0})}],{context:"range"}));const s=(e,t,i,n,a,s,c)=>{let d={};a&&Object.keys(c[a]).forEach(e=>{d[e]=o.Mod(c[a][e],{enabled:e=>void 0===e.push("type").get()})});const l=o.ObjectNode({type:o.Mod(o.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[o.Switch]:[{push:"type"}],[o.Case]:c,...d},{context:s,disableSwitchContext:!0}),m=[{type:t,node:c[n][i]}];return a&&m.push({type:"object",priority:-1,node:l}),Object.keys(c).forEach(e=>{m.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const o=t?Object.keys(t):[];return"object"==typeof t&&(0===(null==o?void 0:o.length)||1===(null==o?void 0:o.length)&&"type"===(null==o?void 0:o[0]))},node:l,change:t=>({type:e})})}),o.ChoiceNode(m,{context:s,choiceContext:s+".type"})};e.register("number_provider",s("loot_number_provider_type","number","value","minecraft:constant","minecraft:uniform","number_provider",{"minecraft:constant":{value:o.NumberNode()},"minecraft:uniform":{min:n("number_provider"),max:n("number_provider")},"minecraft:binomial":{n:n("number_provider"),p:n("number_provider")},"minecraft:score":{target:n("scoreboard_name_provider"),score:r({validator:"objective"}),scale:o.Opt(o.NumberNode())}})),e.register("scoreboard_name_provider",s("loot_score_provider_type","string","target","minecraft:context",null,"score_provider",{"minecraft:fixed":{name:r({validator:"entity",params:{amount:"multiple",type:"entities",isScoreHolder:!0}})},"minecraft:context":{target:o.Mod(r({enum:"entity_source"}),{default:()=>"this"})}})),e.register("nbt_provider",s("loot_nbt_provider_type","string","target","minecraft:context",null,"nbt_provider",{"minecraft:storage":{source:r({validator:"resource",params:{pool:"$storage"}})},"minecraft:context":{target:o.Mod(r({enum:"copy_source"}),{default:()=>"this"})}}));const c=e=>t=>o.ChoiceNode([{type:"number",node:o.NumberNode({integer:e,min:null==t?void 0:t.min,max:null==t?void 0:t.max}),change:e=>e.base},{type:"object",node:o.ObjectNode({base:o.NumberNode({integer:e,min:null==t?void 0:t.min,max:null==t?void 0:t.max}),spread:o.NumberNode({integer:e,min:0,max:null==t?void 0:t.maxSpread})}),change:e=>({base:e,spread:0})}],{context:"uniform_int"});t.UniformInt=c(!0),t.UniformFloat=c(),t.FloatProvider=e=>s("worldgen/float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:o.NumberNode(e)},"minecraft:uniform":{value:o.ObjectNode({base:o.NumberNode(e),spread:o.NumberNode({min:0})})},"minecraft:clamped_normal":{value:o.ObjectNode({min:o.NumberNode(),max:o.NumberNode(),mean:o.NumberNode(),deviation:o.NumberNode()})},"minecraft:trapezoid":{value:o.ObjectNode({min:o.NumberNode(),max:o.NumberNode(),plateau:o.NumberNode()})}}),t.ConditionCases=(e=r({enum:"entity_source"}))=>({"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:e,predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:e,scores:o.MapNode(r({validator:"objective"}),n("int_range"))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:n("int_range"),period:o.Opt(o.NumberNode({integer:!0}))},"minecraft:value_check":{value:n("number_provider"),range:n("int_range")},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}}),t.FunctionCases=(e,t=r({enum:"copy_source"}),a=r({enum:"entity_source"}))=>{const s={"minecraft:apply_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),formula:r({validator:"resource",params:{pool:i.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:t},"minecraft:copy_nbt":{source:n("nbt_provider"),ops:o.ListNode(o.ObjectNode({source:r({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:r({validator:"nbt_path",params:{category:"minecraft:item"}}),op:r({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(r({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n("number_provider"),treasure:o.Opt(o.BooleanNode())},"minecraft:exploration_map":{destination:o.Opt(r({enum:"map_feature"})),decoration:o.Opt(r({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode())},"minecraft:fill_player_head":{entity:a},"minecraft:limit_count":{limit:n("int_range")},"minecraft:looting_enchant":{count:n("number_provider"),limit:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:o.ListNode(n("attribute_modifier"))},"minecraft:set_banner_pattern":{patterns:o.ListNode(o.ObjectNode({pattern:r({enum:"banner_pattern"}),color:r({enum:"dye_color"})})),append:o.Opt(o.BooleanNode())},"minecraft:set_contents":{entries:o.ListNode(n("loot_entry"))},"minecraft:set_count":{count:n("number_provider"),add:o.Opt(o.BooleanNode())},"minecraft:set_damage":{damage:n("number_provider"),add:o.Opt(o.BooleanNode())},"minecraft:set_enchantments":{enchantments:o.MapNode(r({validator:"resource",params:{pool:"enchantment"}}),n("number_provider")),add:o.Opt(o.BooleanNode())},"minecraft:set_loot_table":{name:r({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(a),lore:o.ListNode(n("text_component")),replace:o.Opt(o.BooleanNode())},"minecraft:set_name":{entity:o.Opt(a),name:o.Opt(n("text_component"))},"minecraft:set_nbt":{tag:r({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:r({validator:"resource",params:{pool:"mob_effect"}}),duration:n("number_provider")})))}},c={};return i.get("loot_function_type").forEach(t=>{c[t]={...s[t],...e}}),c},t.DimensionTypePresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$dimension_type"}}),e,{"minecraft:overworld":t.DefaultDimensionType,"minecraft:the_nether":{name:"minecraft:the_nether",ultrawarm:!0,natural:!1,shrunk:!0,piglin_safe:!0,respawn_anchor_works:!0,bed_works:!1,has_raids:!1,has_skylight:!1,has_ceiling:!0,ambient_light:.1,fixed_time:18e3,logical_height:128,effects:"minecraft:the_nether",infiniburn:"minecraft:infiniburn_nether",min_y:0,height:256},"minecraft:the_end":{name:"minecraft:the_end",ultrawarm:!1,natural:!1,shrunk:!1,piglin_safe:!1,respawn_anchor_works:!1,bed_works:!1,has_raids:!0,has_skylight:!1,has_ceiling:!1,ambient_light:0,fixed_time:6e3,logical_height:256,effects:"minecraft:the_end",infiniburn:"minecraft:infiniburn_end",min_y:0,height:256}}),t.NoiseSettingsPresets=e=>o.ObjectOrPreset(r({validator:"resource",params:{pool:"$worldgen/noise_settings"}}),e,{"minecraft:overworld":t.DefaultNoiseSettings,"minecraft:nether":{name:"minecraft:nether",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:netherrack"},default_fluid:{Name:"minecraft:lava",Properties:{level:"0"}}},"minecraft:end":{name:"minecraft:end",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:end_stone"},default_fluid:{Name:"minecraft:air"}},"minecraft:amplified":{name:"minecraft:amplified",bedrock_roof_position:-10,bedrock_floor_position:0,sea_level:63,disable_mob_generation:!1,noise_caves_enabled:!0,aquifers_enabled:!0,deepslate_enabled:!0,noise:{min_y:0,height:256,density_factor:1,density_offset:-.46875,simplex_surface_noise:!0,random_density_offset:!0,amplified:!0,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-10,size:3,offset:0},bottom_slide:{target:-30,size:0,offset:0}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:caves":{name:"minecraft:caves",bedrock_roof_position:0,bedrock_floor_position:0,sea_level:32,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:.019921875,simplex_surface_noise:!1,random_density_offset:!1,size_horizontal:1,size_vertical:2,sampling:{xz_scale:1,y_scale:3,xz_factor:80,y_factor:60},top_slide:{target:120,size:3,offset:0},bottom_slide:{target:320,size:4,offset:-1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}},"minecraft:floating_islands":{name:"minecraft:floating_islands",bedrock_roof_position:-10,bedrock_floor_position:-10,sea_level:0,disable_mob_generation:!0,noise_caves_enabled:!1,aquifers_enabled:!1,deepslate_enabled:!1,noise:{min_y:0,height:128,density_factor:0,density_offset:0,simplex_surface_noise:!0,random_density_offset:!1,island_noise_override:!0,size_horizontal:2,size_vertical:1,sampling:{xz_scale:2,y_scale:1,xz_factor:80,y_factor:160},top_slide:{target:-3e3,size:64,offset:-46},bottom_slide:{target:-30,size:7,offset:1}},default_block:{Name:"minecraft:stone"},default_fluid:{Name:"minecraft:water",Properties:{level:"0"}}}})}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Keep=t.Opt=t.Has=t.Mod=t.Base=void 0,t.Base={type:()=>"base",category:()=>{},default:()=>{},enabled:()=>!0,keep:()=>!1,optional:()=>!1,navigate(){return this},pathPush:e=>e,suggest:()=>[],validate:(e,t)=>t,validationOption:()=>{},hook(e,t,...i){return e.base({node:this},t,...i)},canUpdate:()=>!1,update:()=>[]},t.Mod=(e,t)=>({...e,..."function"==typeof t?t(e):t}),t.Has=(e,i)=>t.Mod(i,{enabled:t=>void 0!==t.push(e).get()}),t.Opt=function(e){return{...e,optional:()=>!0}},t.Keep=function(e){return{...e,keep:()=>!0}}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCommonSchemas=t.Range=t.ConditionCases=void 0;const o=i(0);t.initCommonSchemas=function(e,i){const r=o.StringNode.bind(void 0,i),n=o.Reference.bind(void 0,e);e.register("block_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"block"}}),Properties:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"Name"}]}}}))},{context:"block_state"}),{default:()=>({Name:"minecraft:stone"})})),e.register("fluid_state",o.Mod(o.ObjectNode({Name:r({validator:"resource",params:{pool:"fluid"}}),Properties:o.Opt(o.MapNode(r(),r()))},{context:"fluid_state"}),{default:()=>({Name:"minecraft:water",Properties:{level:"0"}})})),e.register("block_pos",o.Mod(o.ListNode(o.NumberNode({integer:!0})),{default:()=>[0,0,0]})),t.Range=e=>o.ChoiceNode([...(null==e?void 0:e.forceRange)?[]:[{type:"number",node:o.NumberNode(e),change:e=>{var t,i,o;return void 0===e?0:null!==(o=null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:e.n)&&void 0!==o?o:0}}],{type:"object",priority:-1,node:o.ObjectNode({min:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e)),max:(null==e?void 0:e.bounds)?o.NumberNode(e):o.Opt(o.NumberNode(e))},{context:"range"}),change:e=>({min:"number"==typeof e?e:void 0===e?1:e.n,max:"number"==typeof e?e:void 0===e?1:e.n})},...(null==e?void 0:e.allowBinomial)?[{type:"binomial",node:o.ObjectNode({type:r({enum:["minecraft:binomial"]}),n:o.NumberNode({integer:!0,min:0}),p:o.NumberNode({min:0,max:1})},{context:"range"}),match:e=>void 0!==e&&"minecraft:binomial"===e.type,change:e=>{var t,i;return{type:"minecraft:binomial",n:"number"==typeof e?e:void 0===e?1:null!==(i=null!==(t=e.min)&&void 0!==t?t:e.max)&&void 0!==i?i:1,p:.5}}}]:[]],{choiceContext:"range"}),t.ConditionCases={"minecraft:alternative":{terms:o.ListNode(n("condition"))},"minecraft:block_state_property":{block:r({validator:"resource",params:{pool:"block"}}),properties:o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})},"minecraft:damage_source_properties":{predicate:n("damage_source_predicate")},"minecraft:entity_properties":{entity:r({enum:"entity_source"}),predicate:n("entity_predicate")},"minecraft:entity_scores":{entity:r({enum:"entity_source"}),scores:o.MapNode(r({validator:"objective"}),t.Range({forceRange:!0,bounds:!0}))},"minecraft:inverted":{term:n("condition")},"minecraft:killed_by_player":{inverse:o.Opt(o.BooleanNode())},"minecraft:location_check":{offsetX:o.Opt(o.NumberNode({integer:!0})),offsetY:o.Opt(o.NumberNode({integer:!0})),offsetZ:o.Opt(o.NumberNode({integer:!0})),predicate:n("location_predicate")},"minecraft:match_tool":{predicate:n("item_predicate")},"minecraft:random_chance":{chance:o.NumberNode({min:0,max:1})},"minecraft:random_chance_with_looting":{chance:o.NumberNode({min:0,max:1}),looting_multiplier:o.NumberNode()},"minecraft:requirements":{terms:o.ListNode(n("condition"))},"minecraft:reference":{name:r({validator:"resource",params:{pool:"$predicate"}})},"minecraft:table_bonus":{enchantment:r({validator:"resource",params:{pool:"enchantment"}}),chances:o.ListNode(o.NumberNode({min:0,max:1}))},"minecraft:time_check":{value:t.Range(),period:o.Opt(o.NumberNode())},"minecraft:weather_check":{raining:o.Opt(o.BooleanNode()),thundering:o.Opt(o.BooleanNode())}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=t.Processors=void 0;const o=i(0);t.initProcessorListSchemas=function(e,i){const r=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,i);t.Processors=o.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:r("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]),e.register("processor_list",o.Mod(o.ObjectNode({processors:o.ListNode(r("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",o.Mod(o.ObjectNode({processor_type:n({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[o.Switch]:[{push:"processor_type"}],[o.Case]:{"minecraft:block_age":{mossiness:o.NumberNode()},"minecraft:block_ignore":{blocks:o.ListNode(r("block_state"))},"minecraft:block_rot":{integrity:o.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:n({enum:"heightmap_type"}),offset:o.NumberNode({integer:!0})},"minecraft:rule":{rules:o.ListNode(r("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",o.Mod(o.ObjectNode({position_predicate:o.Opt(r("pos_rule_test")),location_predicate:r("rule_test"),input_predicate:r("rule_test"),output_state:r("block_state"),output_nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const a={min_dist:o.NumberNode({min:0,max:255,integer:!0}),max_dist:o.NumberNode({min:0,max:255,integer:!0}),min_chance:o.NumberNode({min:0,max:1}),max_chance:o.NumberNode({min:0,max:1})};e.register("pos_rule_test",o.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"pos_rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:axis_aligned_linear_pos":{axis:n({enum:["x","y","z"]}),...a},"minecraft:linear_pos":a}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",o.ObjectNode({predicate_type:n({validator:"resource",params:{pool:"rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:block_match":{block:n({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:r("block_state")},"minecraft:random_block_match":{block:n({validator:"resource",params:{pool:"block"}}),probability:o.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:r("block_state"),probability:o.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:n({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}},function(e,t,i){var o=i(90),r=i(91),n=i(92),a=i(93),s=i(94),c=i(95),d=i(96);d.alea=o,d.xor128=r,d.xorwow=n,d.xorshift7=a,d.xor4096=s,d.tychei=c,e.exports=d},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModelPath=t.Path=t.relativePath=void 0,t.relativePath=function(e,t){return t.reduce((e,t)=>"pop"===t?e.pop():e.push(t.push),e)};class o{constructor(e,t){this.modelArr=null!=e?e:[],this.contextArr=null!=t?t:[]}last(){return this.modelArr[this.modelArr.length-1]}slice(e,t){return new o(this.modelArr.slice(e,t),this.contextArr)}shift(){return new o(this.modelArr.slice(1),this.contextArr)}pop(){return new o(this.modelArr.slice(0,-1),this.contextArr)}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new o([...this.modelArr,e],[...this.contextArr])}contextPush(e){if("number"==typeof e)return this.copy();const t=e.startsWith("minecraft:")?e.slice(10):e;return new o([...this.modelArr],[...this.contextArr,t])}copy(){return new o([...this.modelArr],[...this.contextArr])}getArray(){return this.modelArr}withModel(e){return new r(e,this)}getContext(){return this.contextArr}equals(e){return e.modelArr.length===this.modelArr.length&&e.modelArr.every((e,t)=>e===this.modelArr[t])}startsWith(e){return!(this.modelArr.lengthe===this.modelArr[t])}endsWith(e){const t=this.modelArr.length-e.modelArr.length;return!(t<0)&&e.modelArr.every((e,i)=>e===this.modelArr[t+i])}toString(){return this.modelArr.map(e=>"string"==typeof e?"."+e:`[${e}]`).join("").replace(/^\./,"")}forEach(e,t){return this.modelArr.forEach(e,t)}}t.Path=o;class r extends o{constructor(e,t){super(null==t?void 0:t.modelArr,null==t?void 0:t.contextArr),this.model=e}getModel(){return this.model}get(){var e;return null===(e=this.model)||void 0===e?void 0:e.get(this)}set(e){var t;null===(t=this.model)||void 0===t||t.set(this,e)}slice(e,t){return new r(this.model,super.slice(e,t))}shift(){return new r(this.model,super.shift())}pop(){return new r(this.model,super.pop())}push(e){return this.modelPush(e).contextPush(e)}modelPush(e){return new r(this.model,super.modelPush(e))}contextPush(e){return new r(this.model,super.contextPush(e))}copy(){return new r(this.model,super.copy())}}t.ModelPath=r},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Errors=void 0;class o{constructor(){this.errors=[]}add(e,t,...i){return this.errors.push({path:e,error:t,params:i}),!1}get(e,t=!1){return t?this.errors.filter(t=>t.path.equals(e)):this.errors.filter(t=>t.path.startsWith(e))}getAll(){return this.errors}clear(){this.errors=[]}count(){return this.errors.length}*[Symbol.iterator](){for(const e of this.errors)yield e}}t.Errors=o},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initProcessorListSchemas=void 0;const o=i(0);t.initProcessorListSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("processor_list",o.Mod(o.ObjectNode({processors:o.ListNode(i("processor"))},{context:"processor_list"}),{default:()=>({processors:[{processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]}]})})),e.register("processor",o.Mod(o.ObjectNode({processor_type:r({validator:"resource",params:{pool:"worldgen/structure_processor"}}),[o.Switch]:[{push:"processor_type"}],[o.Case]:{"minecraft:block_age":{mossiness:o.NumberNode()},"minecraft:block_ignore":{blocks:o.ListNode(i("block_state"))},"minecraft:block_rot":{integrity:o.NumberNode({min:0,max:1})},"minecraft:gravity":{heightmap:r({enum:"heightmap_type"}),offset:o.NumberNode({integer:!0})},"minecraft:rule":{rules:o.ListNode(i("processor_rule"))}}},{category:"function",context:"processor"}),{default:()=>({processor_type:"minecraft:rule",rules:[{location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}}]})})),e.register("processor_rule",o.Mod(o.ObjectNode({position_predicate:o.Opt(i("pos_rule_test")),location_predicate:i("rule_test"),input_predicate:i("rule_test"),output_state:i("block_state"),output_nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:block"}}}))},{category:"predicate",context:"processor_rule"}),{default:()=>({location_predicate:{predicate_type:"minecraft:always_true"},input_predicate:{predicate_type:"minecraft:always_true"}})}));const n={min_dist:o.NumberNode({min:0,max:255,integer:!0}),max_dist:o.NumberNode({min:0,max:255,integer:!0}),min_chance:o.NumberNode({min:0,max:1}),max_chance:o.NumberNode({min:0,max:1})};e.register("pos_rule_test",o.ObjectNode({predicate_type:r({validator:"resource",params:{pool:"pos_rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:axis_aligned_linear_pos":{axis:r({enum:["x","y","z"]}),...n},"minecraft:linear_pos":n}},{context:"pos_rule_test",disableSwitchContext:!0})),e.register("rule_test",o.ObjectNode({predicate_type:r({validator:"resource",params:{pool:"rule_test"}}),[o.Switch]:[{push:"predicate_type"}],[o.Case]:{"minecraft:block_match":{block:r({validator:"resource",params:{pool:"block"}})},"minecraft:blockstate_match":{block_state:i("block_state")},"minecraft:random_block_match":{block:r({validator:"resource",params:{pool:"block"}}),probability:o.NumberNode({min:0,max:1})},"minecraft:random_blockstate_match":{block_state:i("block_state"),probability:o.NumberNode({min:0,max:1})},"minecraft:tag_match":{tag:r({validator:"resource",params:{pool:"$tag/block"}})}}},{context:"rule_test",disableSwitchContext:!0}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ListNode=void 0;const o=i(5);t.ListNode=(e,t)=>{var i,r;const n=null!==(i=null==t?void 0:t.minLength)&&void 0!==i?i:0,a=null!==(r=null==t?void 0:t.maxLength)&&void 0!==r?r:1/0,s=(null==t?void 0:t.minLength)&&(null==t?void 0:t.maxLength);return{...o.Base,type:()=>"list",default:()=>(null==t?void 0:t.minLength)?[...Array(n)].map(t=>e.default()):[],navigate(t,i){const o=i+1;return t.getArray().length<=o?this:e.navigate(t,o)},pathPush:(e,t)=>e.push(parseInt(t.toString())).contextPush("entry"),validate(t,i,o,r){return r.loose&&!Array.isArray(i)&&(i=this.default()),Array.isArray(i)?(s&&(i.lengtha)?n===a?o.add(t,"error.invalid_list_range.exact",i.length,n):o.add(t,"error.invalid_list_range.between",i.length,n,a):i.lengtha&&o.add(t,"error.invalid_list_range.larger",i.length,a),i.map((i,n)=>e.validate(t.push(n),i,o,r))):(o.add(t,"error.expected_list"),i)},hook(i,o,...r){var n;return(null!==(n=i.list)&&void 0!==n?n:i.base).call(i,{node:this,children:e,config:null!=t?t:{}},o,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SwitchNode=void 0;const o=i(5);t.SwitchNode=e=>({...o.Base,type(e){return this.activeCase(e,!0).node.type(e)},category(e){return this.activeCase(e,!0).node.category(e)},default:()=>e[0].node.default(),navigate(e,t){var i;const o=t+1;return null===(i=this.activeCase(e.slice(0,o)))||void 0===i?void 0:i.node.navigate(e,t)},pathPush(e,t){var i,o;return null!==(o=null===(i=this.activeCase(e))||void 0===i?void 0:i.node.pathPush(e,t))&&void 0!==o?o:e},suggest(t,i){var o,r;return null!==(r=null===(o=this.activeCase(t))||void 0===o?void 0:o.node.suggest(t,i))&&void 0!==r?r:e.filter(e=>e.match(t)).map(e=>e.node.suggest(t,i)).reduce((e,t)=>e.concat(t))},validate(e,t,i,o){let r=this.activeCase(e);return void 0===r?t:r.node.validate(e,t,i,o)},validationOption(e){var t;return null===(t=this.activeCase(e))||void 0===t?void 0:t.node.validationOption(e)},activeCase(t,i){const o=(e,t)=>{var i,o;return(null!==(i=t.priority)&&void 0!==i?i:0)-(null!==(o=e.priority)&&void 0!==o?o:0)},r=e.filter(e=>e.match(t)).sort(o);return i&&0===r.length?e.sort(o)[0]:r.length>0?r[0]:void 0},hook(e,t,...i){return this.activeCase(t,!0).node.hook(e,t,...i)}})},function(e,t,i){"use strict";function o(e){return e.replace(/(\\|")/g,"\\$1")}Object.defineProperty(t,"__esModule",{value:!0}),t.quoteString=t.escapeString=void 0,t.escapeString=o,t.quoteString=function(e){return`"${o(e)}"`}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=t.LocationFields=void 0;const o=i(0),r=i(8);t.initPredicatesSchemas=function(e,i){const n=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,i),s=o.ChoiceNode([{type:"string",node:a(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(a({validator:"resource",params:{pool:"item"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/item"}})),count:o.Opt(r.Range()),durability:o.Opt(r.Range()),potion:o.Opt(a({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(n("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(a({validator:"resource",params:{pool:"enchantment"}})),levels:o.Opt(r.Range())},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(a({validator:"resource",params:{pool:"block"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(a(),s,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(a({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(a(),s))},{context:"fluid"})),t.LocationFields={position:o.Opt(o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range())})),biome:o.Opt(a({enum:"biome"})),feature:o.Opt(a({enum:"structure_feature"})),dimension:o.Opt(a({enum:"dimension"})),light:o.Opt(o.ObjectNode({light:o.Opt(r.Range({integer:!0,min:0,max:15}))})),block:o.Opt(n("block_predicate")),fluid:o.Opt(n("fluid_predicate"))},e.register("location_predicate",o.ObjectNode(t.LocationFields,{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:a({validator:"resource",params:{pool:"stat_type"}}),stat:a(),value:r.Range(),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:a({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:a({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:a({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:a({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(a({enum:"gamemode"})),level:o.Opt(r.Range()),advancements:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(a(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(n("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:o.Opt(r.Range()),duration:o.Opt(r.Range()),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range()),absolute:o.Opt(r.Range()),horizontal:o.Opt(r.Range())},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(a({validator:"team"})),location:o.Opt(n("location_predicate")),distance:o.Opt(n("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(a({enum:"slot"}),n("item_predicate"))),player:o.Opt(n("player_predicate")),effects:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),n("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(n("entity_predicate")),direct_entity:o.Opt(n("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:o.Opt(r.Range()),taken:o.Opt(r.Range()),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(n("entity_predicate")),type:o.Opt(n("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDecoratorSchemas=void 0;const o=i(0),r=i(3);t.initDecoratorSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a={maximum:o.NumberNode({integer:!0}),bottom_offset:o.NumberNode({integer:!0}),top_offset:o.NumberNode({integer:!0})},s={chance:o.NumberNode({integer:!0,min:0})},c={count:r.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"}),probability:o.NumberNode({min:0,max:1})},"minecraft:chance":s,"minecraft:count":c,"minecraft:count_extra":{count:o.NumberNode({integer:!0,min:0}),extra_count:o.NumberNode({integer:!0,min:0}),extra_chance:o.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:o.NumberNode(),below_noise:o.NumberNode({integer:!0}),above_noise:o.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:o.NumberNode({integer:!0}),noise_factor:o.NumberNode(),noise_offset:o.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:o.NumberNode({integer:!0}),spread:o.NumberNode({integer:!0})},"minecraft:fire":c,"minecraft:glowstone":c,"minecraft:lava_lake":s,"minecraft:range":a,"minecraft:range_biased":a,"minecraft:range_very_biased":a,"minecraft:water_lake":s}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LootFunctions=t.LootConditions=t.LootCopySources=t.LootEntitySources=t.LootTableTypes=void 0,t.LootTableTypes=new Map([["minecraft:advancement_entity",{requires:[7,8],allows:[]}],["minecraft:advancement_reward",{requires:[7,8],allows:[]}],["minecraft:barter",{requires:[8],allows:[]}],["minecraft:block",{requires:[1,7,9],allows:[0,4,8]}],["minecraft:chest",{requires:[7],allows:[8]}],["minecraft:command",{requires:[7],allows:[8]}],["minecraft:empty",{requires:[],allows:[]}],["minecraft:entity",{requires:[2,7,8],allows:[3,5,6]}],["minecraft:fishing",{requires:[7,9],allows:[8]}],["minecraft:generic",{requires:[2,0,1,3,4,5,6,7,8,9],allows:[]}],["minecraft:gift",{requires:[7,8],allows:[]}],["minecraft:selector",{requires:[7],allows:[8]}]]),t.LootEntitySources=new Map([["direct_killer",[3]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootCopySources=new Map([["block_entity",[0]],["killer",[5]],["killer_player",[5]],["this",[8]]]),t.LootConditions=new Map([["minecraft:alternative",[]],["minecraft:block_state_property",[1]],["minecraft:damage_source_properties",[2]],["minecraft:entity_properties",[7]],["minecraft:entity_scores",[]],["minecraft:inverted",[]],["minecraft:killed_by_player",[6]],["minecraft:location_check",[]],["minecraft:match_tool",[9]],["minecraft:random_chance",[]],["minecraft:random_chance_with_looting",[5]],["minecraft:reference",[]],["minecraft:survives_explosion",[4]],["minecraft:table_bonus",[9]],["minecraft:time_check",[]],["minecraft:weather_check",[]]]),t.LootFunctions=new Map([["minecraft:apply_bonus",[9]],["minecraft:copy_name",[]],["minecraft:copy_nbt",[]],["minecraft:copy_state",[1]],["minecraft:enchant_randomly",[]],["minecraft:enchant_with_levels",[]],["minecraft:exploration_map",[7]],["minecraft:explosion_decay",[]],["minecraft:fill_player_head",[]],["minecraft:furnace_smelt",[]],["minecraft:limit_count",[]],["minecraft:looting_enchant",[5]],["minecraft:set_attributes",[]],["minecraft:set_banner_pattern",[]],["minecraft:set_contents",[]],["minecraft:set_count",[]],["minecraft:set_damage",[]],["minecraft:set_loot_table",[]],["minecraft:set_lore",[]],["minecraft:set_name",[]],["minecraft:set_nbt",[]],["minecraft:set_stew_effect",[]]])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDecoratorSchemas=void 0;const o=i(0),r=i(4);t.initDecoratorSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("vertical_anchor",o.ChoiceNode(["absolute","above_bottom","below_top"].map(e=>({type:e,match:t=>void 0!==(null==t?void 0:t[e]),change:t=>{var i,o,r;return{[e]:null!==(r=null!==(o=null!==(i=t.absolute)&&void 0!==i?i:t.above_bottom)&&void 0!==o?o:t.below_top)&&void 0!==r?r:0}},node:o.ObjectNode({[e]:o.NumberNode({integer:!0,min:-2048,max:2047})})})),{context:"vertical_anchor"}));const a={bottom_inclusive:i("vertical_anchor"),top_inclusive:i("vertical_anchor")},s={...a,cutoff:o.NumberNode({integer:!0})},c={count:r.UniformInt({min:-10,max:128,maxSpread:128})};e.register("configured_decorator",o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/decorator"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:carving_mask":{step:n({enum:"generation_step"})},"minecraft:cave_surface":{surface:n({enum:["floor","ceiling"]}),floor_to_ceiling_search_range:o.NumberNode({integer:!0})},"minecraft:chance":{chance:o.NumberNode({integer:!0,min:0})},"minecraft:count":c,"minecraft:count_extra":{count:o.NumberNode({integer:!0,min:0}),extra_count:o.NumberNode({integer:!0,min:0}),extra_chance:o.NumberNode({min:0,max:1})},"minecraft:count_multilayer":c,"minecraft:count_noise":{noise_level:o.NumberNode(),below_noise:o.NumberNode({integer:!0}),above_noise:o.NumberNode({integer:!0})},"minecraft:count_noise_biased":{noise_to_count_ratio:o.NumberNode({integer:!0}),noise_factor:o.NumberNode(),noise_offset:o.NumberNode()},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:depth_average":{baseline:i("vertical_anchor"),spread:o.NumberNode({integer:!0})},"minecraft:glowstone":c,"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_with_water_threshold":{max_water_depth:o.NumberNode({integer:!0})},"minecraft:range":a,"minecraft:range_biased_to_bottom":s,"minecraft:range_very_biased_to_bottom":s}},{context:"decorator",category:"predicate"})},{context:"decorator",category:"predicate"}))}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=t.lootContext=void 0;const a=i(0),s=i(38),c=i(39);t.lootContext=n(i(18)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=void 0;const a=i(0),s=i(47),c=i(48);t.lootContext=n(i(19)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e,t,i){"use strict";var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i),Object.defineProperty(e,o,{enumerable:!0,get:function(){return t[i]}})}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&o(t,e,i);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getSchemas=t.getCollections=void 0;const a=i(0),s=i(68),c=i(69);t.lootContext=n(i(21)),t.getCollections=function(){const e=new a.CollectionRegistry;return s.initCollections(e),e},t.getSchemas=function(e){const t=new a.SchemaRegistry;return c.initSchemas(t,e),t}},function(e){e.exports=JSON.parse('{"advancement":"Advancement","button.add":"Add","button.collapse":"Collapse","button.expand":"Expand","button.remove":"Remove","copy":"Copy","dimension-type":"Dimension Type","dimension":"Dimension","download":"Download","error.block_state.missing_property":"Missing block property \\"%0%\\"","fields":"Fields","github":"GitHub","home":"Home","item-modifier":"Item Modifier","language":"Language","loot-table":"Loot Table","maximize":"Maximize","minimize":"Minimize","not_found.description":"The page you were looking for does not exist.","predicate":"Predicate","redo":"Redo","reset":"Reset","settings":"Settings","settings.fields.description":"Customize advanced field settings","settings.fields.path":"Context","settings.fields.name":"Name","share":"Share","title.generator":"%0% Generator","title.home":"Data Pack Generators","presets":"Presets","preview":"Visualize","preview.show_density":"Show Density","preview.scale":"Scale","preview.depth":"Depth","preview.width":"Width","undo":"Undo","world":"World Settings","worldgen/biome":"Biome","worldgen/carver":"Carver","worldgen/feature":"Feature","worldgen/noise-settings":"Noise Settings","worldgen/processor-list":"Processor List","worldgen/structure-feature":"Structure Feature","worldgen/surface-builder":"Surface Builder","worldgen/template-pool":"Template Pool"}')},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataModel=void 0;const o=i(11),r=i(12);t.DataModel=class{constructor(e,t){var i;this.schema=e,this.data=e.default(),this.listeners=[],this.errors=new r.Errors,this.history=[JSON.stringify(this.data)],this.historyIndex=0,this.historyMax=null!==(i=null==t?void 0:t.historyMax)&&void 0!==i?i:50}addListener(e){this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>-1&&this.listeners.splice(t,1)}invalidate(){const e=JSON.stringify(this.data);this.history[this.historyIndex]!==e&&(this.historyIndex+=1,this.history.splice(this.historyIndex,this.historyMax,e),this.history.length>this.historyMax&&(this.history.splice(0,1),this.historyIndex-=1)),this.silentInvalidate()}silentInvalidate(){this.listeners.forEach(e=>{e.invalidated&&e.invalidated(this),e.errors&&e.errors(this.errors)})}reset(e,t){this.data=e,this.validate(t),this.invalidate()}get(e){let t=this.data;return e.forEach(e=>{if(void 0===t)return t;t=t[e]}),t}set(e,t,i){if(0===e.getArray().length)return void this.reset(t,!0);let o=this.data;e.pop().forEach(e=>{void 0!==o[e]&&"string"!=typeof o[e]&&"number"!=typeof o[e]||(o[e]={}),o=o[e]}),void 0===t||"number"==typeof t&&isNaN(t)?"number"==typeof e.last()?o.splice(e.last(),1):delete o[e.last()]:o[e.last()]=t,i||(console.log("Set",e.toString(),JSON.stringify(t)),this.validate(!0),this.invalidate())}undo(){this.historyIndex>0&&(this.historyIndex-=1,this.data=JSON.parse(this.history[this.historyIndex]),this.validate(!1),this.silentInvalidate())}redo(){this.historyIndex{e.errors&&e.errors(o)})}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanNode=void 0;const o=i(5);t.BooleanNode=()=>({...o.Base,type:()=>"boolean",default:()=>!1,suggest:()=>["false","true"],validate(e,t,i,o){return o.loose&&"boolean"!=typeof t&&(t=this.default()),"boolean"==typeof t&&void 0!==t||i.add(e,"error.expected_boolean"),t},hook(e,t,...i){var o;return(null!==(o=e.boolean)&&void 0!==o?o:e.base).call(e,{node:this},t,...i)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectOrPreset=t.StringOrList=t.ObjectOrList=t.ChoiceNode=void 0;const o=i(14),r=i(15);t.ChoiceNode=(e,t)=>{const i=r.SwitchNode(e.map(e=>({type:e.type,priority:e.priority,match:t=>((e,t)=>{if(e.match)return e.match(t);switch(e.type){case"list":return Array.isArray(t);case"object":return"object"==typeof t&&!Array.isArray(t);default:return typeof t===e.type}})(e,t.get()),node:e.node})));return{...i,validate(e,t,o,r){let n=i.activeCase(e,!0);return n.node.optional()?t:n.node.validate(e,t,o,r)},hook(o,r,...n){var a;return(null!==(a=o.choice)&&void 0!==a?a:o.base).call(o,{node:this,choices:e,config:null!=t?t:{},switchNode:i},r,...n)}}};const n=e=>(i,r)=>t.ChoiceNode([{type:e,node:i,change:e=>{var t;return null!==(t=e[0])&&void 0!==t?t:i.default()}},{type:"list",node:o.ListNode(i),change:e=>e?[e]:[]}],r);t.ObjectOrList=n("object"),t.StringOrList=n("string"),t.ObjectOrPreset=(e,i,o)=>t.ChoiceNode([{type:"string",priority:1,node:e,change:e=>Object.keys(o)[0]},{type:"object",node:i,change:e=>{var t;return null!==(t=o[e])&&void 0!==t?t:o[Object.keys(o)[0]]}}])},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MapNode=void 0;const o=i(5);t.MapNode=(e,t,i)=>({...o.Base,type:()=>"map",default:()=>({}),navigate(e,i){const o=i+1;return e.getArray().length<=o?this:t.navigate(e,o)},pathPush:(e,t)=>e.modelPush(t),suggest:t=>e.suggest(t,""),validate(i,o,r,n){if(n.loose&&"object"!=typeof o&&(o=this.default()),null===o||"object"!=typeof o)return r.add(i,"error.expected_object"),o;let a={};return Object.keys(o).forEach(s=>{e.validate(i,s,r,n),a[s]=t.validate(i.push(s),o[s],r,n)}),a},validationOption(t){var o;return null!==(o=null==i?void 0:i.validation)&&void 0!==o?o:e.validationOption(t.push(""))},hook(o,r,...n){var a;return(null!==(a=o.map)&&void 0!==a?a:o.base).call(o,{node:this,keys:e,children:t,config:null!=i?i:{}},r,...n)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNode=void 0;const o=i(5);t.NumberNode=e=>{var t,i,r;const n=!!(null==e?void 0:e.color)||null!==(t=null==e?void 0:e.integer)&&void 0!==t&&t,a=(null==e?void 0:e.color)?0:null!==(i=null==e?void 0:e.min)&&void 0!==i?i:-1/0,s=(null==e?void 0:e.color)?16777215:null!==(r=null==e?void 0:e.max)&&void 0!==r?r:1/0,c=void 0!==(null==e?void 0:e.min)&&void 0!==(null==e?void 0:e.max);return{...o.Base,type:()=>"number",default:()=>a>0?a:0,validate(e,t,i,o){return o.loose&&"number"!=typeof t&&(t=this.default()),"number"!=typeof t?i.add(e,"error.expected_number"):n&&!Number.isInteger(t)?i.add(e,"error.expected_integer"):c&&(ts)?i.add(e,"error.invalid_number_range.between",t,a,s):ts&&i.add(e,"error.invalid_number_range.larger",t,s),t},hook(t,i,...o){var r;return(null!==(r=t.number)&&void 0!==r?r:t.base).call(t,{node:this,integer:n,min:a,max:s,between:c,config:null!=e?e:{}},i,...o)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectNode=t.Case=t.Switch=void 0;const o=i(5),r=i(11),n=i(12),a=i(16);t.Switch=Symbol("switch"),t.Case=Symbol("case"),t.ObjectNode=(e,i)=>{const{[t.Switch]:s,[t.Case]:c,...d}=e,l=e=>{if(void 0===s)return d;const t=r.relativePath(e,s).get(),i=c[t];return{...d,...i}},m=(e,t)=>{var o;const n=s?r.relativePath(e,s).get():void 0,a=s&&null!==(o=c[n])&&void 0!==o?o:{},d=Object.keys(a),l=(null==i?void 0:i.context)?new r.ModelPath(e.getModel(),new r.Path(e.getArray(),[i.context])):e;return(!(null==i?void 0:i.disableSwitchContext)&&n&&d.includes(t)?l.contextPush(n):l).push(t)};return{...o.Base,type:()=>"object",category:()=>null==i?void 0:i.category,default:()=>({}),keep(){return this.optional()},navigate(e,t){const i=t+1,o=e.getArray();if(o.length<=i)return this;const r=l(e.slice(0,i))[o[i]];return null==r?void 0:r.navigate(e,i)},pathPush:(e,t)=>m(e,t.toString()),suggest(e,t){const i=l(e),o=Object.keys("object"==typeof t?t:{});return Object.keys(i).filter(t=>i[t].enabled(e)).filter(e=>!o.includes(e)).map(a.quoteString)},validate(e,t,i,o){if(o.loose&&"object"!=typeof t&&(t=this.default()),"object"!=typeof t)return i.add(e,"error.expected_object"),t;let a=d;if(s){const i=r.relativePath(e,s);let l=i.get();if(e.equals(i.pop())){const r=i.last();l=d[r].validate(e.push(r),t[r],new n.Errors,o)}a={...a,...c[l]}}const l=Object.keys(a),m=l.filter(e=>!a[e].optional()),p=new Set([...m,...Object.keys(t)]);let u={};return p.forEach(r=>{if(l.includes(r)){if(!a[r].enabled(e))return;const n=a[r].validate(e.push(r),t[r],i,o);!a[r].keep()&&a[r].optional()&&(void 0===n||Array.isArray(n)&&0===n.length||n.constructor===Object&&0===Object.keys(n).length)?u[r]=void 0:(u[r]=n,e.getModel().set(e.push(r),n,!0))}else u[r]=t[r]}),u},hook(e,t,...i){var o;return(null!==(o=e.object)&&void 0!==o?o:e.base).call(e,{node:this,fields:d,filter:s,cases:c,getActiveFields:l,getChildModelPath:m},t,...i)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Reference=void 0,t.Reference=(e,t)=>({type(i){return e.get(t).type.bind(this)(i)},category(i){return e.get(t).category.bind(this)(i)},default(){return e.get(t).default.bind(this)()},transform:(i,o)=>e.get(t).transform(i,o),enabled(i){return e.get(t).enabled.bind(this)(i)},keep(){return e.get(t).keep.bind(this)()},optional(){return e.get(t).optional.bind(this)()},navigate(i,o){return e.get(t).navigate.bind(this)(i,o)},pathPush(i,o){return e.get(t).pathPush.bind(this)(i,o)},suggest(i,o){return e.get(t).suggest.bind(this)(i,o)},validate(i,o,r,n){return e.get(t).validate.bind(this)(i,o,r,n)},validationOption(i){return e.get(t).validationOption.bind(this)(i)},hook(i,o,...r){return e.get(t).hook.bind(this)(i,o,...r)},activeCase(i,o){return e.get(t).activeCase.bind(this)(i,o)},canUpdate(i,o){return e.get(t).canUpdate.bind(this)(i,o)},update(i,o){return e.get(t).update.bind(this)(i,o)}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringNode=void 0;const o=i(5),r=i(16),n=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.enum)},a=e=>{var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)};t.StringNode=(e,t)=>{const i=n(t)?"string"==typeof t.enum?()=>{var i;return null!==(i=null==e?void 0:e.get(t.enum))&&void 0!==i?i:[]}:()=>t.enum:"resource"===(null==t?void 0:t.validator)?"string"==typeof t.params.pool?t.params.pool.startsWith("$")?()=>{var i;return null!==(i=null==e?void 0:e.get(t.params.pool.slice(1)))&&void 0!==i?i:[]}:()=>{var i;return null!==(i=null==e?void 0:e.get(t.params.pool))&&void 0!==i?i:[]}:()=>t.params.pool:()=>[];return{...o.Base,type:()=>"string",default:()=>"",validate(e,o,r,s){if(s.loose&&"string"!=typeof o&&(o=this.default()||void 0),"string"!=typeof o)return r.add(e,"error.expected_string"),o;if(a(t)&&("resource"===t.validator&&o.length>0&&!o.includes(":")&&(o="#"===o[0]?"#minecraft:"+o.slice(1):"minecraft:"+o),"resource"===t.validator&&("string"==typeof t.params.pool&&t.params.pool.startsWith("$")||t.params.allowTag&&"#"===o[0]||t.params.isDefinition||t.params.allowUnknown)))return o;if(n(t)&&t.additional)return o;const c=i();return c.length>0&&!c.includes(o)&&r.add(e,"error.invalid_enum_option",o),o},suggest:()=>i().map(r.quoteString),validationOption:()=>a(t)?t:void 0,hook(e,o,...r){var n;return(null!==(n=e.string)&&void 0!==n?n:e.base).call(e,{node:this,getValues:i,config:t},o,...r)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollectionRegistry=t.SchemaRegistry=void 0;t.SchemaRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.error(`Tried to access schema "${e}", but that doesn't exist.`),t}};t.CollectionRegistry=class{constructor(){this.registry={}}register(e,t){this.registry[e]=t}get(e){const t=this.registry[e];return void 0===t&&console.warn(`Tried to access collection "${e}", but that doesn't exist.`),null!=t?t:[]}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_hurt_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:safely_harvest_honey","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:tick","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("loot_pool_entry_type",["minecraft:empty","minecraft:item","minecraft:tag","minecraft:loot_table","minecraft:alternatives","minecraft:sequence","minecraft:group","minecraft:dynamic"]),e.register("loot_condition_type",["minecraft:alternative","minecraft:inverted","minecraft:reference","minecraft:entity_properties","minecraft:block_state_property","minecraft:match_tool","minecraft:damage_source_properties","minecraft:location_check","minecraft:weather_check","minecraft:time_check","minecraft:entity_scores","minecraft:random_chance","minecraft:random_chance_with_looting","minecraft:table_bonus","minecraft:killed_by_player","minecraft:survives_explosion"]),e.register("loot_function_type",["minecraft:set_count","minecraft:set_damage","minecraft:set_name","minecraft:set_lore","minecraft:set_nbt","minecraft:set_attributes","minecraft:set_contents","minecraft:enchant_randomly","minecraft:enchant_with_levels","minecraft:looting_enchant","minecraft:limit_count","minecraft:furnace_smelt","minecraft:explosion_decay","minecraft:fill_player_head","minecraft:copy_name","minecraft:copy_nbt","minecraft:copy_state","minecraft:apply_bonus","minecraft:exploration_map","minecraft:set_stew_effect"]),e.register("attribute",["generic.maxHealth","generic.followRange","generic.knockbackResistance","generic.movementSpeed","generic.attackDamage","generic.armor","generic.armorToughness","generic.attackSpeed","generic.luck","horse.jumpStrength","generic.attackKnockback","generic.flyingSpeed","zombie.spawnReinforcements"]),e.register("structure_feature",["pillager_outpost","mineshaft","mansion","jungle_pyramid","desert_pyramid","igloo","shipwreck","swamp_hut","stronghold","monument","ocean_ruin","fortress","endcity","buried_treasure","village"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(40),r=i(8),n=i(41),a=i(42),s=i(43),c=i(17),d=i(44),l=i(45),m=i(46);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),c.initPredicatesSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),a.initLootTableSchemas(e,t),s.initPackMcmetaSchemas(e,t),d.initRecipeSchemas(e,t),l.initTagsSchemas(e,t),m.initTextComponentSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0),r=i(8),n=i(17);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t);e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:a({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(a({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(a()),frame:o.Opt(a({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(a({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(a(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(a()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(a({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:a({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:o.Opt(i("entity_predicate")),partner:o.Opt(i("entity_predicate")),child:o.Opt(i("entity_predicate"))},"minecraft:brewed_potion":{potion:o.Opt(a({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(a({enum:"dimension"})),to:o.Opt(a({enum:"dimension"}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(o.Opt(i("entity_predicate"))))},"minecraft:construct_beacon":{level:o.Opt(r.Range())},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:o.Opt(i("entity_predicate")),zombie:o.Opt(i("entity_predicate"))},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(a({validator:"resource",params:{pool:"mob_effect"}}),o.ObjectNode({amplifier:r.Range(),duration:r.Range()})))},"minecraft:enter_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:o.Opt(i("entity_predicate")),killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":n.LocationFields,"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:o.Opt(r.Range()),occupied:o.Opt(r.Range()),full:o.Opt(r.Range())})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:o.Opt(r.Range()),durability:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:o.Opt(r.Range()),victims:o.Opt(o.ListNode(o.Opt(i("entity_predicate"))))},"minecraft:levitation":{distance:o.Opt(r.Range()),duration:o.Opt(r.Range())},"minecraft:location":n.LocationFields,"minecraft:nether_travel":{distance:o.Opt(r.Range()),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(a(),a(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:o.Opt(i("entity_predicate"))},"minecraft:player_killed_entity":{entity:o.Opt(i("entity_predicate")),killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:a({validator:"resource",params:{pool:"$recipe"}})},"minecraft:safely_harvest_honey":{block:o.Opt(o.ObjectNode({block:o.Opt(a({validator:"resource",params:{pool:"block"}})),tag:o.Opt(a({validator:"resource",params:{pool:"$tag/block"}}))})),item:o.Opt(i("item_predicate"))},"minecraft:slept_in_bed":n.LocationFields,"minecraft:slide_down_block":{block:o.Opt(a({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:o.Opt(i("entity_predicate"))},"minecraft:tame_animal":{entity:o.Opt(i("entity_predicate"))},"minecraft:used_ender_eye":{distance:o.Opt(r.Range())},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":n.LocationFields}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(8);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(18),n=i(8);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:o.Opt(n.Range({integer:!0})),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:{"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()}),...s},"minecraft:copy_name":{source:u,...s},"minecraft:copy_nbt":{source:u,ops:o.ListNode(o.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"})),...s},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}})),...s},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"enchantment"}}))),...s},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:o.Opt(o.BooleanNode()),...s},"minecraft:exploration_map":{destination:o.Opt(a({enum:"structure_feature"})),decoration:o.Opt(a({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode()),...s},"minecraft:fill_player_head":{entity:p,...s},"minecraft:limit_count":{limit:n.Range({bounds:!0}),...s},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:o.Opt(o.NumberNode({integer:!0})),...s},"minecraft:set_attributes":{modifiers:o.ListNode(i("attribute_modifier")),...s},"minecraft:set_contents":{entries:o.ListNode(i("loot_entry")),...s},"minecraft:set_count":{count:n.Range({allowBinomial:!0}),...s},"minecraft:set_damage":{damage:n.Range({forceRange:!0}),...s},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(p),lore:o.ListNode(i("text_component")),replace:o.Opt(o.BooleanNode()),...s},"minecraft:set_name":{entity:o.Opt(p),name:o.Opt(i("text_component")),...s},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}}),...s},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()}))),...s}}},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:o.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:5,max:5}),{default:()=>5}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:5,description:""})})}),{default:()=>({pack:{pack_format:5,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","direct_killer","killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(49),r=i(3),n=i(50),a=i(51),s=i(52),c=i(53),d=i(54),l=i(55),m=i(56),p=i(57),u=i(58),_=i(59),f=i(67);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initLootTableSchemas(e,t),d.initPackMcmetaSchemas(e,t),l.initPredicatesSchemas(e,t),m.initRecipeSchemas(e,t),p.initTagsSchemas(e,t),u.initTextComponentSchemas(e,t),_.initWorldgenSchemas(e,t),f.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0),r=i(3);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=o.ChoiceNode([{type:"object",node:o.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:o.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:n({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(n()),frame:o.Opt(n({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(n({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(n(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(n()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(n({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(n({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(n({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:n({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({player:o.Mod(a,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:a,partner:a,child:a},"minecraft:brewed_potion":{potion:o.Opt(n({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(n({validator:"resource",params:{pool:"$dimension"}})),to:o.Opt(n({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(a))},"minecraft:construct_beacon":{level:o.Opt(r.Range())},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:a,zombie:a},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},"minecraft:enter_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:a,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:a,item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:o.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:o.Opt(r.Range()),occupied:o.Opt(r.Range()),full:o.Opt(r.Range())})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:o.Opt(r.Range()),durability:o.Opt(r.Range()),item:o.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:o.Opt(r.Range()),victims:o.Opt(o.ListNode(a))},"minecraft:levitation":{distance:o.Opt(r.Range()),duration:o.Opt(r.Range())},"minecraft:location":{location:o.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:o.Opt(r.Range()),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(n(),n(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:n({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:a},"minecraft:player_interacted_with_entity":{item:o.Opt(i("item_predicate")),entity:a},"minecraft:player_killed_entity":{entity:a,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:n({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:o.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:o.Opt(n({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:a},"minecraft:tame_animal":{entity:a},"minecraft:target_hit":{projectile:a,shooter:a,signal_strength:o.Opt(r.Range({integer:!0}))},"minecraft:thrown_item_picked_up_by_entity":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:o.Opt(r.Range())},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(3);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionSchemas=void 0;const o=i(0),r=i(3);t.initDimensionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=e=>o.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",o.Mod(o.ObjectNode({type:r.DimensionTypePresets(i("dimension_type")),generator:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:o.Opt(n({enum:["nether"]})),altitude_noise:a(i("generator_biome_noise")),temperature_noise:a(i("generator_biome_noise")),humidity_noise:a(i("generator_biome_noise")),weirdness_noise:a(i("generator_biome_noise")),biomes:a(o.Mod(o.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:o.Opt(o.NumberNode({integer:!0,min:0,max:62})),biomes:o.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:r.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:o.ObjectNode({biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:o.Opt(o.BooleanNode()),features:o.Opt(o.BooleanNode()),layers:o.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",o.Mod(o.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:o.ObjectNode({altitude:o.NumberNode({min:-1,max:1}),temperature:o.NumberNode({min:-1,max:1}),humidity:o.NumberNode({min:-1,max:1}),weirdness:o.NumberNode({min:-1,max:1}),offset:o.NumberNode({min:-1,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",o.Mod(o.ObjectNode({firstOctave:o.NumberNode({integer:!0}),amplitudes:o.ListNode(o.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionTypeSchemas=void 0;const o=i(0),r=i(3);t.initDimensionTypeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("dimension_type",o.Mod(o.ObjectNode({name:o.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:o.BooleanNode(),natural:o.BooleanNode(),piglin_safe:o.BooleanNode(),respawn_anchor_works:o.BooleanNode(),bed_works:o.BooleanNode(),has_raids:o.BooleanNode(),has_skylight:o.BooleanNode(),has_ceiling:o.BooleanNode(),coordinate_scale:o.NumberNode({min:1e-5,max:3e7}),ambient_light:o.NumberNode(),fixed_time:o.Opt(o.NumberNode({integer:!0})),logical_height:o.NumberNode({integer:!0,min:0,max:256}),effects:o.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}})},{context:"dimension_type"}),{default:()=>r.DefaultDimensionType}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(19),n=i(3);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:n.Range({allowBinomial:!0,integer:!0}),bonus_rolls:o.Opt(n.Range({integer:!0})),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:(()=>{const e={"minecraft:apply_bonus":{enchantment:a({validator:"resource",params:{pool:"enchantment"}}),formula:a({validator:"resource",params:{pool:t.get("loot_table_apply_bonus_formula")}}),parameters:o.Mod(o.ObjectNode({bonusMultiplier:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:uniform_bonus_count"===e.pop().push("formula").get()}),extra:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()}),probability:o.Mod(o.NumberNode(),{enabled:e=>"minecraft:binomial_with_bonus_count"===e.pop().push("formula").get()})}),{enabled:e=>"minecraft:ore_drops"!==e.push("formula").get()})},"minecraft:copy_name":{source:u},"minecraft:copy_nbt":{source:u,ops:o.ListNode(o.ObjectNode({source:a({validator:"nbt_path",params:{category:{getter:"copy_source",path:["pop","pop","pop",{push:"source"}]}}}),target:a({validator:"nbt_path",params:{category:"minecraft:item"}}),op:a({enum:["replace","append","merge"]})},{context:"nbt_operation"}))},"minecraft:copy_state":{block:a({validator:"resource",params:{pool:"block"}}),properties:o.ListNode(a({validator:"block_state_key",params:{id:["pop","pop",{push:"block"}]}}))},"minecraft:enchant_randomly":{enchantments:o.Opt(o.ListNode(a({validator:"resource",params:{pool:"enchantment"}})))},"minecraft:enchant_with_levels":{levels:n.Range({allowBinomial:!0}),treasure:o.Opt(o.BooleanNode())},"minecraft:exploration_map":{destination:o.Opt(a({enum:"map_feature"})),decoration:o.Opt(a({enum:"map_decoration"})),zoom:o.Opt(o.NumberNode({integer:!0})),search_radius:o.Opt(o.NumberNode({integer:!0})),skip_existing_chunks:o.Opt(o.BooleanNode())},"minecraft:fill_player_head":{entity:p},"minecraft:limit_count":{limit:n.Range({bounds:!0})},"minecraft:looting_enchant":{count:n.Range({bounds:!0}),limit:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_attributes":{modifiers:o.ListNode(i("attribute_modifier"))},"minecraft:set_contents":{entries:o.ListNode(i("loot_entry"))},"minecraft:set_count":{count:n.Range({allowBinomial:!0})},"minecraft:set_damage":{damage:n.Range({forceRange:!0})},"minecraft:set_loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),seed:o.Opt(o.NumberNode({integer:!0}))},"minecraft:set_lore":{entity:o.Opt(p),lore:o.ListNode(i("text_component")),replace:o.Opt(o.BooleanNode())},"minecraft:set_name":{entity:o.Opt(p),name:o.Opt(i("text_component"))},"minecraft:set_nbt":{tag:a({validator:"nbt",params:{registry:{category:"minecraft:item"}}})},"minecraft:set_stew_effect":{effects:o.Opt(o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"mob_effect"}}),duration:n.Range()})))}},r={};return t.get("loot_function_type").forEach(t=>{r[t]={...e[t],...s}}),r})()},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:{...n.ConditionCases,"minecraft:entity_properties":{entity:p,predicate:i("entity_predicate")},"minecraft:entity_scores":{entity:p,scores:o.MapNode(a({validator:"objective"}),n.Range({bounds:!0}))}}},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:n.Range({bounds:!0}),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:6,max:6}),{default:()=>6}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:6,description:""})})}),{default:()=>({pack:{pack_format:6,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=void 0;const o=i(0),r=i(3);t.initPredicatesSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=o.ChoiceNode([{type:"string",node:n(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(n({validator:"resource",params:{pool:"item"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/item"}})),count:o.Opt(r.Range()),durability:o.Opt(r.Range()),potion:o.Opt(n({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(n({validator:"resource",params:{pool:"enchantment"}})),levels:o.Opt(r.Range())},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(n({validator:"resource",params:{pool:"block"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(n(),a,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(n({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(n({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(n(),a))},{context:"fluid"})),e.register("location_predicate",o.ObjectNode({position:o.Opt(o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range())})),biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:o.Opt(n({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:o.Opt(n({validator:"resource",params:{pool:"$dimension"}})),light:o.Opt(o.ObjectNode({light:o.Opt(r.Range({integer:!0,min:0,max:15}))})),smokey:o.Opt(o.BooleanNode()),block:o.Opt(i("block_predicate")),fluid:o.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:n({validator:"resource",params:{pool:"stat_type"}}),stat:n(),value:r.Range(),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:n({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:n({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:n({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:n({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(n({enum:"gamemode"})),level:o.Opt(r.Range()),advancements:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(n(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:o.Opt(r.Range()),duration:o.Opt(r.Range()),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:o.Opt(r.Range()),y:o.Opt(r.Range()),z:o.Opt(r.Range()),absolute:o.Opt(r.Range()),horizontal:o.Opt(r.Range())},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(n({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(n({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(n({validator:"team"})),location:o.Opt(i("location_predicate")),distance:o.Opt(i("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(n({enum:"slot"}),i("item_predicate"))),vehicle:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),player:o.Opt(i("player_predicate")),fishing_hook:o.Opt(o.ObjectNode({in_open_water:o.Opt(o.BooleanNode())})),effects:o.Opt(o.MapNode(n({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),direct_entity:o.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:o.Opt(r.Range()),taken:o.Opt(r.Range()),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),type:o.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:o.Opt(r()),font:o.Opt(r()),bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component")),contents:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:o.Opt(o.ObjectNode({id:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.NumberNode({integer:!0})),tag:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())})),contents:o.Opt(o.Mod(o.ObjectNode({name:o.Opt(i("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const o=i(60),r=i(61),n=i(20),a=i(62),s=i(63),c=i(13),d=i(64),l=i(65),m=i(66);t.initWorldgenSchemas=function(e,t){o.initBiomeSchemas(e,t),r.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),c.initProcessorListSchemas(e,t),d.initStructureFeatureSchemas(e,t),l.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const o=i(0);t.initBiomeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("biome",o.Mod(o.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:o.NumberNode(),scale:o.NumberNode(),temperature:o.NumberNode(),downfall:o.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:o.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:o.Opt(o.BooleanNode()),creature_spawn_probability:o.Opt(o.NumberNode({min:0,max:1})),effects:o.ObjectNode({sky_color:o.NumberNode({color:!0}),fog_color:o.NumberNode({color:!0}),water_color:o.NumberNode({color:!0}),water_fog_color:o.NumberNode({color:!0}),grass_color:o.Opt(o.NumberNode({color:!0})),foliage_color:o.Opt(o.NumberNode({color:!0})),grass_color_modifier:o.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:o.Opt(i()),mood_sound:o.Opt(o.ObjectNode({sound:i(),tick_delay:o.NumberNode({integer:!0}),block_search_extent:o.NumberNode({integer:!0}),offset:o.NumberNode()})),additions_sound:o.Opt(o.ObjectNode({sound:i(),tick_chance:o.NumberNode({min:0,max:1})})),music:o.Opt(o.ObjectNode({sound:i(),min_delay:o.NumberNode({integer:!0,min:0}),max_delay:o.NumberNode({integer:!0,min:0}),replace_current_music:o.BooleanNode()})),particle:o.Opt(o.ObjectNode({options:o.ObjectNode({type:i()}),probability:o.NumberNode({min:0,max:1})}))}),starts:o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:o.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),o.Mod(o.ListNode(o.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:o.NumberNode({integer:!0}),minCount:o.NumberNode({integer:!0}),maxCount:o.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:o.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),o.Mod(o.ObjectNode({energy_budget:o.NumberNode(),charge:o.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:o.MapNode(i({enum:["air","liquid"]}),o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:o.ListNode(o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCarverSchemas=void 0;const o=i(0);t.initCarverSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("configured_carver",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/carver"}}),config:o.ObjectNode({probability:o.NumberNode({min:0,max:1})})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const o=i(0),r=i(3);i(20),i(13),t.initFeatureSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a={can_replace:o.BooleanNode(),project:o.BooleanNode(),need_water:o.BooleanNode(),xspread:o.NumberNode({integer:!0}),yspread:o.NumberNode({integer:!0}),zspread:o.NumberNode({integer:!0}),tries:o.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:o.ListNode(i("block_state")),blacklist:o.ListNode(i("block_state"))},s={state:i("block_state"),radius:r.UniformInt({min:0,max:4,maxSpread:4}),half_height:o.NumberNode({integer:!0,min:0,max:4}),targets:o.ListNode(i("block_state"))},c={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:o.NumberNode({integer:!0})},d={state:i("block_state"),size:o.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},l={count:r.UniformInt({min:-10,max:128,maxSpread:128})},m=o.ChoiceNode([{type:"string",node:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"});e.register("configured_feature",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:o.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:r.UniformInt({min:0,max:2,maxSpread:1}),height:r.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:m},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:m},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:r.UniformInt({min:0,max:8,maxSpread:8}),rim_size:r.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":s,"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:o.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:o.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:o.ListNode(o.ObjectNode({centerX:o.NumberNode({integer:!0}),centerZ:o.NumberNode({integer:!0}),radius:o.NumberNode({integer:!0}),height:o.NumberNode({integer:!0}),guarded:o.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:o.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":a,"minecraft:forest_rock":{state:i("block_state")},"minecraft:huge_brown_mushroom":c,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.BooleanNode()},"minecraft:huge_red_mushroom":c,"minecraft:ice_patch":s,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:r.UniformInt()},"minecraft:no_surface_ore":d,"minecraft:ore":d,"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:m,feature_true:m},"minecraft:random_selector":{features:o.ListNode(o.ObjectNode({chance:o.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:sea_pickle":l,"minecraft:seagrass":{probability:o.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state"),place_on:o.ListNode(i("block_state")),place_in:o.ListNode(i("block_state")),place_under:o.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:o.ListNode(m)},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:o.NumberNode({integer:!0}),hole_count:o.NumberNode({integer:!0}),requires_block_below:o.BooleanNode(),valid_blocks:o.ListNode(n({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{max_water_depth:o.NumberNode({integer:!0}),ignore_vines:o.BooleanNode(),heightmap:n({enum:"heightmap_type"}),minimum_size:i("feature_size"),trunk_provider:i("block_state_provider"),leaves_provider:i("block_state_provider"),trunk_placer:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:o.NumberNode({integer:!0,min:0,max:32}),height_rand_a:o.NumberNode({integer:!0,min:0,max:24}),height_rand_b:o.NumberNode({integer:!0,min:0,max:24})},{context:"trunk_placer"}),foliage_placer:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:r.UniformInt({min:0,max:8,maxSpread:8}),offset:r.UniformInt({min:0,max:8,maxSpread:8}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:spruce_foliage_placer":{trunk_height:r.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:o.ListNode(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:o.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:o.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))}}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:o.Opt(o.NumberNode({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:81})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),upper_limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),middle_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:o.ListNode(o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:column_placer":{min_size:o.NumberNode({integer:!0}),extra_size:o.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const o=i(0),r=i(3);t.initNoiseSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("noise_settings",o.Mod(o.ObjectNode({name:o.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:o.NumberNode({integer:!0}),bedrock_floor_position:o.NumberNode({integer:!0}),sea_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:o.ObjectNode({height:o.NumberNode({integer:!0}),density_factor:o.NumberNode(),density_offset:o.NumberNode(),size_horizontal:o.NumberNode({integer:!0}),size_vertical:o.NumberNode({integer:!0}),simplex_surface_noise:o.BooleanNode(),random_density_offset:o.Opt(o.BooleanNode()),island_noise_override:o.Opt(o.BooleanNode()),amplified:o.Opt(o.BooleanNode()),sampling:o.ObjectNode({xz_scale:o.NumberNode(),y_scale:o.NumberNode(),xz_factor:o.NumberNode(),y_factor:o.NumberNode()}),bottom_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),{default:()=>r.DefaultNoiseSettings})),e.register("generator_structures",o.ObjectNode({stronghold:o.Opt(o.ObjectNode({distance:o.NumberNode({integer:!0,min:0,max:1023}),spread:o.NumberNode({integer:!0,min:0,max:1023}),count:o.NumberNode({integer:!0,min:1,max:4095})})),structures:o.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),o.Mod(o.ObjectNode({spacing:o.NumberNode({integer:!0,min:0,max:4096}),separation:o.Mod(o.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,o,r)=>(t.pop().push("spacing").get()<=i&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,i,o,r))})),salt:o.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",o.Mod(o.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:o.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initStructureFeatureSchemas=void 0;const o=i(0);t.initStructureFeatureSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:o.NumberNode({integer:!0})};e.register("configured_structure_feature",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:o.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:o.NumberNode({min:0,max:1}),cluster_probability:o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.BooleanNode()},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSurfaceBuilderSchemas=void 0;const o=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=o.Reference.bind(void 0,e);e.register("configured_surface_builder",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:o.ObjectNode({top_material:r("block_state"),under_material:r("block_state"),underwater_material:r("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTemplatePoolSchemas=void 0;const o=i(0);i(13),t.initTemplatePoolSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"string",node:r({validator:"resource",params:{pool:"$worldgen/processor_list"}}),change:e=>{}},{type:"object",node:i("processor_list"),change:e=>({processors:[{processor_type:"minecraft:nop"}]})}]);e.register("template_pool",o.Mod(o.ObjectNode({name:r(),fallback:r(),elements:o.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",o.Mod(o.ObjectNode({element_type:r({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:r({enum:["rigid","terrain_matching"]}),[o.Switch]:[{push:"element_type"}],[o.Case]:{"minecraft:feature_pool_element":{feature:r({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:n},"minecraft:legacy_single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:n},"minecraft:list_pool_element":{elements:o.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:r({validator:"resource",params:{pool:"$structure"}}),processors:n}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldSettingsSchemas=void 0;const o=i(0);t.initWorldSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("world_settings",o.Mod(o.ObjectNode({generate_features:o.BooleanNode(),bonus_chest:o.BooleanNode(),seed:o.NumberNode({integer:!0}),dimensions:o.MapNode(r({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCollections=void 0,t.initCollections=function(e){e.register("advancement_trigger",["minecraft:bee_nest_destroyed","minecraft:bred_animals","minecraft:brewed_potion","minecraft:changed_dimension","minecraft:channeled_lightning","minecraft:construct_beacon","minecraft:consume_item","minecraft:cured_zombie_villager","minecraft:effects_changed","minecraft:enchanted_item","minecraft:enter_block","minecraft:entity_hurt_player","minecraft:entity_killed_player","minecraft:filled_bucket","minecraft:fishing_rod_hooked","minecraft:hero_of_the_village","minecraft:impossible","minecraft:inventory_changed","minecraft:item_durability_changed","minecraft:item_used_on_block","minecraft:killed_by_crossbow","minecraft:levitation","minecraft:location","minecraft:nether_travel","minecraft:placed_block","minecraft:player_generates_container_loot","minecraft:player_hurt_entity","minecraft:player_interacted_with_entity","minecraft:player_killed_entity","minecraft:recipe_unlocked","minecraft:shot_crossbow","minecraft:slept_in_bed","minecraft:slide_down_block","minecraft:summoned_entity","minecraft:tame_animal","minecraft:target_hit","minecraft:tick","minecraft:thrown_item_picked_up_by_entity","minecraft:used_ender_eye","minecraft:used_totem","minecraft:villager_trade","minecraft:voluntary_exile"]),e.register("dimension",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("dimension_type",["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]),e.register("keybind",["key.advancements","key.attack","key.back","key.chat","key.command","key.drop","key.forward","key.fullscreen","key.hotbar.1","key.hotbar.2","key.hotbar.3","key.hotbar.4","key.hotbar.5","key.hotbar.6","key.hotbar.7","key.hotbar.8","key.hotbar.9","key.inventory","key.jump","key.left","key.loadToolbarActivator","key.pickItem","key.playerlist","key.right","key.saveToolbarActivator","key.screenshot","key.smoothCamera","key.sneak","key.spectatorOutlines","key.sprint","key.swapOffhand","key.togglePerspective","key.use"]),e.register("slot",["mainhand","offhand","head","chest","legs","feet"]),e.register("gamemode",["survival","creative","adventure","spectator"]),e.register("worldgen/noise_settings",["minecraft:overworld","minecraft:nether","minecraft:end","minecraft:amplified","minecraft:caves","minecraft:floating_islands"]),e.register("entity_source",["this","killer","direct_killer","killer_player"]),e.register("copy_source",["block_entity","this","killer","killer_player"]),e.register("loot_table_apply_bonus_formula",["minecraft:uniform_bonus_count","minecraft:binomial_with_bonus_count","minecraft:ore_drops"]),e.register("map_decoration",["mansion","monument","player","frame","red_marker","blue_marker","target_x","target_point","player_off_map","player_off_limits","red_x","banner_white","banner_orange","banner_magenta","banner_light_blue","banner_yellow","banner_lime","banner_pink","banner_gray","banner_light_gray","banner_cyan","banner_purple","banner_blue","banner_brown","banner_green","banner_red","banner_black"]),e.register("map_feature",["bastion_remnant","buried_treasure","desert_pyramid","endcity","fortress","igloo","jungle_pyramid","mansion","mineshaft","monument","nether_fossil","ocean_ruin","pillager_outpost","ruined_portal","shipwreck","stronghold","swamp_hut","village"]),e.register("recipe_group",["bed","light_gray_dye","iron_ingot","wooden_stairs","black_dye","stained_terracotta","dyed_bed","magenta_dye","bark","rabbit_stew","light_blue_dye","wooden_fence_gate","planks","stained_glass","wooden_door","stained_glass_pane","wooden_fence","sticks","concrete_powder","wooden_pressure_plate","boat","brown_dye","yellow_dye","bonemeal","red_dye","wooden_trapdoor","wooden_button","gold_ingot","pink_dye","wooden_slab","orange_dye","carpet","sign","wool","sugar","blue_dye","white_dye","banner","netherite_ingot"]),e.register("worldgen/configured_feature",["minecraft:acacia","minecraft:bamboo_light","minecraft:bamboo_vegetation","minecraft:bamboo","minecraft:basalt_blobs","minecraft:basalt_pillar","minecraft:birch_bees_0002","minecraft:birch_bees_002","minecraft:birch_bees_005","minecraft:birch_other","minecraft:birch_tall","minecraft:birch","minecraft:blackstone_blobs","minecraft:blue_ice","minecraft:bonus_chest","minecraft:brown_mushroom_giant","minecraft:brown_mushroom_nether","minecraft:brown_mushroom_normal","minecraft:brown_mushroom_swamp","minecraft:brown_mushroom_taiga","minecraft:chorus_plant","minecraft:crimson_forest_vegetation","minecraft:crimson_fungi_planted","minecraft:crimson_fungi","minecraft:dark_forest_vegetation_brown","minecraft:dark_forest_vegetation_red","minecraft:dark_oak","minecraft:delta","minecraft:desert_well","minecraft:disk_clay","minecraft:disk_gravel","minecraft:disk_sand","minecraft:end_gateway_delayed","minecraft:end_gateway","minecraft:end_island_decorated","minecraft:end_island","minecraft:end_spike","minecraft:fancy_oak_bees_0002","minecraft:fancy_oak_bees_002","minecraft:fancy_oak_bees_005","minecraft:fancy_oak","minecraft:flower_default","minecraft:flower_forest","minecraft:flower_plain_decorated","minecraft:flower_plain","minecraft:flower_swamp","minecraft:flower_warm","minecraft:forest_flower_trees","minecraft:forest_flower_vegetation_common","minecraft:forest_flower_vegetation","minecraft:forest_rock","minecraft:fossil","minecraft:freeze_top_layer","minecraft:glowstone_extra","minecraft:glowstone","minecraft:huge_brown_mushroom","minecraft:huge_red_mushroom","minecraft:ice_patch","minecraft:ice_spike","minecraft:iceberg_blue","minecraft:iceberg_packed","minecraft:jungle_bush","minecraft:jungle_tree_no_vine","minecraft:jungle_tree","minecraft:kelp_cold","minecraft:kelp_warm","minecraft:lake_lava","minecraft:lake_water","minecraft:large_basalt_columns","minecraft:mega_jungle_tree","minecraft:mega_pine","minecraft:mega_spruce","minecraft:monster_room","minecraft:mushroom_field_vegetation","minecraft:nether_sprouts","minecraft:oak_badlands","minecraft:oak_bees_0002","minecraft:oak_bees_002","minecraft:oak_bees_005","minecraft:oak","minecraft:ore_andesite","minecraft:ore_blackstone","minecraft:ore_coal","minecraft:ore_debris_large","minecraft:ore_debris_small","minecraft:ore_diamond","minecraft:ore_diorite","minecraft:ore_dirt","minecraft:ore_emerald","minecraft:ore_gold_deltas","minecraft:ore_gold_extra","minecraft:ore_gold_nether","minecraft:ore_gold","minecraft:ore_granite","minecraft:ore_gravel_nether","minecraft:ore_gravel","minecraft:ore_infested","minecraft:ore_iron","minecraft:ore_lapis","minecraft:ore_magma","minecraft:ore_quartz_deltas","minecraft:ore_quartz_nether","minecraft:ore_redstone","minecraft:ore_soul_sand","minecraft:patch_berry_bush","minecraft:patch_berry_decorated","minecraft:patch_berry_sparse","minecraft:patch_brown_mushroom","minecraft:patch_cactus_decorated","minecraft:patch_cactus_desert","minecraft:patch_cactus","minecraft:patch_crimson_roots","minecraft:patch_dead_bush_2","minecraft:patch_dead_bush_badlands","minecraft:patch_dead_bush","minecraft:patch_fire","minecraft:patch_grass_badlands","minecraft:patch_grass_forest","minecraft:patch_grass_jungle","minecraft:patch_grass_normal","minecraft:patch_grass_plain","minecraft:patch_grass_savanna","minecraft:patch_grass_taiga_2","minecraft:patch_grass_taiga","minecraft:patch_large_fern","minecraft:patch_melon","minecraft:patch_pumpkin","minecraft:patch_red_mushroom","minecraft:patch_soul_fire","minecraft:patch_sugar_cane_badlands","minecraft:patch_sugar_cane_desert","minecraft:patch_sugar_cane_swamp","minecraft:patch_sugar_cane","minecraft:patch_sunflower","minecraft:patch_taiga_grass","minecraft:patch_tall_grass_2","minecraft:patch_tall_grass","minecraft:patch_waterlilly","minecraft:pile_hay","minecraft:pile_ice","minecraft:pile_melon","minecraft:pile_pumpkin","minecraft:pile_snow","minecraft:pine","minecraft:plain_vegetation","minecraft:red_mushroom_giant","minecraft:red_mushroom_nether","minecraft:red_mushroom_normal","minecraft:red_mushroom_swamp","minecraft:red_mushroom_taiga","minecraft:sea_pickle","minecraft:seagrass_cold","minecraft:seagrass_deep_cold","minecraft:seagrass_deep_warm","minecraft:seagrass_deep","minecraft:seagrass_normal","minecraft:seagrass_river","minecraft:seagrass_simple","minecraft:seagrass_swamp","minecraft:seagrass_warm","minecraft:small_basalt_columns","minecraft:spring_closed_double","minecraft:spring_closed","minecraft:spring_delta","minecraft:spring_lava_double","minecraft:spring_lava","minecraft:spring_open","minecraft:spring_water","minecraft:spruce_snowy","minecraft:spruce","minecraft:super_birch_bees_0002","minecraft:swamp_tree","minecraft:taiga_vegetation","minecraft:trees_birch","minecraft:trees_giant_spruce","minecraft:trees_giant","minecraft:trees_jungle_edge","minecraft:trees_jungle","minecraft:trees_mountain_edge","minecraft:trees_mountain","minecraft:trees_savanna","minecraft:trees_shattered_savanna","minecraft:trees_water","minecraft:twisting_vines","minecraft:vines","minecraft:void_start_platform","minecraft:warm_ocean_vegetation","minecraft:warped_forest_vegetation","minecraft:warped_fungi_planted","minecraft:warped_fungi","minecraft:weeping_vines"]),e.register("worldgen/configured_structure_feature",["minecraft:bastion_remnant","minecraft:buried_treasure","minecraft:desert_pyramid","minecraft:end_city","minecraft:fortress","minecraft:igloo","minecraft:jungle_pyramid","minecraft:mansion","minecraft:mineshaft_mesa","minecraft:mineshaft","minecraft:monument","minecraft:nether_fossil","minecraft:ocean_ruin_cold","minecraft:ocean_ruin_warm","minecraft:pillager_outpost","minecraft:ruined_portal_desert","minecraft:ruined_portal_jungle","minecraft:ruined_portal_mountain","minecraft:ruined_portal_nether","minecraft:ruined_portal_ocean","minecraft:ruined_portal_swamp","minecraft:ruined_portal","minecraft:shipwreck_beached","minecraft:shipwreck","minecraft:stronghold","minecraft:swamp_hut","minecraft:village_desert","minecraft:village_plains","minecraft:village_savanna","minecraft:village_snowy","minecraft:village_taiga"]),e.register("worldgen/configured_surface_builder",["minecraft:badlands","minecraft:basalt_deltas","minecraft:crimson_forest","minecraft:desert","minecraft:end","minecraft:eroded_badlands","minecraft:frozen_ocean","minecraft:full_sand","minecraft:giant_tree_taiga","minecraft:grass","minecraft:gravelly_mountain","minecraft:ice_spikes","minecraft:mountain","minecraft:mycelium","minecraft:nether","minecraft:nope","minecraft:ocean_sand","minecraft:shattered_savanna","minecraft:soul_sand_valley","minecraft:stone","minecraft:swamp","minecraft:warped_forest","minecraft:wooded_badlands"]),e.register("biome_category",["beach","desert","extreme_hills","forest","icy","jungle","mesa","mushroom","nether","none","ocean","plains","river","savanna","swamp","taiga","the_end"]),e.register("heightmap_type",["MOTION_BLOCKING","MOTION_BLOCKING_NO_LEAVES","OCEAN_FLOOR","OCEAN_FLOOR_WG","WORLD_SURFACE","WORLD_SURFACE_WG"]),e.register("generation_step",["air","liquid"]),e.register("loot_context_type",["minecraft:empty","minecraft:chest","minecraft:command","minecraft:selector","minecraft:fishing","minecraft:entity","minecraft:gift","minecraft:barter","minecraft:advancement_reward","minecraft:advancement_entity","minecraft:generic","minecraft:block"]),e.register("banner_pattern",["base","square_bottom_left","square_bottom_right","square_top_left","square_top_right","stripe_bottom","stripe_top","stripe_left","stripe_right","stripe_center","stripe_middle","stripe_downright","stripe_downleft","small_stripes","cross","straight_cross","triangle_bottom","triangle_top","triangles_bottom","triangles_top","diagonal_left","diagonal_up_right","diagonal_up_left","diagonal_right","circle","rhombus","half_vertical","half_horizontal","half_vertical_right","half_horizontal_bottom","border","curly_border","gradient","gradient_up","bricks","globe","creeper","skull","flower","mojang","piglin"]),e.register("dye_color",["white","orange","magenta","light_blue","yellow","lime","pink","gray","light_gray","cyan","purple","blue","brown","green","red","black"])}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSchemas=void 0;const o=i(70),r=i(4),n=i(71),a=i(72),s=i(73),c=i(74),d=i(75),l=i(76),m=i(77),p=i(78),u=i(79),_=i(80),f=i(81),g=i(89);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initItemModifierSchemas(e,t),d.initLootTableSchemas(e,t),l.initPackMcmetaSchemas(e,t),m.initPredicatesSchemas(e,t),p.initRecipeSchemas(e,t),u.initTagsSchemas(e,t),_.initTextComponentSchemas(e,t),f.initWorldgenSchemas(e,t),g.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const o=i(0);t.initAdvancementSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"object",node:o.Opt(i("entity_predicate")),change:e=>{var t,i;return null!==(i=null===(t=e[0])||void 0===t?void 0:t.predicate)&&void 0!==i?i:{}}},{type:"list",node:o.ListNode(i("condition")),change:e=>[{condition:"minecraft:entity_properties",predicate:e}]}],{context:"conditions"});e.register("advancement",o.Mod(o.ObjectNode({display:o.Opt(o.Mod(o.ObjectNode({icon:o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}}))}),title:i("text_component"),description:i("text_component"),background:o.Opt(r()),frame:o.Opt(r({enum:["task","challenge","goal"]})),show_toast:o.Opt(o.BooleanNode()),announce_to_chat:o.Opt(o.BooleanNode()),hidden:o.Opt(o.BooleanNode())}),{default:()=>({icon:{item:"minecraft:stone"},title:"",description:""})})),parent:o.Opt(r({validator:"resource",params:{pool:"$advancement"}})),criteria:o.MapNode(r(),i("advancement_criteria")),requirements:o.Opt(o.ListNode(o.ListNode(r()))),rewards:o.Opt(o.ObjectNode({function:o.Opt(r({validator:"resource",params:{pool:"$function"}})),loot:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"$loot_table"}}))),recipes:o.Opt(o.ListNode(r({validator:"resource",params:{pool:"$recipe"}}))),experience:o.Opt(o.NumberNode({integer:!0}))}))},{context:"advancement"}),{default:()=>({criteria:{requirement:{trigger:"minecraft:location"}}})})),e.register("advancement_criteria",o.ObjectNode({trigger:r({validator:"resource",params:{pool:t.get("advancement_trigger")}}),conditions:o.Opt(o.ObjectNode({player:o.Mod(n,{enabled:e=>"minecraft:impossible"!==e.pop().push("trigger").get()}),[o.Switch]:["pop",{push:"trigger"}],[o.Case]:{"minecraft:bee_nest_destroyed":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),num_bees_inside:o.Opt(o.NumberNode({integer:!0})),item:o.Opt(i("item_predicate"))},"minecraft:bred_animals":{parent:n,partner:n,child:n},"minecraft:brewed_potion":{potion:o.Opt(r({validator:"resource",params:{pool:"potion"}}))},"minecraft:changed_dimension":{from:o.Opt(r({validator:"resource",params:{pool:"$dimension"}})),to:o.Opt(r({validator:"resource",params:{pool:"$dimension"}}))},"minecraft:channeled_lightning":{victims:o.Opt(o.ListNode(n))},"minecraft:construct_beacon":{level:i("int_bounds")},"minecraft:consume_item":{item:o.Opt(i("item_predicate"))},"minecraft:cured_zombie_villager":{villager:n,zombie:n},"minecraft:effects_changed":{effects:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"mob_effect"}}),o.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds")})))},"minecraft:enter_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},"minecraft:enchanted_item":{levels:i("int_bounds"),item:o.Opt(i("item_predicate"))},"minecraft:entity_hurt_player":{damage:o.Opt(i("damage_predicate"))},"minecraft:entity_killed_player":{entity:n,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:filled_bucket":{item:o.Opt(i("item_predicate"))},"minecraft:fishing_rod_hooked":{entity:n,item:o.Opt(i("item_predicate"))},"minecraft:hero_of_the_village":{location:o.Opt(i("location_predicate"))},"minecraft:inventory_changed":{slots:o.Opt(o.ObjectNode({empty:i("int_bounds"),occupied:i("int_bounds"),full:i("int_bounds")})),items:o.Opt(o.ListNode(i("item_predicate")))},"minecraft:item_durability_changed":{delta:i("int_bounds"),durability:i("int_bounds"),item:o.Opt(i("item_predicate"))},"minecraft:item_used_on_block":{item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:killed_by_crossbow":{unique_entity_types:i("int_bounds"),victims:o.Opt(o.ListNode(n))},"minecraft:levitation":{distance:i("distance_predicate"),duration:i("int_bounds")},"minecraft:location":{location:o.Opt(i("location_predicate"))},"minecraft:nether_travel":{distance:i("distance_predicate"),entered:o.Opt(i("location_predicate")),exited:o.Opt(i("location_predicate"))},"minecraft:placed_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}})),state:o.Opt(o.MapNode(r(),r(),{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}})),item:o.Opt(i("item_predicate")),location:o.Opt(i("location_predicate"))},"minecraft:player_generates_container_loot":{loot_table:r({validator:"resource",params:{pool:"$loot_table"}})},"minecraft:player_hurt_entity":{damage:o.Opt(i("damage_predicate")),entity:n},"minecraft:player_interacted_with_entity":{item:o.Opt(i("item_predicate")),entity:n},"minecraft:player_killed_entity":{entity:n,killing_blow:o.Opt(i("damage_source_predicate"))},"minecraft:recipe_unlocked":{recipe:r({validator:"resource",params:{pool:"$recipe"}})},"minecraft:slept_in_bed":{location:o.Opt(i("location_predicate"))},"minecraft:slide_down_block":{block:o.Opt(r({validator:"resource",params:{pool:"block"}}))},"minecraft:shot_crossbow":{item:o.Opt(i("item_predicate"))},"minecraft:summoned_entity":{entity:n},"minecraft:tame_animal":{entity:n},"minecraft:target_hit":{projectile:n,shooter:n,signal_strength:i("int_bounds")},"minecraft:thrown_item_picked_up_by_entity":{entity:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:used_ender_eye":{distance:i("float_bounds")},"minecraft:used_totem":{item:o.Opt(i("item_predicate"))},"minecraft:villager_trade":{villager:o.Opt(i("entity_predicate")),item:o.Opt(i("item_predicate"))},"minecraft:voluntary_exile":{location:i("location_predicate")}}},{context:"criterion"}))},{category:"predicate",context:"criterion"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initConditionSchemas=void 0;const o=i(0),r=i(4);t.initConditionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("predicate",o.ObjectOrList(i("condition"),{choiceContext:"condition"})),e.register("condition",o.Mod(o.ObjectNode({condition:n({validator:"resource",params:{pool:"loot_condition_type"}}),[o.Switch]:[{push:"condition"}],[o.Case]:r.ConditionCases()},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:entity_properties",entity:"this"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionSchemas=void 0;const o=i(0),r=i(4);t.initDimensionSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t),a=e=>o.Mod(e,{enabled:e=>void 0===e.push("preset").get()});e.register("dimension",o.Mod(o.ObjectNode({type:r.DimensionTypePresets(i("dimension_type")),generator:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/chunk_generator"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),seed:o.NumberNode({integer:!0}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{preset:o.Opt(n({enum:["nether"]})),altitude_noise:a(i("generator_biome_noise")),temperature_noise:a(i("generator_biome_noise")),humidity_noise:a(i("generator_biome_noise")),weirdness_noise:a(i("generator_biome_noise")),biomes:a(o.Mod(o.ListNode(i("generator_biome")),{default:()=>[{biome:"minecraft:plains"}]}))},"minecraft:checkerboard":{scale:o.Opt(o.NumberNode({integer:!0,min:0,max:62})),biomes:o.ListNode(n({validator:"resource",params:{pool:"$worldgen/biome"}}))},"minecraft:vanilla_layered":{large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0}),settings:r.NoiseSettingsPresets(i("noise_settings"))},"minecraft:flat":{settings:o.ObjectNode({biome:o.Opt(n({validator:"resource",params:{pool:"$worldgen/biome"}})),lakes:o.Opt(o.BooleanNode()),features:o.Opt(o.BooleanNode()),layers:o.ListNode(i("generator_layer")),structures:i("generator_structures")})}}},{disableSwitchContext:!0})},{category:"pool",context:"dimension"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:fixed",seed:e,biome:"minecraft:plains"},settings:"minecraft:overworld"}}}})),e.register("generator_biome",o.Mod(o.ObjectNode({biome:n({validator:"resource",params:{pool:"$worldgen/biome"}}),parameters:o.ObjectNode({altitude:o.NumberNode({min:-1,max:1}),temperature:o.NumberNode({min:-1,max:1}),humidity:o.NumberNode({min:-1,max:1}),weirdness:o.NumberNode({min:-1,max:1}),offset:o.NumberNode({min:-1,max:1})})},{context:"generator_biome"}),{default:()=>({biome:"minecraft:plains",parameters:{altitude:0,temperature:0,humidity:0,weirdness:0,offset:0}})})),e.register("generator_biome_noise",o.Mod(o.ObjectNode({firstOctave:o.NumberNode({integer:!0}),amplitudes:o.ListNode(o.NumberNode())},{context:"generator_biome_noise"}),{default:()=>({firstOctave:-7,amplitudes:[1,1]})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initDimensionTypeSchemas=void 0;const o=i(0),r=i(4);t.initDimensionTypeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("dimension_type",o.Mod(o.ObjectNode({name:o.Mod(i({validator:"resource",params:{pool:"$dimension_type",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),ultrawarm:o.BooleanNode(),natural:o.BooleanNode(),piglin_safe:o.BooleanNode(),respawn_anchor_works:o.BooleanNode(),bed_works:o.BooleanNode(),has_raids:o.BooleanNode(),has_skylight:o.BooleanNode(),has_ceiling:o.BooleanNode(),coordinate_scale:o.NumberNode({min:1e-5,max:3e7}),ambient_light:o.NumberNode(),fixed_time:o.Opt(o.NumberNode({integer:!0})),logical_height:o.NumberNode({integer:!0,min:0,max:4096}),effects:o.Opt(i({enum:["minecraft:overworld","minecraft:the_nether","minecraft:the_end"]})),infiniburn:i({validator:"resource",params:{pool:"$tag/block"}}),min_y:o.NumberNode({integer:!0,min:-2048,max:2047}),height:o.NumberNode({integer:!0,min:0,max:4096})},{context:"dimension_type"}),e=>({default:()=>r.DefaultDimensionType,validate:(t,i,o,r)=>((null==(i=e.validate(t,i,o,r))?void 0:i.min_y)+(null==i?void 0:i.height)>2047&&o.add(t.push("height"),"error.min_y_plus_height",2047),(null==i?void 0:i.logical_height)>(null==i?void 0:i.height)&&o.add(t.push("logical_height"),"error.logical_height"),(null==i?void 0:i.height)%16!=0&&o.add(t.push("height"),"error.height_multiple",16),(null==i?void 0:i.min_y)%16!=0&&o.add(t.push("min_y"),"error.min_y_multiple",16),i)})))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initItemModifierSchemas=void 0;const o=i(0),r=i(4);t.initItemModifierSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("item_modifier",o.ObjectOrList(i("function"),{choiceContext:"function"}));const a={conditions:o.Opt(o.ListNode(i("condition")))};e.register("function",o.Mod(o.ObjectNode({function:n({validator:"resource",params:{pool:"loot_function_type"}}),[o.Switch]:[{push:"function"}],[o.Case]:r.FunctionCases(a)},{category:"function",context:"function"}),{default:()=>[{function:"minecraft:set_count",count:1}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initLootTableSchemas=void 0;const o=i(0),r=i(21),n=i(4);t.initLootTableSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={conditions:o.Opt(o.ListNode(i("loot_condition")))},c={functions:o.Opt(o.ListNode(i("loot_function"))),...s};function d(e,i,n){const a=[],s=o=>t.get(i).filter(t=>{var i;return(null!==(i=e.get(t))&&void 0!==i?i:[]).every(e=>o.includes(e))});for(const[e,{allows:t,requires:i}]of r.LootTableTypes){const r=[...t,...i];a.push({match:t=>t.getModel().get(new o.Path(["type"]))===e,node:n(s(r))})}return a.push({match:e=>!0,node:n(i)}),o.SwitchNode(a)}const l=d(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=d(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=d(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=d(r.LootCopySources,"copy_source",e=>a({enum:e}));e.register("loot_table",o.Mod(o.ObjectNode({type:o.Opt(a({validator:"resource",params:{pool:t.get("loot_context_type")}})),pools:o.Opt(o.ListNode(o.Mod(o.ObjectNode({rolls:i("number_provider"),bonus_rolls:o.Opt(i("number_provider")),entries:o.ListNode(i("loot_entry")),...c},{category:"pool",context:"loot_pool"}),{default:()=>({rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]})}))),functions:o.Opt(o.ListNode(i("loot_function")))},{context:"loot_table"}),{default:()=>({pools:[{rolls:1,entries:[{type:"minecraft:item",name:"minecraft:stone"}]}]})}));const _={enabled:e=>{var t;return(null===(t=e.pop().get())||void 0===t?void 0:t.length)>1&&!["minecraft:alternatives","minecraft:group","minecraft:sequence"].includes(e.push("type").get())}};e.register("loot_entry",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"loot_pool_entry_type"}}),weight:o.Opt(o.Mod(o.NumberNode({integer:!0,min:1}),_)),quality:o.Opt(o.Mod(o.NumberNode({integer:!0}),_)),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alternatives":{children:o.ListNode(i("loot_entry")),...c},"minecraft:dynamic":{name:a(),...c},"minecraft:group":{children:o.ListNode(i("loot_entry")),...c},"minecraft:item":{name:a({validator:"resource",params:{pool:"item"}}),...c},"minecraft:loot_table":{name:a({validator:"resource",params:{pool:"$loot_table"}}),...c},"minecraft:sequence":{children:o.ListNode(i("loot_entry")),...c},"minecraft:tag":{name:a({validator:"resource",params:{pool:"$tag/item"}}),expand:o.Opt(o.BooleanNode()),...c}}},{context:"loot_entry"}),{default:()=>({type:"minecraft:item",name:"minecraft:stone"})})),e.register("loot_function",o.Mod(o.ObjectNode({function:m,[o.Switch]:[{push:"function"}],[o.Case]:n.FunctionCases(s,u,p)},{category:"function",context:"function"}),{default:()=>({function:"minecraft:set_count",count:1})})),e.register("loot_condition",o.Mod(o.ObjectNode({condition:l,[o.Switch]:[{push:"condition"}],[o.Case]:n.ConditionCases(p)},{category:"predicate",context:"condition"}),{default:()=>({condition:"minecraft:random_chance",chance:.5})})),e.register("attribute_modifier",o.Mod(o.ObjectNode({attribute:a({validator:"resource",params:{pool:"attribute"}}),name:a(),amount:i("number_provider"),operation:a({enum:["addition","multiply_base","multiply_total"]}),slot:o.StringOrList(a({enum:"slot"}))},{context:"attribute_modifier"}),{default:()=>({attribute:"minecraft:generic.max_health",name:"",amount:1,operation:"addition",slot:"mainhand"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPackMcmetaSchemas=void 0;const o=i(0);t.initPackMcmetaSchemas=function(e,t){e.register("pack_mcmeta",o.Mod(o.ObjectNode({pack:o.Mod(o.ObjectNode({pack_format:o.Mod(o.NumberNode({integer:!0,min:7,max:7}),{default:()=>7,canUpdate:(e,t)=>7!==t,update:()=>[{name:"pack_format",params:[7],newValue:7}]}),description:o.Reference(e,"text_component")}),{default:()=>({pack_format:7,description:""})})}),{default:()=>({pack:{pack_format:7,description:""}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initPredicatesSchemas=void 0;const o=i(0);t.initPredicatesSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=o.ChoiceNode([{type:"string",node:r(),change:e=>"boolean"==typeof e||"number"==typeof e?e.toString():""},{type:"number",node:o.NumberNode(),change:e=>"string"==typeof e?parseInt(e):0},{type:"object",node:o.ObjectNode({min:o.Opt(o.NumberNode({integer:!0})),max:o.Opt(o.NumberNode({integer:!0}))}),change:e=>"number"==typeof e?{min:e,max:e}:{}},{type:"boolean",node:o.BooleanNode(),change:e=>"true"===e||1===e}]);e.register("item_predicate",o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}})),count:i("int_bounds"),durability:i("int_bounds"),potion:o.Opt(r({validator:"resource",params:{pool:"potion"}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"item"}]}}})),enchantments:o.Opt(o.ListNode(i("enchantment_predicate")))},{context:"item"})),e.register("enchantment_predicate",o.ObjectNode({enchantment:o.Opt(r({validator:"resource",params:{pool:"enchantment"}})),levels:i("int_bounds")},{context:"enchantment"})),e.register("block_predicate",o.ObjectNode({block:o.Opt(r({validator:"resource",params:{pool:"block"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/block"}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:block",id:["pop",{push:"block"}]}}})),state:o.Opt(o.MapNode(r(),n,{validation:{validator:"block_state_map",params:{id:["pop",{push:"block"}]}}}))},{context:"block"})),e.register("fluid_predicate",o.ObjectNode({fluid:o.Opt(r({validator:"resource",params:{pool:"fluid"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/fluid"}})),state:o.Opt(o.MapNode(r(),n))},{context:"fluid"})),e.register("location_predicate",o.ObjectNode({position:o.Opt(o.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds")})),biome:o.Opt(r({validator:"resource",params:{pool:"$worldgen/biome"}})),feature:o.Opt(r({enum:t.get("worldgen/structure_feature").map(e=>e.slice(10))})),dimension:o.Opt(r({validator:"resource",params:{pool:"$dimension"}})),light:o.Opt(o.ObjectNode({light:i("int_bounds")})),smokey:o.Opt(o.BooleanNode()),block:o.Opt(i("block_predicate")),fluid:o.Opt(i("fluid_predicate"))},{context:"location"})),e.register("statistic_predicate",o.ObjectNode({type:r({validator:"resource",params:{pool:"stat_type"}}),stat:r(),value:i("int_bounds"),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:mined":{stat:r({validator:"resource",params:{pool:"block"}})},"minecraft:crafted":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:used":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:broken":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:picked_up":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:dropped":{stat:r({validator:"resource",params:{pool:"item"}})},"minecraft:killed":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:killed_by":{stat:r({validator:"resource",params:{pool:"entity_type"}})},"minecraft:custom":{stat:r({validator:"resource",params:{pool:"custom_stat"}})}}})),e.register("player_predicate",o.ObjectNode({gamemode:o.Opt(r({enum:"gamemode"})),level:i("int_bounds"),advancements:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"$advancement"}}),o.ChoiceNode([{type:"boolean",node:o.BooleanNode(),change:e=>!0},{type:"object",node:o.MapNode(r(),o.BooleanNode())}]))),recipes:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"$recipe"}}),o.BooleanNode())),stats:o.Opt(o.ListNode(i("statistic_predicate")))},{context:"player"})),e.register("status_effect_predicate",o.ObjectNode({amplifier:i("int_bounds"),duration:i("int_bounds"),ambient:o.Opt(o.BooleanNode()),visible:o.Opt(o.BooleanNode())},{context:"status_effect"})),e.register("distance_predicate",o.ObjectNode({x:i("float_bounds"),y:i("float_bounds"),z:i("float_bounds"),absolute:i("float_bounds"),horizontal:i("float_bounds")},{context:"distance"})),e.register("entity_predicate",o.ObjectNode({type:o.Opt(r({validator:"resource",params:{pool:"entity_type",allowTag:!0}})),nbt:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:entity",id:["pop",{push:"type"}]}}})),team:o.Opt(r({validator:"team"})),location:o.Opt(i("location_predicate")),distance:o.Opt(i("distance_predicate")),flags:o.Opt(o.ObjectNode({is_on_fire:o.Opt(o.BooleanNode()),is_sneaking:o.Opt(o.BooleanNode()),is_sprinting:o.Opt(o.BooleanNode()),is_swimming:o.Opt(o.BooleanNode()),is_baby:o.Opt(o.BooleanNode())})),equipment:o.Opt(o.MapNode(r({enum:"slot"}),i("item_predicate"))),vehicle:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),player:o.Opt(i("player_predicate")),fishing_hook:o.Opt(o.ObjectNode({in_open_water:o.Opt(o.BooleanNode())})),effects:o.Opt(o.MapNode(r({validator:"resource",params:{pool:"mob_effect"}}),i("status_effect_predicate")))},{context:"entity"})),e.register("damage_source_predicate",o.ObjectNode({is_explosion:o.Opt(o.BooleanNode()),is_fire:o.Opt(o.BooleanNode()),is_magic:o.Opt(o.BooleanNode()),is_projectile:o.Opt(o.BooleanNode()),is_lightning:o.Opt(o.BooleanNode()),bypasses_armor:o.Opt(o.BooleanNode()),bypasses_invulnerability:o.Opt(o.BooleanNode()),bypasses_magic:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),direct_entity:o.Opt(i("entity_predicate"))},{context:"damage_source"})),e.register("damage_predicate",o.ObjectNode({dealt:i("float_bounds"),taken:i("float_bounds"),blocked:o.Opt(o.BooleanNode()),source_entity:o.Opt(i("entity_predicate")),type:o.Opt(i("damage_source_predicate"))},{context:"damage"}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initRecipeSchemas=void 0;const o=i(0);t.initRecipeSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("recipe",o.Mod(o.ObjectNode({type:r({validator:"resource",params:{pool:"recipe_serializer"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:crafting_shaped":{group:o.Opt(r({enum:"recipe_group",additional:!0})),pattern:o.ListNode(r()),key:o.MapNode(r(),i("recipe_ingredient")),result:i("recipe_result")},"minecraft:crafting_shapeless":{group:o.Opt(r()),ingredients:o.ListNode(i("recipe_ingredient")),result:i("recipe_result")},"minecraft:smelting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>200}))},"minecraft:blasting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:smoking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:campfire_cooking":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),experience:o.Opt(o.NumberNode()),cookingtime:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>100}))},"minecraft:stonecutting":{group:o.Opt(r()),ingredient:i("recipe_ingredient"),result:r({validator:"resource",params:{pool:"item"}}),count:o.NumberNode({integer:!0})},"minecraft:smithing":{group:o.Opt(r()),base:i("recipe_ingredient_object"),addition:i("recipe_ingredient_object"),result:i("recipe_result")}}},{context:"recipe"}),{default:()=>({type:"minecraft:crafting_shaped"})})),e.register("recipe_ingredient",o.Mod(o.ChoiceNode([{type:"object",node:i("recipe_ingredient_object"),change:e=>e[0]},{type:"list",node:o.ListNode(i("recipe_ingredient_object")),change:e=>[e]}]),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_ingredient_object",o.Mod(o.ObjectNode({item:o.Opt(r({validator:"resource",params:{pool:"item"}})),tag:o.Opt(r({validator:"resource",params:{pool:"$tag/item"}}))}),{default:()=>({item:"minecraft:stone"})})),e.register("recipe_result",o.Mod(o.ObjectNode({item:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.Mod(o.NumberNode({integer:!0}),{default:()=>1}))}),{default:()=>({item:"minecraft:stone"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTagsSchemas=void 0;const o=i(0);t.initTagsSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=e=>o.Mod(o.ObjectNode({replace:o.Opt(o.BooleanNode()),values:o.ListNode(o.ChoiceNode([{type:"string",node:i({validator:"resource",params:{pool:e,allowTag:!0}}),change:e=>e.id},{type:"object",node:o.ObjectNode({id:i({validator:"resource",params:{pool:e,allowTag:!0,allowUnknown:!0}}),required:o.BooleanNode()}),change:e=>({id:e})}]))},{context:"tag"}),{default:()=>({values:[]})});e.register("block_tag",r("block")),e.register("entity_type_tag",r("entity_type")),e.register("fluid_tag",r("fluid")),e.register("function_tag",r("$function")),e.register("game_event_tag",r("game_event")),e.register("item_tag",r("item"))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTextComponentSchemas=void 0;const o=i(0);t.initTextComponentSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t),n=e=>{var t;return e instanceof Array?n(e[0]):null!==(t=null==e?void 0:e.text)&&void 0!==t?t:"object"==typeof e?"":null==e?void 0:e.toString()};e.register("text_component",o.Mod(o.ChoiceNode([{type:"object",node:i("text_component_object"),change:e=>e instanceof Array?"object"==typeof e[0]?e[0]:{text:n(e[0])}:"object"==typeof e?e:{text:n(e)}},{type:"list",node:i("text_component_list"),change:e=>[e]},{type:"string",priority:1,node:r(),change:n},{type:"number",node:o.NumberNode(),change:e=>{const t=parseFloat(n(e));return isFinite(t)?t:e?1:0}},{type:"boolean",node:o.BooleanNode(),change:e=>{const t=n(e);return"true"===t||"false"===t?"true"===t:!!t}}],{context:"text_component"}),{default:()=>({text:""})}));const a={color:o.Opt(r()),font:o.Opt(r()),bold:o.Opt(o.BooleanNode()),italic:o.Opt(o.BooleanNode()),underlined:o.Opt(o.BooleanNode()),strikethrough:o.Opt(o.BooleanNode()),obfuscated:o.Opt(o.BooleanNode()),insertion:o.Opt(r()),clickEvent:o.Opt(o.ObjectNode({action:r({enum:["open_url","open_file","run_command","suggest_command","change_page","copy_to_clipboard"]}),[o.Switch]:[{push:"action"}],[o.Case]:{change_page:{value:r()},copy_to_clipboard:{value:r()},open_file:{value:r()},open_url:{value:r()},run_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})},suggest_command:{value:r({validator:"command",params:{leadingSlash:!0,allowPartial:!0}})}}})),hoverEvent:o.Opt(o.ObjectNode({action:r({enum:["show_text","show_item","show_entity"]}),[o.Switch]:[{push:"action"}],[o.Case]:{show_text:{value:o.Opt(i("text_component")),contents:o.Opt(i("text_component"))},show_item:{value:o.Opt(r({validator:"nbt",params:{module:"util::InventoryItem"}})),contents:o.Opt(o.ObjectNode({id:r({validator:"resource",params:{pool:"item"}}),count:o.Opt(o.NumberNode({integer:!0})),tag:o.Opt(r({validator:"nbt",params:{registry:{category:"minecraft:item",id:["pop",{push:"id"}]}}}))}))},show_entity:{value:o.Opt(o.ObjectNode({name:o.Opt(r()),type:o.Opt(r()),id:o.Opt(r())})),contents:o.Opt(o.Mod(o.ObjectNode({name:o.Opt(i("text_component")),type:r({validator:"resource",params:{pool:"entity_type"}}),id:r({validator:"uuid"})}),{default:()=>({type:"minecraft:pig",id:"00000001-0001-0001-0001-000000000001"})}))}}})),extra:o.Opt(i("text_component_list"))};e.register("text_component_object",o.Mod(o.ChoiceNode([{type:"text",match:e=>"object"==typeof e,change:e=>({text:""}),priority:-1,node:o.ObjectNode({text:r(),...a})},{type:"translation",match:e=>void 0!==(null==e?void 0:e.translate),change:e=>({translate:""}),node:o.ObjectNode({translate:r(),with:o.Opt(i("text_component_list")),...a})},{type:"score",match:e=>void 0!==(null==e?void 0:e.score),change:e=>({score:{}}),node:o.ObjectNode({score:o.ObjectNode({name:r({validator:"entity",params:{amount:"single",type:"entities",isScoreHolder:!0}}),objective:r({validator:"objective"}),value:o.Opt(r())}),...a})},{type:"selector",match:e=>void 0!==(null==e?void 0:e.selector),change:e=>({selector:""}),node:o.ObjectNode({selector:r({validator:"entity",params:{amount:"multiple",type:"entities"}}),...a})},{type:"keybind",match:e=>void 0!==(null==e?void 0:e.keybind),change:e=>({keybind:""}),node:o.ObjectNode({keybind:r({enum:"keybind",additional:!0}),...a})},{type:"nbt",match:e=>void 0!==(null==e?void 0:e.nbt),change:e=>({nbt:""}),node:o.ObjectNode({nbt:r({validator:"nbt_path"}),block:o.Opt(r({validator:"vector",params:{dimension:3,isInteger:!0}})),entity:o.Opt(r({validator:"entity",params:{amount:"single",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),...a})}],{context:"text_component_object",choiceContext:"text_component.object"}),{default:()=>({text:""})})),e.register("text_component_list",o.Mod(o.ListNode(i("text_component")),{default:()=>[{text:""}]}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldgenSchemas=void 0;const o=i(82),r=i(83),n=i(22),a=i(84),s=i(85),c=i(9),d=i(86),l=i(87),m=i(88);t.initWorldgenSchemas=function(e,t){c.initProcessorListSchemas(e,t),o.initBiomeSchemas(e,t),r.initCarverSchemas(e,t),n.initDecoratorSchemas(e,t),a.initFeatureSchemas(e,t),s.initNoiseSettingsSchemas(e,t),d.initStructureFeatureSchemas(e,t),l.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const o=i(0);t.initBiomeSchemas=function(e,t){const i=o.StringNode.bind(void 0,t);e.register("biome",o.Mod(o.ObjectNode({surface_builder:i({validator:"resource",params:{pool:"$worldgen/configured_surface_builder"}}),depth:o.NumberNode(),scale:o.NumberNode(),temperature:o.NumberNode(),downfall:o.NumberNode(),precipitation:i({enum:["none","rain","snow"]}),temperature_modifier:o.Opt(i({enum:["none","frozen"]})),category:i({enum:"biome_category"}),player_spawn_friendly:o.Opt(o.BooleanNode()),creature_spawn_probability:o.Opt(o.NumberNode({min:0,max:1})),effects:o.ObjectNode({sky_color:o.NumberNode({color:!0}),fog_color:o.NumberNode({color:!0}),water_color:o.NumberNode({color:!0}),water_fog_color:o.NumberNode({color:!0}),grass_color:o.Opt(o.NumberNode({color:!0})),foliage_color:o.Opt(o.NumberNode({color:!0})),grass_color_modifier:o.Opt(i({enum:["none","dark_forest","swamp"]})),ambient_sound:o.Opt(i()),mood_sound:o.Opt(o.ObjectNode({sound:i(),tick_delay:o.NumberNode({integer:!0}),block_search_extent:o.NumberNode({integer:!0}),offset:o.NumberNode()})),additions_sound:o.Opt(o.ObjectNode({sound:i(),tick_chance:o.NumberNode({min:0,max:1})})),music:o.Opt(o.ObjectNode({sound:i(),min_delay:o.NumberNode({integer:!0,min:0}),max_delay:o.NumberNode({integer:!0,min:0}),replace_current_music:o.BooleanNode()})),particle:o.Opt(o.ObjectNode({options:o.ObjectNode({type:i()}),probability:o.NumberNode({min:0,max:1})}))}),starts:o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_structure_feature"}})),spawners:o.MapNode(i({enum:["water_ambient","ambient","misc","water_creature","creature","monster"]}),o.Mod(o.ListNode(o.ObjectNode({type:i({validator:"resource",params:{pool:"entity_type"}}),weight:o.NumberNode({integer:!0}),minCount:o.NumberNode({integer:!0}),maxCount:o.NumberNode({integer:!0})})),{category:()=>"pool",default:()=>[{type:"minecraft:bat",weight:1}]})),spawn_costs:o.MapNode(i({validator:"resource",params:{pool:"entity_type"}}),o.Mod(o.ObjectNode({energy_budget:o.NumberNode(),charge:o.NumberNode()},{category:"function"}),{default:()=>({energy_budget:.12,charge:1})})),carvers:o.MapNode(i({enum:["air","liquid"]}),o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_carver"}})),{default:()=>["minecraft:cave"]})),features:o.ListNode(o.Mod(o.ListNode(i({validator:"resource",params:{pool:"$worldgen/configured_feature"}})),{category:()=>"predicate"}),{maxLength:10})},{context:"biome"}),{default:()=>({surface_builder:"minecraft:grass",depth:.125,scale:.05,temperature:.8,downfall:.4,precipitation:"rain",category:"plains",effects:{sky_color:7907327,fog_color:12638463,water_color:4159204,water_fog_color:329011}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initCarverSchemas=void 0;const o=i(0),r=i(4);t.initCarverSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("configured_carver",o.Mod(o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/carver"}}),config:o.ObjectNode({probability:o.NumberNode({min:0,max:1}),debug_settings:o.Opt(o.ObjectNode({debug_mode:o.Opt(o.BooleanNode()),air_state:o.Opt(i("block_state"))})),[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:canyon":{bottom_inclusive:i("vertical_anchor"),top_inclusive:i("vertical_anchor"),y_scale:r.UniformInt(),distanceFactor:r.FloatProvider({min:0,max:1}),vertical_rotation:r.FloatProvider(),thickness:r.FloatProvider(),width_smoothness:o.NumberNode({integer:!0,min:0}),horizontal_radius_factor:r.FloatProvider(),vertical_radius_default_factor:o.NumberNode(),vertical_radius_center_factor:o.NumberNode()}}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const o=i(0),r=i(4);i(22),i(9);const n=i(9);t.initFeatureSchemas=function(e,t){const i=o.Reference.bind(void 0,e),a=o.StringNode.bind(void 0,t),s={can_replace:o.BooleanNode(),project:o.BooleanNode(),need_water:o.BooleanNode(),xspread:o.NumberNode({integer:!0}),yspread:o.NumberNode({integer:!0}),zspread:o.NumberNode({integer:!0}),tries:o.NumberNode({integer:!0}),state_provider:i("block_state_provider"),block_placer:i("block_placer"),whitelist:o.ListNode(i("block_state")),blacklist:o.ListNode(i("block_state"))},c={state:i("block_state"),radius:r.UniformInt({min:0,max:4,maxSpread:4}),half_height:o.NumberNode({integer:!0,min:0,max:4}),targets:o.ListNode(i("block_state"))},d={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:o.NumberNode({integer:!0})},l={size:o.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:o.NumberNode({min:0,max:1}),targets:o.ListNode(o.ObjectNode({target:i("rule_test"),state:i("block_state")}))},m={count:r.UniformInt({min:-10,max:128,maxSpread:128})},p=o.ChoiceNode([{type:"string",node:a({validator:"resource",params:{pool:"$worldgen/configured_feature"}})},{type:"object",node:i("configured_feature")}],{choiceContext:"feature"}),u={surface:a({enum:["floor","ceiling"]}),depth:r.UniformInt({min:1,max:64,maxSpread:64}),vertical_range:o.NumberNode({integer:!0,min:1,max:256}),extra_bottom_block_chance:o.NumberNode({min:0,max:1}),extra_edge_column_chance:o.NumberNode({min:0,max:1}),vegetation_chance:o.NumberNode({min:0,max:1}),xz_radius:r.UniformInt(),replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),ground_state:i("block_state_provider"),vegetation_feature:p};e.register("configured_feature",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bamboo":{probability:o.NumberNode({min:0,max:1})},"minecraft:basalt_columns":{reach:r.UniformInt({min:0,max:2,maxSpread:1}),height:r.UniformInt({min:1,max:5,maxSpread:5})},"minecraft:block_pile":{state_provider:i("block_state_provider")},"minecraft:decorated":{decorator:i("configured_decorator"),feature:p},"minecraft:decorated_flower":{decorator:i("configured_decorator"),feature:p},"minecraft:delta_feature":{contents:i("block_state"),rim:i("block_state"),size:r.UniformInt({min:0,max:8,maxSpread:8}),rim_size:r.UniformInt({min:0,max:8,maxSpread:8})},"minecraft:disk":c,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:o.NumberNode({integer:!0,min:1,max:512}),height:r.UniformInt({min:1,max:64,maxSpread:64}),radius:r.UniformInt({min:1,max:64,maxSpread:64}),max_stalagmite_stalactite_height_diff:o.NumberNode({integer:!0,min:0,max:64}),height_deviation:o.NumberNode({integer:!0,min:1,max:64}),dripstone_block_layer_thickness:r.UniformInt({min:0,max:64,maxSpread:64}),density:r.FloatProvider({min:0,max:2}),wetness:r.FloatProvider({min:0,max:2}),wetness_mean:o.NumberNode({min:0,max:1}),wetness_deviation:o.NumberNode({min:0,max:1}),chance_of_dripstone_column_at_max_distance_from_center:o.NumberNode({min:0,max:1}),max_distance_from_edge_affecting_chance_of_dripstone_column:o.NumberNode({integer:!0,min:1,max:64}),max_distance_from_center_affecting_height_bias:o.NumberNode({integer:!0,min:1,max:64})},"minecraft:emerald_ore":{state:i("block_state"),target:i("block_state")},"minecraft:end_gateway":{exact:o.BooleanNode(),exit:i("block_pos")},"minecraft:end_spike":{crystal_invulnerable:o.BooleanNode(),crystal_beam_target:i("block_pos"),spikes:o.ListNode(o.ObjectNode({centerX:o.NumberNode({integer:!0}),centerZ:o.NumberNode({integer:!0}),radius:o.NumberNode({integer:!0}),height:o.NumberNode({integer:!0}),guarded:o.BooleanNode()}))},"minecraft:fill_layer":{state:i("block_state"),height:o.NumberNode({integer:!0,min:0,max:255})},"minecraft:flower":s,"minecraft:forest_rock":{state:i("block_state")},"minecraft:fossil":{max_empty_corners_allowed:o.NumberNode({integer:!0,min:0,max:7}),fossil_structures:o.ListNode(a({validator:"resource",params:{pool:"$structure"}})),overlay_structures:o.ListNode(a({validator:"resource",params:{pool:"$structure"}})),fossil_processors:n.Processors,overlay_processors:n.Processors},"minecraft:geode":{blocks:o.ObjectNode({filling_provider:i("block_state_provider"),inner_layer_provider:i("block_state_provider"),alternate_inner_layer_provider:i("block_state_provider"),middle_layer_provider:i("block_state_provider"),outer_layer_provider:i("block_state_provider"),inner_placements:o.ListNode(i("block_state"))}),layers:o.ObjectNode({filling:o.Opt(o.NumberNode({min:.01,max:50})),inner_layer:o.Opt(o.NumberNode({min:.01,max:50})),middle_layer:o.Opt(o.NumberNode({min:.01,max:50})),outer_layer:o.Opt(o.NumberNode({min:.01,max:50}))}),crack:o.ObjectNode({generate_crack_chance:o.Opt(o.NumberNode({min:0,max:1})),base_crack_size:o.Opt(o.NumberNode({min:0,max:5})),crack_point_offset:o.Opt(o.NumberNode({min:0,max:10,integer:!0}))}),noise_multiplier:o.Opt(o.NumberNode({min:0,max:1})),use_potential_placements_chance:o.Opt(o.NumberNode({min:0,max:1})),use_alternate_layer0_chance:o.Opt(o.NumberNode({min:0,max:1})),placements_require_layer0_alternate:o.Opt(o.BooleanNode()),min_outer_wall_distance:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_outer_wall_distance:o.Opt(o.NumberNode({min:1,max:20,integer:!0})),min_distribution_points:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_distribution_points:o.Opt(o.NumberNode({min:1,max:20,integer:!0})),min_point_offset:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),max_point_offset:o.Opt(o.NumberNode({min:1,max:10,integer:!0})),min_gen_offset:o.Opt(o.NumberNode({integer:!0})),max_gen_offset:o.Opt(o.NumberNode({integer:!0})),invalid_blocks_threshold:o.NumberNode({integer:!0})},"minecraft:glow_lichen":{search_range:o.Opt(o.NumberNode({min:1,max:64,integer:!0})),chance_of_spreading:o.Opt(o.NumberNode({min:0,max:1})),can_place_on_floor:o.Opt(o.BooleanNode()),can_place_on_ceiling:o.Opt(o.BooleanNode()),can_place_on_wall:o.Opt(o.BooleanNode()),can_be_placed_on:o.ListNode(i("block_state"))},"minecraft:growing_plant":{direction:a({enum:["up","down","north","east","south","west"]}),allow_water:o.BooleanNode(),height_distribution:o.ListNode(o.ObjectNode({weight:o.NumberNode({integer:!0}),data:r.UniformInt()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":d,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.BooleanNode()},"minecraft:huge_red_mushroom":d,"minecraft:ice_patch":c,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:o.Opt(o.NumberNode({integer:!0,min:1,max:512})),column_radius:r.UniformInt({min:1,max:30,maxSpread:30}),height_scale:r.FloatProvider({min:0,max:20}),max_column_radius_to_cave_height_ratio:o.NumberNode({min:0,max:1}),stalactite_bluntness:r.FloatProvider({min:.1,max:10}),stalagmite_bluntness:r.FloatProvider({min:.1,max:10}),wind_speed:r.FloatProvider({min:0,max:2}),min_radius_for_wind:o.NumberNode({integer:!0,min:0,max:100}),min_bluntness_for_wind:o.NumberNode({min:0,max:5})},"minecraft:nether_forest_vegetation":{state_provider:i("block_state_provider")},"minecraft:netherrack_replace_blobs":{state:i("block_state"),target:i("block_state"),radius:r.UniformInt()},"minecraft:ore":l,"minecraft:random_patch":s,"minecraft:random_boolean_selector":{feature_false:p,feature_true:p},"minecraft:random_selector":{features:o.ListNode(o.ObjectNode({chance:o.NumberNode({min:0,max:1}),feature:p})),default:p},"minecraft:root_system":{required_vertical_space_for_tree:o.NumberNode({integer:!0,min:1,max:64}),root_radius:o.NumberNode({integer:!0,min:1,max:64}),root_placement_attempts:o.NumberNode({integer:!0,min:1,max:256}),root_column_max_height:o.NumberNode({integer:!0,min:1,max:4096}),hanging_root_radius:o.NumberNode({integer:!0,min:1,max:64}),hanging_roots_vertical_span:o.NumberNode({integer:!0,min:0,max:16}),hanging_root_placement_attempts:o.NumberNode({integer:!0,min:0,max:256}),root_replaceable:a({validator:"resource",params:{pool:"$tag/block"}}),root_state_provider:i("block_state_provider"),hanging_root_state_provider:i("block_state_provider"),feature:p},"minecraft:scattered_ore":l,"minecraft:sea_pickle":m,"minecraft:seagrass":{probability:o.NumberNode({min:0,max:1})},"minecraft:simple_block":{to_place:i("block_state_provider"),place_on:o.ListNode(i("block_state")),place_in:o.ListNode(i("block_state")),place_under:o.ListNode(i("block_state"))},"minecraft:simple_random_selector":{features:o.ListNode(p)},"minecraft:small_dripstone":{max_placements:o.NumberNode({integer:!0,min:0,max:100}),empty_space_search_radius:o.NumberNode({integer:!0,min:0,max:20}),max_offset_from_origin:o.NumberNode({integer:!0,min:0,max:20}),chance_of_taller_dripstone:o.Opt(o.NumberNode({integer:!0,min:0,max:1}))},"minecraft:spring_feature":{state:i("fluid_state"),rock_count:o.NumberNode({integer:!0}),hole_count:o.NumberNode({integer:!0}),requires_block_below:o.BooleanNode(),valid_blocks:o.ListNode(a({validator:"resource",params:{pool:"block"}}))},"minecraft:tree":{ignore_vines:o.Opt(o.BooleanNode()),force_dirt:o.Opt(o.BooleanNode()),minimum_size:i("feature_size"),dirt_provider:i("block_state_provider"),trunk_provider:i("block_state_provider"),foliage_provider:i("block_state_provider"),trunk_placer:o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/trunk_placer_type"}}),base_height:o.NumberNode({integer:!0,min:0,max:32}),height_rand_a:o.NumberNode({integer:!0,min:0,max:24}),height_rand_b:o.NumberNode({integer:!0,min:0,max:24}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:bending_trunk_placer":{bend_length:r.UniformInt({min:1,max:32,maxSpread:32}),min_height_for_leaves:o.Opt(o.NumberNode({integer:!0,min:1}))}}},{context:"trunk_placer"}),foliage_placer:o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/foliage_placer_type"}}),radius:r.UniformInt({min:0,max:8,maxSpread:8}),offset:r.UniformInt({min:0,max:8,maxSpread:8}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:blob_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:bush_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:fancy_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:jungle_foliage_placer":{height:o.NumberNode({integer:!0,min:0,max:16})},"minecraft:mega_pine_foliage_placer":{crown_height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:pine_foliage_placer":{height:r.UniformInt({min:0,max:16,maxSpread:8})},"minecraft:random_spread_foliage_placer":{foliage_height:r.UniformInt({min:1,max:256,maxSpread:256}),leaf_placement_attempts:o.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:r.UniformInt({min:0,max:16,maxSpread:8})}}},{context:"foliage_placer",disableSwitchContext:!0}),decorators:o.ListNode(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/tree_decorator_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:alter_ground":{provider:i("block_state_provider")},"minecraft:beehive":{probability:o.NumberNode({min:0,max:1})},"minecraft:cocoa":{probability:o.NumberNode({min:0,max:1})}}},{context:"tree_decorator"}))},"minecraft:vegetation_patch":u,"minecraft:waterlogged_vegetation_patch":u}},{context:"feature"})},{context:"feature"}),{default:()=>({type:"minecraft:decorated",config:{decorator:{type:"minecraft:count",config:{count:4}},feature:{type:"minecraft:tree",config:{max_water_depth:0,ignore_vines:!0,minimum_size:{},trunk_placer:{base_height:5,height_rand_a:2,height_rand_b:0},foliage_placer:{radius:2,offset:0,height:3}}}}})})),e.register("feature_size",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/feature_size_type"}}),min_clipped_height:o.Opt(o.NumberNode({min:0,max:80})),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:two_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:81})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))},"minecraft:three_layers_feature_size":{limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),upper_limit:o.Opt(o.NumberNode({integer:!0,min:0,max:80})),lower_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),middle_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16})),upper_size:o.Opt(o.NumberNode({integer:!0,min:0,max:16}))}}},{disableSwitchContext:!0}),{default:()=>({type:"minecraft:two_layers_feature_size"})})),e.register("block_state_provider",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_state_provider_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:randomized_int_state_provider":{property:a(),values:r.UniformInt(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries:o.ListNode(o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),data:i("block_state")}),{default:()=>({data:{}})}))}}},{context:"block_state_provider"}),{default:()=>({type:"minecraft:simple_state_provider"})})),e.register("block_placer",o.Mod(o.ObjectNode({type:a({validator:"resource",params:{pool:"worldgen/block_placer_type"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:column_placer":{min_size:o.NumberNode({integer:!0}),extra_size:o.NumberNode({integer:!0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const o=i(0),r=i(4);t.initNoiseSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("noise_settings",o.Mod(o.ObjectNode({name:o.Mod(n({validator:"resource",params:{pool:"$worldgen/noise_settings",isDefinition:!0}}),{enabled:e=>e.getArray().length>0}),bedrock_roof_position:o.NumberNode({integer:!0}),bedrock_floor_position:o.NumberNode({integer:!0}),sea_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),noise_caves_enabled:o.BooleanNode(),aquifers_enabled:o.BooleanNode(),deepslate_enabled:o.BooleanNode(),default_block:i("block_state"),default_fluid:i("block_state"),noise:o.ObjectNode({min_y:o.NumberNode({integer:!0,min:-2048,max:2047}),height:o.NumberNode({integer:!0,min:0,max:4096}),density_factor:o.NumberNode(),density_offset:o.NumberNode(),size_horizontal:o.NumberNode({integer:!0}),size_vertical:o.NumberNode({integer:!0}),simplex_surface_noise:o.BooleanNode(),random_density_offset:o.Opt(o.BooleanNode()),island_noise_override:o.Opt(o.BooleanNode()),amplified:o.Opt(o.BooleanNode()),sampling:o.ObjectNode({xz_scale:o.NumberNode(),y_scale:o.NumberNode(),xz_factor:o.NumberNode(),y_factor:o.NumberNode()}),bottom_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0}),offset:o.NumberNode({integer:!0})})}),structures:i("generator_structures")},{context:"noise_settings"}),e=>({default:()=>r.DefaultNoiseSettings,validate:(t,i,o,r)=>{var n,a,s,c;return(null===(n=null==(i=e.validate(t,i,o,r))?void 0:i.noise)||void 0===n?void 0:n.min_y)+(null===(a=null==i?void 0:i.noise)||void 0===a?void 0:a.height)>2047&&o.add(t.push("noise").push("height"),"error.min_y_plus_height",2047),(null===(s=null==i?void 0:i.noise)||void 0===s?void 0:s.height)%16!=0&&o.add(t.push("noise").push("height"),"error.height_multiple",16),(null===(c=null==i?void 0:i.noise)||void 0===c?void 0:c.min_y)%16!=0&&o.add(t.push("noise").push("min_y"),"error.min_y_multiple",16),i}}))),e.register("generator_structures",o.ObjectNode({stronghold:o.Opt(o.ObjectNode({distance:o.NumberNode({integer:!0,min:0,max:1023}),spread:o.NumberNode({integer:!0,min:0,max:1023}),count:o.NumberNode({integer:!0,min:1,max:4095})})),structures:o.MapNode(n({validator:"resource",params:{pool:"worldgen/structure_feature"}}),o.Mod(o.ObjectNode({spacing:o.NumberNode({integer:!0,min:0,max:4096}),separation:o.Mod(o.NumberNode({integer:!0,min:0,max:4096}),e=>({validate:(t,i,o,r)=>(t.pop().push("spacing").get()<=i&&o.add(t,"error.separation_smaller_spacing"),e.validate(t,i,o,r))})),salt:o.NumberNode({integer:!0,min:0})},{context:"generator_structure"}),{default:()=>({spacing:10,separation:5,salt:0})}))})),e.register("generator_layer",o.Mod(o.ObjectNode({block:n({validator:"resource",params:{pool:"block"}}),height:o.NumberNode({integer:!0,min:1})}),{default:()=>({block:"minecraft:stone",height:1})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initStructureFeatureSchemas=void 0;const o=i(0);t.initStructureFeatureSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r={start_pool:i({validator:"resource",params:{pool:"$worldgen/template_pool"}}),size:o.NumberNode({integer:!0})};e.register("configured_structure_feature",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/structure_feature"}}),config:o.ObjectNode({[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:bastion_remnant":r,"minecraft:buried_treasure":{probability:o.NumberNode({min:0,max:1})},"minecraft:mineshaft":{type:i({enum:["normal","mesa"]}),probability:o.NumberNode({min:0,max:1})},"minecraft:ocean_ruin":{biome_temp:i({enum:["cold","warm"]}),large_probability:o.NumberNode({min:0,max:1}),cluster_probability:o.NumberNode({min:0,max:1})},"minecraft:pillager_outpost":r,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.BooleanNode()},"minecraft:village":r}},{context:"structure_feature",disableSwitchContext:!0})},{context:"structure_feature"}),{default:()=>({type:"minecraft:bastion_remnant",config:{start_pool:"minecraft:bastion/starts",size:6}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initSurfaceBuilderSchemas=void 0;const o=i(0);t.initSurfaceBuilderSchemas=function(e,t){const i=o.StringNode.bind(void 0,t),r=o.Reference.bind(void 0,e);e.register("configured_surface_builder",o.Mod(o.ObjectNode({type:i({validator:"resource",params:{pool:"worldgen/surface_builder"}}),config:o.ObjectNode({top_material:r("block_state"),under_material:r("block_state"),underwater_material:r("block_state")},{context:"surface_builder"})},{context:"surface_builder"}),{default:()=>({type:"minecraft:default",config:{top_material:{Name:"minecraft:grass_block",Properties:{snowy:"false"}},under_material:{Name:"minecraft:dirt"},underwater_material:{Name:"minecraft:gravel"}}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initTemplatePoolSchemas=void 0;const o=i(0);i(9);const r=i(9);t.initTemplatePoolSchemas=function(e,t){const i=o.Reference.bind(void 0,e),n=o.StringNode.bind(void 0,t);e.register("template_pool",o.Mod(o.ObjectNode({name:n(),fallback:n(),elements:o.ListNode(i("template_weighted_element"))},{context:"template_pool"}),{default:()=>({fallback:"minecraft:empty",elements:[{weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}}]})})),e.register("template_weighted_element",o.Mod(o.ObjectNode({weight:o.NumberNode({integer:!0,min:1}),element:i("template_element")},{category:"pool"}),{default:()=>({weight:1,element:{element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"}})})),e.register("template_element",o.Mod(o.ObjectNode({element_type:n({validator:"resource",params:{pool:"worldgen/structure_pool_element"}}),projection:n({enum:["rigid","terrain_matching"]}),[o.Switch]:[{push:"element_type"}],[o.Case]:{"minecraft:feature_pool_element":{feature:n({validator:"resource",params:{pool:"$worldgen/configured_feature"}}),processors:r.Processors},"minecraft:legacy_single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r.Processors},"minecraft:list_pool_element":{elements:o.ListNode(i("template_element"))},"minecraft:single_pool_element":{location:n({validator:"resource",params:{pool:"$structure"}}),processors:r.Processors}}},{context:"template_element",disableSwitchContext:!0}),{default:()=>({element_type:"minecraft:single_pool_element",projection:"rigid",processors:"minecraft:empty"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initWorldSettingsSchemas=void 0;const o=i(0);t.initWorldSettingsSchemas=function(e,t){const i=o.Reference.bind(void 0,e),r=o.StringNode.bind(void 0,t);e.register("world_settings",o.Mod(o.ObjectNode({generate_features:o.BooleanNode(),bonus_chest:o.BooleanNode(),seed:o.NumberNode({integer:!0}),dimensions:o.MapNode(r({validator:"resource",params:{pool:"$dimension"}}),i("dimension"))},{context:"world_settings"}),{default:()=>{const e=Math.floor(4294967296*Math.random())-2147483648;return{generate_features:!0,bonus_chest:!1,seed:e,dimensions:{"minecraft:overworld":{type:"minecraft:overworld",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:vanilla_layered",seed:e},settings:"minecraft:overworld"}},"minecraft:the_nether":{type:"minecraft:the_nether",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:multi_noise",seed:e,humidity_noise:{firstOctave:-7,amplitudes:[1,1]},altitude_noise:{firstOctave:-7,amplitudes:[1,1]},weirdness_noise:{firstOctave:-7,amplitudes:[1,1]},temperature_noise:{firstOctave:-7,amplitudes:[1,1]},biomes:[{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:0},biome:"minecraft:nether_wastes"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:0,humidity:-.5},biome:"minecraft:soul_sand_valley"},{parameters:{altitude:0,weirdness:0,offset:0,temperature:.4,humidity:0},biome:"minecraft:crimson_forest"},{parameters:{altitude:0,weirdness:0,offset:.375,temperature:0,humidity:.5},biome:"minecraft:warped_forest"},{parameters:{altitude:0,weirdness:0,offset:.175,temperature:-.5,humidity:0},biome:"minecraft:basalt_deltas"}]},settings:"minecraft:nether"}},"minecraft:the_end":{type:"minecraft:the_end",generator:{type:"minecraft:noise",seed:e,biome_source:{type:"minecraft:the_end",seed:e},settings:"minecraft:end"}}}}}}))}},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t,i=this,o=(t=4022871197,function(e){e=String(e);for(var i=0;i>>0,t=(o*=t)>>>0,t+=4294967296*(o-=t)}return 2.3283064365386963e-10*(t>>>0)});i.next=function(){var e=2091639*i.s0+2.3283064365386963e-10*i.c;return i.s0=i.s1,i.s1=i.s2,i.s2=e-(i.c=0|e)},i.c=1,i.s0=o(" "),i.s1=o(" "),i.s2=o(" "),i.s0-=o(e),i.s0<0&&(i.s0+=1),i.s1-=o(e),i.s1<0&&(i.s1+=1),i.s2-=o(e),i.s2<0&&(i.s2+=1),o=null}function s(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function c(e,t){var i=new a(e),o=t&&t.state,r=i.next;return r.int32=function(){return 4294967296*i.next()|0},r.double=function(){return r()+11102230246251565e-32*(2097152*r()|0)},r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.alea=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(0|e)?t.x=e:i+=e;for(var o=0;o>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xor128=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^e^e<<1)|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(0|e)?t.x=e:i+=e;for(var o=0;o>>4),t.next()}function s(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function c(e,t){var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xorwow=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this;t.next=function(){var e,i,o=t.x,r=t.i;return e=o[r],i=(e^=e>>>7)^e<<24,i^=(e=o[r+1&7])^e>>>10,i^=(e=o[r+3&7])^e>>>3,i^=(e=o[r+4&7])^e<<7,e=o[r+7&7],i^=(e^=e<<13)^e<<9,o[r]=i,t.i=r+1&7,i},function(e,t){var i,o=[];if(t===(0|t))o[0]=t;else for(t=""+t,i=0;i0;--i)e.next()}(t,e)}function s(e,t){return t.x=e.x.slice(),t.i=e.i,t}function c(e,t){null==e&&(e=+new Date);var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&(o.x&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xorshift7=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this;t.next=function(){var e,i,o=t.w,r=t.X,n=t.i;return t.w=o=o+1640531527|0,i=r[n+34&127],e=r[n=n+1&127],i^=i<<13,e^=e<<17,i^=i>>>15,e^=e>>>12,i=r[n]=i^e,t.i=n,i+(o^o>>>16)|0},function(e,t){var i,o,r,n,a,s=[],c=128;for(t===(0|t)?(o=t,t=null):(t+="\0",o=0,c=Math.max(c,t.length)),r=0,n=-32;n>>15,o^=o<<4,o^=o>>>13,n>=0&&(a=a+1640531527|0,r=0==(i=s[127&n]^=o+a)?r+1:0);for(r>=128&&(s[127&(t&&t.length||0)]=-1),r=127,n=512;n>0;--n)o=s[r+34&127],i=s[r=r+1&127],o^=o<<13,i^=i<<17,o^=o>>>15,i^=i>>>12,s[r]=o^i;e.w=a,e.X=s,e.i=r}(t,e)}function s(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function c(e,t){null==e&&(e=+new Date);var i=new a(e),o=t&&t.state,r=function(){return(i.next()>>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&(o.X&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.xor4096=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){(function(e){var o;!function(e,r,n){function a(e){var t=this,i="";t.next=function(){var e=t.b,i=t.c,o=t.d,r=t.a;return e=e<<25^e>>>7^i,i=i-o|0,o=o<<24^o>>>8^r,r=r-e|0,t.b=e=e<<20^e>>>12^i,t.c=i=i-o|0,t.d=o<<16^i>>>16^r,t.a=r-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=0|e):i+=e;for(var o=0;o>>0)/4294967296};return r.double=function(){do{var e=((i.next()>>>11)+(i.next()>>>0)/4294967296)/(1<<21)}while(0===e);return e},r.int32=i.next,r.quick=r,o&&("object"==typeof o&&s(o,i),r.state=function(){return s(i,{})}),r}r&&r.exports?r.exports=c:i(2)&&i(7)?void 0===(o=function(){return c}.call(t,i,t,r))||(r.exports=o):this.tychei=c}(0,e,i(2))}).call(this,i(6)(e))},function(e,t,i){var o;!function(r,n,a){var s,c=a.pow(256,6),d=a.pow(2,52),l=2*d;function m(e,t,i){var o=[],m=_(function e(t,i){var o,r=[],n=typeof t;if(i&&"object"==n)for(o in t)try{r.push(e(t[o],i-1))}catch(e){}return r.length?r:"string"==n?t:t+"\0"}((t=1==t?{entropy:!0}:t||{}).entropy?[e,f(n)]:null==e?function(){try{var e;return s&&(e=s.randomBytes)?e=e(256):(e=new Uint8Array(256),(r.crypto||r.msCrypto).getRandomValues(e)),f(e)}catch(e){var t=r.navigator,i=t&&t.plugins;return[+new Date,r,i,r.screen,f(n)]}}():e,3),o),g=new p(o),h=function(){for(var e=g.g(6),t=c,i=0;e=l;)e/=2,t/=2,i>>>=1;return(e+i)/t};return h.int32=function(){return 0|g.g(4)},h.quick=function(){return g.g(4)/4294967296},h.double=h,_(f(g.S),n),(t.pass||i||function(e,t,i,o){return o&&(o.S&&u(o,g),e.state=function(){return u(g,{})}),i?(a.random=e,t):e})(h,m,"global"in t?t.global:this==a,t.state)}function p(e){var t,i=e.length,o=this,r=0,n=o.i=o.j=0,a=o.S=[];for(i||(e=[i++]);r<256;)a[r]=r++;for(r=0;r<256;r++)a[r]=a[n=255&n+e[r%i]+(t=a[r])],a[n]=t;(o.g=function(e){for(var t,i=0,r=o.i,n=o.j,a=o.S;e--;)t=a[r=255&r+1],i=256*i+a[255&(a[r]=a[n=255&n+t])+(a[n]=t)];return o.i=r,o.j=n,i})(256)}function u(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function _(e,t){for(var i,o=e+"",r=0;r("0"+e.toString(16)).substr(-2);function c(e=12){var t=new Uint8Array(e/2);return window.crypto.getRandomValues(t),Array.from(t,s).join("")}function d(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function l(e){const t=Math.abs(function(e){let t=0;for(let i=0;i>8)%256,(t>>16)%256]}function m(e,t,i){return Math.max(e,Math.min(t,i))}function p(e,t,i){return i<0?e:i>1?t:u(i,e,t)}function u(e,t,i){return t+e*(i-t)}function _(e,t,i,o,r,n){return u(t,u(e,i,o),u(e,r,n))}function f(e){return e*e*e*(e*(6*e-15)+10)}class g{constructor(e){this.value=e,this.watchers=[]}set(e){if(this.value===e)return;const t=this.value;this.value=e,this.watchers.forEach(e=>e.watcher(this.value,t))}get(){return this.value}watchRun(e,t){return e(this.value,null),this.watch(e,t)}watch(e,t){t=null!=t?t:c();const i=this.watchers.find(e=>e.name===t);return i?i.watcher=e:this.watchers.push({name:t,watcher:e}),this}}class h extends g{constructor(e,t){var i;super(null!==(i=localStorage.getItem(e))&&void 0!==i?i:t),this.id=e}set(e){super.set(e),localStorage.setItem(this.id,e)}get(){return this.value}}var b=i(1),v=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};["1.15","1.16","1.17"].forEach(e=>localStorage.removeItem("cache_"+e));const y="https://raw.githubusercontent.com/Arcensoth/mcdata",N="https://raw.githubusercontent.com/SPGoding/vanilla-datapack",w=[{id:"mcdata_master",hash:"a6bd46e069d99e9b4c0729f120299e7785c8db3e",url:y},{id:"vanilla_datapack_summary",hash:"028371e07ecc554af8c3a5d816ef2ea9d96492fe",url:N}];function O(e,t){return v(this,void 0,void 0,(function*(){const i=b.versions.find(e=>e.id===t);i&&(i.dynamic&&(yield Promise.all(w.filter(e=>localStorage.getItem("cached_"+e.id)!==e.hash).map(e=>v(this,void 0,void 0,(function*(){yield function(e){return v(this,void 0,void 0,(function*(){const t=yield caches.open("misode-v1"),i=[];for(const o of yield t.keys())e(o.url)&&i.push(t.delete(o));return(yield Promise.all(i)).length>0}))}(t=>t.startsWith(`${e.url}/${i.refs[e.id]}`)),localStorage.setItem("cached_"+e.id,e.hash)}))))),yield Promise.all([k(i,e),x(i),j(i,e)]))}))}function k(e,t){return v(this,void 0,void 0,(function*(){const i=b.registries.filter(e=>!e.dynamic).filter(t=>fe(e.id,t.minVersion,t.maxVersion));if(!fe(e.id,void 0,"1.15"))return Promise.all(i.map(i=>v(this,void 0,void 0,(function*(){try{const o=i.path?`${y}/${e.refs.mcdata_master}/${i.path}/data.min.json`:`${y}/${e.refs.mcdata_master}/processed/reports/registries/${i.id}/data.min.json`;t.register(i.id,yield S(o,e=>e.values))}catch(e){console.warn(`Error occurred while registry ${i.id}:`,e)}}))));{const o=`${y}/${e.refs.mcdata_master}/generated/reports/registries.json`;try{const e=yield S(o,e=>{const t={};return Object.keys(e).forEach(i=>{t[i.slice(10)]=Object.keys(e[i].entries)}),t});i.forEach(i=>{var o;t.register(i.id,null!==(o=e[i.id])&&void 0!==o?o:[])})}catch(e){console.warn("Error occurred while fetching registries:",e)}}}))}function x(e){return v(this,void 0,void 0,(function*(){if(fe(e.id,void 0,"1.16")){const t=fe(e.id,void 0,"1.15")?`${y}/${e.refs.mcdata_master}/generated/reports/blocks.json`:`${y}/${e.refs.mcdata_master}/processed/reports/blocks/data.min.json`;try{const e=yield S(t,e=>{const t={};return Object.keys(e).forEach(i=>{t[i]={properties:e[i].properties,default:e[i].states.find(e=>e.default).properties}}),t});ue.blockStateRegistry=e}catch(e){console.warn("Error occurred while fetching block state map:",e)}}else{const t=`${y}/${e.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;try{ue.blockStateRegistry=yield S(t)}catch(e){console.warn("Error occurred while fetching block state map:",e)}}}))}function j(e,t){return v(this,void 0,void 0,(function*(){const i=b.registries.filter(e=>e.dynamic).filter(t=>fe(e.id,t.minVersion,t.maxVersion));if(fe(e.id,"1.16")){const o=`${N}/${e.refs.vanilla_datapack_summary}/summary/flattened.min.json`;try{const e=yield S(o);i.forEach(i=>{t.register(i.id,e[i.id])})}catch(e){console.warn("Error occurred while fetching dynamic registries:",e)}}}))}function S(e,t=(e=>e)){return v(this,void 0,void 0,(function*(){const i=yield caches.open("misode-v1"),o=yield i.match(e);if(o&&o.ok)return yield o.json();const r=yield fetch(e),n=t(yield r.json());return yield i.put(e,new Response(JSON.stringify(n))),n}))}const M={archive:'',arrow_both:'',arrow_left:'',arrow_right:'',chevron_down:'',chevron_right:'',clippy:'',code:'',dash:'',download:'',eye:'',eye_closed:'',fold:'',gear:'',globe:'',history:'',info:'',issue_opened:'',kebab_horizontal:'',link:'',mark_github:'',moon:'',note:'',package:'',play:'',plus:'',plus_circle:'',search:'',square:'',square_fill:'',sun:'',tag:'',trashcan:'',three_bars:'',unfold:'',x:''};var C=i(10),z=i.n(C);class L{constructor(e){this.xo=256*e(),this.yo=256*e(),this.zo=256*e(),this.p=Array(256);for(let e=0;e<256;e+=1)this.p[e]=e;for(let t=0;t<256;t+=1){const i=e.int32()%(256-t),o=this.p[t];this.p[t]=this.p[t+i],this.p[t+i]=o}}noise(e,t,i,o,r){const n=e+this.xo,a=t+this.yo,s=i+this.zo,c=Math.floor(n),d=Math.floor(a),l=Math.floor(s),m=n-c,p=a-d,u=s-l,_=f(m),g=f(p),h=f(u);let b=0;return 0!==o&&(b=Math.floor(Math.min(r,p)/o)*o),this.sampleAndLerp(c,d,l,m,p-b,u,_,g,h)}gradDot(e,t,i,o){const r=L.GRADIENT[15&e];return r[0]*t+r[1]*i+r[2]*o}P(e){return 255&this.p[255&e]}sampleAndLerp(e,t,i,o,r,n,a,s,c){const d=this.P(e)+t,l=this.P(d)+i,m=this.P(d+1)+i,p=this.P(e+1)+t,f=this.P(p)+i,g=this.P(p+1)+i;return function(e,t,i,o,r,n,a,s,c,d,l){return u(i,_(e,t,o,r,n,a),_(e,t,s,c,d,l))}(a,s,c,this.gradDot(this.P(l),o,r,n),this.gradDot(this.P(f),o-1,r,n),this.gradDot(this.P(m),o,r-1,n),this.gradDot(this.P(g),o-1,r-1,n),this.gradDot(this.P(l+1),o,r,n-1),this.gradDot(this.P(f+1),o-1,r,n-1),this.gradDot(this.P(m+1),o,r-1,n-1),this.gradDot(this.P(g+1),o-1,r-1,n-1))}}L.GRADIENT=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1],[1,1,0],[0,-1,1],[-1,1,0],[0,-1,-1]];class ${constructor(e,t,i){this.amplitudes=i,this.noiseLevels=Array(this.amplitudes.length);for(let t=0;t{}}dirty(e){return JSON.stringify(this.state)!==JSON.stringify(e.get())}menu(e,t){return""}onDrag(e,t){}}class A extends B{constructor(){var e;super(),this.offsetX=0,this.offsetY=0,this.seed=c(),this.viewScale=new g(0),this.biomeColors=new g({}),this.biomeColors.set(JSON.parse(null!==(e=localStorage.getItem("biome_colors"))&&void 0!==e?e:"{}")),this.noise=[],this.biomeColors.watch(()=>this.redraw())}getName(){return"biome-noise"}active(e){return e.endsWith(new o.Path(["generator","biome_source"]))&&"minecraft:multi_noise"===e.push("type").get()}menu(e,t){return`\n
      \n
      \n ${M.plus}\n
      \n
      \n ${M.dash}\n
      `}getSize(){return[200,100]}draw(e,t){var i;this.noise=A.noiseMaps.map((e,t)=>{const i=this.state[e+"_noise"];return new P(this.seed+t,i.firstOctave,i.amplitudes)});const o={};this.state.biomes.forEach(e=>{o[e.biome]=this.getBiomeColor(e.biome)});const r=t.data,n=Math.pow(2,this.viewScale.get());for(let e=0;e<200;e+=1)for(let a=0;a<100;a+=1){const s=a*(4*t.width)+4*e,c=(e-this.offsetX)*n-100*n,d=(a-this.offsetY)*n-50*n,l=this.closestBiome(c,d),m=null!==(i=o[l])&&void 0!==i?i:[128,128,128];r[s]=m[0],r[s+1]=m[1],r[s+2]=m[2],r[s+3]=255}}onDrag(e,t){this.offsetX+=e,this.offsetY+=t}closestBiome(e,t){if(!this.state.biomes||0===this.state.biomes.length)return"";const i=this.noise.map(i=>i.getValue(e,t,0));let o=1/0,r="";for(const e of this.state.biomes){const t=this.fitness(e.parameters,{altitude:i[0],temperature:i[1],humidity:i[2],weirdness:i[3],offset:0});te.toString(16).padStart(2,"0")).join("")}}A.noiseMaps=["altitude","temperature","humidity","weirdness"];const R={en:i(26)};function I(e,t){return null==e?void 0:e.replace(/%\d+%/g,e=>{const i=parseInt(e.slice(1,-1));return void 0!==(null==t?void 0:t[i])?t[i]:e})}function E(e,t){var i,o,r;return null!==(r=I(null!==(o=null===(i=R[ue.language.get()])||void 0===i?void 0:i[e])&&void 0!==o?o:R.en[e],t))&&void 0!==r?r:e}function q(e,t,i=5,o=1){return[ue.language.get(),"en"].reduce((r,n)=>{var a;if(void 0!==r)return r;const s=e.slice(-i);for(;s.length>=o;){const e=I(null===(a=R[n])||void 0===a?void 0:a[s.join(".")],t);if(void 0!==e)return e;s.shift()}},void 0)}class T{constructor(){this.registry={}}render(){return""}register(e){const t=c();return this.registry[t]=e,t}on(e,t){return this.register(i=>{i.addEventListener(e,e=>{t(i),e.stopPropagation()})})}onChange(e){return this.on("change",e)}onClick(e){return this.on("click",e)}mounted(e,t=!0){e.querySelectorAll("[data-id]").forEach(e=>{var t,i;const o=e.getAttribute("data-id");null===(i=(t=this.registry)[o])||void 0===i||i.call(t,e)}),t&&(this.registry={}),e.querySelectorAll("[data-i18n]").forEach(e=>{e.textContent=E(e.attributes.getNamedItem("data-i18n").value)})}mount(e,t,i=!0){e.innerHTML=t,this.mounted(e,i)}}const D=e=>{e.classList.add("active");const t=()=>document.body.addEventListener("click",i=>{var o;i.target.matches(".btn.input")||(null===(o=i.target.closest(".btn"))||void 0===o?void 0:o.classList.contains("input"))?t():e.classList.remove("active")},{capture:!0,once:!0});t()};class F{constructor(){this.settings={},this.chunkWidth=4,this.chunkHeight=4,this.chunkCountY=32,this.biomeDepth=.1,this.biomeScale=.2,this.noiseColumnCache=[],this.xOffset=0,this.minLimitPerlinNoise=$.fromRange(c(),-15,0),this.maxLimitPerlinNoise=$.fromRange(c(),-15,0),this.mainPerlinNoise=$.fromRange(c(),-7,0),this.depthNoise=$.fromRange(c(),-15,0)}reset(e,t,i,o,r){this.settings=e,this.chunkWidth=4*e.size_horizontal,this.chunkHeight=4*e.size_vertical,this.chunkCountY=Math.floor(e.height/this.chunkHeight),e.amplified&&t>0&&(t=1+2*t,i=1+4*i),this.biomeDepth=.265625*(.5*t-.125),this.biomeScale=96/(.9*i+.1),this.noiseColumnCache=Array(r).fill(null),this.xOffset=o}iterateNoiseColumn(e){const t=Array(this.chunkCountY*this.chunkHeight),i=Math.floor(e/this.chunkWidth),o=Math.floor(e%this.chunkWidth)/this.chunkWidth,r=this.fillNoiseColumn(i),n=this.fillNoiseColumn(i+1);for(let e=this.chunkCountY-1;e>=0;e-=1)for(let i=this.chunkHeight;i>=0;i-=1){const a=i/this.chunkHeight;t[e*this.chunkHeight+i]=_(a,o,r[e],r[e+1],n[e],n[e+1])}return t}fillNoiseColumn(e){const t=this.noiseColumnCache[e-this.xOffset];if(t)return t;const i=Array(this.chunkCountY+1),o=684.412*this.settings.sampling.xz_scale,r=684.412*this.settings.sampling.y_scale,n=o/this.settings.sampling.xz_factor,a=r/this.settings.sampling.y_factor,s=this.settings.random_density_offset?this.getRandomDensity(e):0;for(let t=0;t<=this.chunkCountY;t+=1){let c=this.sampleAndClampNoise(e,t,this.mainPerlinNoise.getOctaveNoise(0).zo,o,r,n,a);const d=((1-2*t/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;c+=d*(d>0?4:1),this.settings.top_slide.size>0&&(c=p(this.settings.top_slide.target,c,(this.chunkCountY-t-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(c=p(this.settings.bottom_slide.target,c,(t-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),i[t]=c}return this.noiseColumnCache[e-this.xOffset]=i,i}getRandomDensity(e){const t=this.depthNoise.getValue(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),i=24.575625*(t<0?.3*-t:t)-2;return i<0?.009486607142857142*i:.006640625*Math.min(i,1)}sampleAndClampNoise(e,t,i,o,r,n,a){let s=0,c=0,d=0,l=1;for(let m=0;m<16;m+=1){const p=$.wrap(e*o*l),u=$.wrap(t*r*l),_=$.wrap(i*o*l),f=r*l,g=this.minLimitPerlinNoise.getOctaveNoise(m);g&&(s+=g.noise(p,u,_,f,t*f)/l);const h=this.maxLimitPerlinNoise.getOctaveNoise(m);if(h&&(c+=h.noise(p,u,_,f,t*f)/l),m<8){const o=this.mainPerlinNoise.getOctaveNoise(m);o&&(d+=o.noise($.wrap(e*n*l),$.wrap(t*a*l),$.wrap(i*n*l),a*l,t*a*l)/l)}l/=2}return p(s/512,c/512,(d/10+1)/2)}}const V=[50,50,51,51,52,52,53,54,56,57,57,58,58,59,60,60,60,59,59,59,60,61,61,62,63,63,64,64,64,65,65,66,66,65,65,66,66,67,67,67,68,69,71,73,74,76,79,80,81,81,82,83,83,82,82,81,81,80,80,80,81,81,82,82],U=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];const H=(e,t,i)=>ga("send","event",e,t,i),W=(e,t)=>ga("set","dimension"+e,t),J=e=>{ga("set","page",e),ga("send","pageview")},Y=e=>H("Generator","set-version",e),G=e=>H("Preview","set-preview",e),X=()=>H("Generator","reset"),K=(e=!1)=>H("Generator","undo",e?"Hotkey":"Menu"),Z=(e=!1)=>H("Generator","redo",e?"Hotkey":"Menu"),Q=()=>H("JsonOutput","copy"),ee=()=>H("JsonOutput","download"),te=()=>H("JsonOutput","share"),ie=()=>H("Preview","hide-preview"),oe=e=>H("Generator","toggle-minimize",e?"minimized":"unminimized"),re=e=>H("Generator","load-preset",e),ne=e=>W(1,e),ae=e=>W(3,e),se=e=>W(4,e),ce=e=>W(5,e);var de=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const le={1.15:r,1.16:n,1.17:a},me={biome_noise:new A,noise_settings:new class extends B{constructor(){super(),this.width=256,this.depth=.1,this.scale=.2,this.offsetX=0,this.debug=!1,this.generator=new F}getName(){return"noise-settings"}active(e){return e.endsWith(new o.Path(["noise"]))}menu(e,t){return`
      \n
      \n ${M.kebab_horizontal}\n
      \n
      \n
      \n ${M.gear}\n \n {this.depth=parseFloat(e.value),t()})})}">\n
      \n
      \n ${M.gear}\n \n {this.scale=parseFloat(e.value),t()})})}">\n
      \n
      \n ${M.arrow_both}\n \n {this.width=parseFloat(e.value),t()})})}">\n
      \n
      \n ${M.square}\n \n
      \n
      \n
      `}getSize(){return[this.width,this.state.height]}draw(e,t){this.generator.reset(this.state,this.depth,this.scale,this.offsetX,this.width);const i=t.data;for(let e=0;e0?255:a,i[n+1]=a,i[n+2]=a,i[n+3]=255}}}onDrag(e,t){this.offsetX-=e}getColor(e,t){return this.debug?-e[t]/2+128:e[t]>0?0:e[t+1]>0?150:255}},decorator:new class extends B{constructor(){super(),this.Features={decorated:(e,t)=>this.getPositions(t,null==e?void 0:e.decorator).flatMap(t=>this.getPlacements(t,null==e?void 0:e.feature)),random_boolean_selector:(e,t)=>{const i=this.random()<.5?null==e?void 0:e.feature_true:null==e?void 0:e.feature_false;return this.getPlacements(t,i)},random_selector:(e,t)=>{var i,o;for(const r of null!==(i=null==e?void 0:e.features)&&void 0!==i?i:[])if(this.random()<(null!==(o=null==r?void 0:r.chance)&&void 0!==o?o:0))return this.getPlacements(t,r.feature);return this.getPlacements(t,null==e?void 0:e.default)},simple_random_selector:(e,t)=>{var i,o,r;const n=null===(i=null==e?void 0:e.features)||void 0===i?void 0:i[this.nextInt(null!==(r=null===(o=null==e?void 0:e.features)||void 0===o?void 0:o.length)&&void 0!==r?r:0)];return this.getPlacements(t,n)}},this.Decorators={chance:(e,t)=>{var i;return this.random()<1/(null!==(i=null==e?void 0:e.chance)&&void 0!==i?i:1)?[t]:[]},count:(e,t)=>{var i;return new Array(this.sampleUniformInt(null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1)).fill(t)},count_extra:(e,t)=>{var i,o,r;let n=null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1;return null!==(o=this.random(){var i;return new Array(this.sampleUniformInt(null!==(i=null==e?void 0:e.count)&&void 0!==i?i:1)).fill(t).map(e=>[e[0]+this.nextInt(16),e[1],e[2]+this.nextInt(16)])},count_noise:(e,t)=>{const i=this.biomeInfoNoise.getValue(t[0]/200,0,t[2]/200){const i=Math.max(1,e.noise_factor),o=this.biomeInfoNoise.getValue(t[0]/i,0,t[2]/i),r=Math.max(0,Math.ceil((o+e.noise_offset)*e.noise_to_count_ratio));return new Array(r).fill(t)},dark_oak_tree:(e,t)=>[...new Array(16)].map((e,i)=>{const o=4*Math.floor(i/4)+1+this.nextInt(3)+t[0];return[o,Math.max(63,V[m(0,63,o)]),4*Math.floor(i%4)+1+this.nextInt(3)+t[2]]}),decorated:(e,t)=>this.getPositions(t,null==e?void 0:e.outer).flatMap(t=>this.getPositions(t,null==e?void 0:e.inner)),depth_average:(e,t)=>{var i,o,r,n;const a=this.nextInt(null!==(i=null==e?void 0:e.spread)&&void 0!==i?i:0)+this.nextInt(null!==(o=null==e?void 0:e.spread)&&void 0!==o?o:0)-(null!==(r=e.spread)&&void 0!==r?r:0)+(null!==(n=null==e?void 0:e.baseline)&&void 0!==n?n:0);return this.decorateY(t,a)},emerald_ore:(e,t)=>{const i=3+this.nextInt(6);return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(28)+4,this.nextInt(16)+t[2]])},fire:(e,t)=>{const i=this.nextInt(this.nextInt(this.sampleUniformInt(null==e?void 0:e.count)))+1;return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(120)+4,this.nextInt(16)+t[2]])},glowstone:(e,t)=>{const i=this.nextInt(this.nextInt(this.sampleUniformInt(null==e?void 0:e.count))+1);return[...new Array(i)].map(e=>[this.nextInt(16)+t[0],this.nextInt(120)+4,this.nextInt(16)+t[2]])},heightmap:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,i)},heightmap_spread_double:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,this.nextInt(2*i))},heightmap_world_surface:(e,t)=>{const i=Math.max(63,V[m(0,63,t[0])]);return this.decorateY(t,i)},iceberg:(e,t)=>[[this.nextInt(8)+4+t[0],t[1],this.nextInt(8)+4+t[2]]],lava_lake:(e,t)=>{var i,o;if(0===this.nextInt((null!==(i=e.chance)&&void 0!==i?i:1)/10)){const i=this.nextInt(this.nextInt(248)+8);if(i<63||0==this.nextInt((null!==(o=null==e?void 0:e.chance)&&void 0!==o?o:1)/8)){return[[this.nextInt(16)+t[0],i,this.nextInt(16)+t[2]]]}}return[]},nope:(e,t)=>[t],range:(e,t)=>{var i,o,r;const n=this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0);return this.decorateY(t,n)},range_biased:(e,t)=>{var i,o,r;const n=this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0));return this.decorateY(t,n)},range_very_biased:(e,t)=>{var i,o,r,n;const a=this.nextInt(this.nextInt(this.nextInt((null!==(i=null==e?void 0:e.maximum)&&void 0!==i?i:1)-(null!==(o=null==e?void 0:e.top_offset)&&void 0!==o?o:0))+(null!==(r=null==e?void 0:e.bottom_offset)&&void 0!==r?r:0))+(null!==(n=null==e?void 0:e.bottom_offset)&&void 0!==n?n:0));return this.decorateY(t,a)},spread_32_above:(e,t)=>{const i=this.nextInt(t[1]+32);return this.decorateY(t,i)},top_solid_heightmap:(e,t)=>{const i=V[m(0,63,t[0])];return this.decorateY(t,i)},magma:(e,t)=>{const i=this.nextInt(t[1]+32);return this.decorateY(t,i)},square:(e,t)=>[[t[0]+this.nextInt(16),t[1],t[2]+this.nextInt(16)]],water_lake:(e,t)=>{var i;return 0===this.nextInt(null!==(i=e.chance)&&void 0!==i?i:1)?[[this.nextInt(16)+t[0],this.nextInt(256),this.nextInt(16)+t[2]]]:[]}},this.seed=c(),this.perspective="top",this.size=[64,128,48],this.random=z()(this.seed),this.biomeInfoNoise=new $(c(),0,[1]),this.usedFeatures=[]}getName(){return"decorator"}active(e){var t;return"worldgen/feature"===(null===(t=ue.model.get())||void 0===t?void 0:t.id)&&e.equals(new o.Path(["config","decorator"]))&&"minecraft:decorated"===e.pop().pop().push("type").get()}menu(e,t){return`\n
      \n ${M.package}\n
      `}getSize(){return"top"===this.perspective?[this.size[0],this.size[2]]:[this.size[0],this.size[1]]}draw(e,t){const i=JSON.parse(JSON.stringify(e.data));this.random=z()(this.seed),this.usedFeatures=[];let o=[];for(let e=0;ee.pos.every((e,t)=>e>=0&&em(50,205,e)),o)}for(let e=0;ee.schema).forEach(e=>pe[e.id]=new o.DataModel(Object(o.ObjectNode)({})));const ue={version:new h("schema_version",b.versions[b.versions.length-1].id).watch(ae),theme:new h("theme","dark").watch(ne),language:new h("language","en").watch(se),model:new g(null),collections:new g(null),jsonOutput:new g(""),errorsVisible:new g(!1),treeMinimized:new g(!1),jsonError:new g(null),preview:new g(null).watch(e=>{var t;return ce(null!==(t=null==e?void 0:e.getName())&&void 0!==t?t:"none")}),schemasLoaded:new g(!1),localesLoaded:new g(!1),loaded:new g(!1),mobilePanel:new g("tree"),settings:new class{constructor(e){var t;this.local_storage=e;const i=JSON.parse(null!==(t=localStorage.getItem(e))&&void 0!==t?t:"{}");Array.isArray(i.fields)||(i.fields=[]),this.fields=i.fields,this.save()}save(){const e=JSON.stringify({fields:this.fields});localStorage.setItem(this.local_storage,e),this.fields=[...this.fields.filter(e=>null==e?void 0:e.path),{}]}}("generator_settings"),blockStateRegistry:{}};ue.version.watchRun(e=>de(void 0,void 0,void 0,(function*(){ue.schemasLoaded.set(!1),yield function(e){return de(this,void 0,void 0,(function*(){ue.blockStateRegistry={};const t=le[e].getCollections();ue.collections.set(t),yield O(t,e);const i=le[e].getSchemas(t);b.models.filter(e=>e.schema).filter(e=>fe(ue.version.get(),e.minVersion)).forEach(e=>{const t=pe[e.id],o=i.get(e.schema);o&&(t.schema=o,"{}"===JSON.stringify(t.data)&&(t.reset(o.default(),!0),t.history=[JSON.stringify(t.data)],t.historyIndex=0))})}))}(e),ue.schemasLoaded.set(!0)}))),ue.theme.watchRun(e=>document.documentElement.setAttribute("data-theme",e));let _e=!1;function fe(e,t,i){const o=b.versions.findIndex(t=>t.id===e),r=t?b.versions.findIndex(e=>e.id===t):0,n=i?b.versions.findIndex(e=>e.id===i):b.versions.length-1;return r<=o&&o<=n}ue.language.watchRun(e=>de(void 0,void 0,void 0,(function*(){ue.localesLoaded.set(!1),yield function(e){return de(this,void 0,void 0,(function*(){if(R[e]&&(_e||"en"!==e))return;const t=yield(yield fetch(`/locales/${e}.json`)).json();"en"===e&&(_e=!0),R[e]=t}))}(e),ue.localesLoaded.set(!0)}))),ue.localesLoaded.watch(e=>{e&&document.querySelectorAll("[data-i18n]").forEach(e=>{e.textContent=E(e.attributes.getNamedItem("data-i18n").value)}),ue.loaded.set(e&&ue.schemasLoaded.get())}),ue.schemasLoaded.watch(e=>{ue.loaded.set(e&&ue.localesLoaded.get())}),ue.mobilePanel.watchRun(e=>{document.body.setAttribute("data-panel",e)}),document.addEventListener("keyup",e=>{e.ctrlKey&&"z"===e.key?(K(!0),pe[ue.model.get().id].undo()):e.ctrlKey&&"y"===e.key&&(Z(!0),pe[ue.model.get().id].redo())});const ge=(e,t,i,o)=>{const r=()=>{var e;return M[(null!==(e=t.find(e=>e[0]===i.get()))&&void 0!==e?e:t[0])[1]]};return`
      {const e=t.findIndex(e=>e[0]===i.get());i.set(t[(e+1)%t.length][0])}),i.watch(t=>e.innerHTML=r(),"toggle")})}">${r()}
      `},he=(e,t,i="/")=>{const o=e.register(t=>{const i=()=>{const t=[["preview","play"],["tree","note"],["source","code"]];return t.map(e=>e[0]).includes(ue.mobilePanel.get())?t.filter(e=>e[0]!==ue.mobilePanel.get()).filter(e=>"preview"!==e[0]||null!==ue.preview.get()).map(t=>`
      \n ${M[t[1]]}\n
      `).join(""):""};ue.mobilePanel.watchRun(()=>{e.mount(t,i(),!1)}),ue.preview.watchRun((o,r)=>{null===o&&"preview"===ue.mobilePanel.get()&&ue.mobilePanel.set("tree"),null!==o&&null!==r||e.mount(t,i(),!1)})});return`
      \n
      \n ${M.three_bars}\n

      ${t}

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

      404

      \n

      ${E("not_found.description")}

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

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

      \n
        \n
        `};var we="undefined"!=typeof window?window:null,Oe=null===we,ke=Oe?void 0:we.document,xe=function(){return!1},je=Oe?"calc":["","-webkit-","-moz-","-o-"].filter((function(e){var t=ke.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length})).shift()+"calc",Se=function(e){return"string"==typeof e||e instanceof String},Me=function(e){if(Se(e)){var t=ke.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},Ce=function(e,t,i){var o=e[t];return void 0!==o?o:i},ze=function(e,t,i,o){if(t){if("end"===o)return 0;if("center"===o)return e/2}else if(i){if("start"===o)return 0;if("center"===o)return e/2}return e},Le=function(e,t){var i=ke.createElement("div");return i.className="gutter gutter-"+t,i},$e=function(e,t,i){var o={};return Se(t)?o[e]=t:o[e]=je+"("+t+"% - "+i+"px)",o},Pe=function(e,t){var i;return(i={})[e]=t+"px",i},Be=function(e,t){if(void 0===t&&(t={}),Oe)return{};var i,o,r,n,a,s,c=e;Array.from&&(c=Array.from(c));var d=Me(c[0]).parentNode,l=getComputedStyle?getComputedStyle(d):null,m=l?l.flexDirection:null,p=Ce(t,"sizes")||c.map((function(){return 100/c.length})),u=Ce(t,"minSize",100),_=Array.isArray(u)?u:c.map((function(){return u})),f=Ce(t,"expandToMin",!1),g=Ce(t,"gutterSize",10),h=Ce(t,"gutterAlign","center"),b=Ce(t,"snapOffset",30),v=Ce(t,"dragInterval",1),y=Ce(t,"direction","horizontal"),N=Ce(t,"cursor","horizontal"===y?"col-resize":"row-resize"),w=Ce(t,"gutter",Le),O=Ce(t,"elementStyle",$e),k=Ce(t,"gutterStyle",Pe);function x(e,t,o,r){var n=O(i,t,o,r);Object.keys(n).forEach((function(t){e.style[t]=n[t]}))}function j(){return s.map((function(e){return e.size}))}function S(e){return"touches"in e?e.touches[0][o]:e[o]}function M(e){var t=s[this.a],i=s[this.b],o=t.size+i.size;t.size=e/this.size*o,i.size=o-e/this.size*o,x(t.element,t.size,this._b,t.i),x(i.element,i.size,this._c,i.i)}function C(e){var i,o=s[this.a],r=s[this.b];this.dragging&&(i=S(e)-this.start+(this._b-this.dragOffset),v>1&&(i=Math.round(i/v)*v),i<=o.minSize+b+this._b?i=o.minSize+this._b:i>=this.size-(r.minSize+b+this._c)&&(i=this.size-(r.minSize+this._c)),M.call(this,i),Ce(t,"onDrag",xe)(j()))}function z(){var e=s[this.a].element,t=s[this.b].element,o=e.getBoundingClientRect(),a=t.getBoundingClientRect();this.size=o[i]+a[i]+this._b+this._c,this.start=o[r],this.end=o[n]}function L(e){var t=function(e){if(!getComputedStyle)return null;var t=getComputedStyle(e);if(!t)return null;var i=e[a];return 0===i?null:i-="horizontal"===y?parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):parseFloat(t.paddingTop)+parseFloat(t.paddingBottom)}(d);if(null===t)return e;if(_.reduce((function(e,t){return e+t}),0)>t)return e;var i=0,o=[],r=e.map((function(r,n){var a=t*r/100,s=ze(g,0===n,n===e.length-1,h),c=_[n]+s;return a0&&o[r]-i>0){var a=Math.min(i,o[r]-i);i-=a,n=e-a}return n/t*100}))}function $(){var e=s[this.a].element,i=s[this.b].element;this.dragging&&Ce(t,"onDragEnd",xe)(j()),this.dragging=!1,we.removeEventListener("mouseup",this.stop),we.removeEventListener("touchend",this.stop),we.removeEventListener("touchcancel",this.stop),we.removeEventListener("mousemove",this.move),we.removeEventListener("touchmove",this.move),this.stop=null,this.move=null,e.removeEventListener("selectstart",xe),e.removeEventListener("dragstart",xe),i.removeEventListener("selectstart",xe),i.removeEventListener("dragstart",xe),e.style.userSelect="",e.style.webkitUserSelect="",e.style.MozUserSelect="",e.style.pointerEvents="",i.style.userSelect="",i.style.webkitUserSelect="",i.style.MozUserSelect="",i.style.pointerEvents="",this.gutter.style.cursor="",this.parent.style.cursor="",ke.body.style.cursor=""}function P(e){if(!("button"in e)||0===e.button){var i=s[this.a].element,o=s[this.b].element;this.dragging||Ce(t,"onDragStart",xe)(j()),e.preventDefault(),this.dragging=!0,this.move=C.bind(this),this.stop=$.bind(this),we.addEventListener("mouseup",this.stop),we.addEventListener("touchend",this.stop),we.addEventListener("touchcancel",this.stop),we.addEventListener("mousemove",this.move),we.addEventListener("touchmove",this.move),i.addEventListener("selectstart",xe),i.addEventListener("dragstart",xe),o.addEventListener("selectstart",xe),o.addEventListener("dragstart",xe),i.style.userSelect="none",i.style.webkitUserSelect="none",i.style.MozUserSelect="none",i.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",this.gutter.style.cursor=N,this.parent.style.cursor=N,ke.body.style.cursor=N,z.call(this),this.dragOffset=S(e)-this.end}}"horizontal"===y?(i="width",o="clientX",r="left",n="right",a="clientWidth"):"vertical"===y&&(i="height",o="clientY",r="top",n="bottom",a="clientHeight"),p=L(p);var B=[];function A(e){var t=e.i===B.length,i=t?B[e.i-1]:B[e.i];z.call(i);var o=t?i.size-e.minSize-i._c:e.minSize+i._b;M.call(i,o)}return(s=c.map((function(e,t){var o,r={element:Me(e),size:p[t],minSize:_[t],i:t};if(t>0&&((o={a:t-1,b:t,dragging:!1,direction:y,parent:d})._b=ze(g,t-1==0,!1,h),o._c=ze(g,!1,t===c.length-1,h),"row-reverse"===m||"column-reverse"===m)){var n=o.a;o.a=o.b,o.b=n}if(t>0){var a=w(t,y,r.element);!function(e,t,o){var r=k(i,t,o);Object.keys(r).forEach((function(t){e.style[t]=r[t]}))}(a,g,t),o._a=P.bind(o),a.addEventListener("mousedown",o._a),a.addEventListener("touchstart",o._a),d.insertBefore(a,r.element),o.gutter=a}return x(r.element,r.size,ze(g,0===t,t===c.length-1,h),t),t>0&&B.push(o),r}))).forEach((function(e){var t=e.element.getBoundingClientRect()[i];t0){var o=B[i-1],r=s[o.a],n=s[o.b];r.size=t[i-1],n.size=e,x(r.element,r.size,o._b,r.i),x(n.element,n.size,o._c,n.i)}}))},getSizes:j,collapse:function(e){A(s[e])},destroy:function(e,t){B.forEach((function(o){if(!0!==t?o.parent.removeChild(o.gutter):(o.gutter.removeEventListener("mousedown",o._a),o.gutter.removeEventListener("touchstart",o._a)),!0!==e){var r=O(i,o.a.size,o._b);Object.keys(r).forEach((function(e){s[o.a].element.style[e]="",s[o.b].element.style[e]=""}))}}))},parent:d,pairs:B}};const Ae=(e,t,i)=>{var o;return`\n
        {Be([].slice.call(e.children),Object.assign({snapOffset:0},t))})}>\n ${i.join("")}\n
        \n`},Re={base(){},choice({switchNode:e},t,i){return e.hook(this,t,i)},object:({},e,t)=>me.biome_noise.active(e)?Ie(me.biome_noise,e,t):me.noise_settings.active(e)?Ie(me.noise_settings,e,t):me.decorator.active(e)?Ie(me.decorator,e,t):void 0,string({},e,t){if(e.endsWith(new o.Path(["biome"]))&&e.pop().pop().endsWith(new o.Path(["generator","biome_source","biomes"]))){const i=me.biome_noise,o=e.get(),r=t.onChange(e=>{i.setBiomeColor(o,e.value)});return``}}};function Ie(e,t,i){return``}const Ee={base:()=>null,object({filter:e,getActiveFields:t},i,r,n=0){if(n>2)return null;if(e){const t=Object(o.relativePath)(i,e);if(t&&t.pop().equals(r))return t.last()}const a=t(i);for(const e of Object.keys(a)){const t=a[e].hook(this,i.push(e),r,n+=1);if(t)return t}return null}},qe={base:()=>!1,object({node:e,getActiveFields:t},i){const o=0===i.modelArr.length?null:e.hook(Ee,i,i),r=Object.entries(t(i)).filter(([e,t])=>o!==e&&t.enabled(i));if(1!==r.length)return!1;const n=i.push(r[0][0]);return"object"===r[0][1].type(n)&&null===r[0][1].hook(Ee,n,n)}},Te=new o.DataModel(Object(o.MapNode)(Object(o.StringNode)(),Object(o.StringNode)()),{historyMax:0}),De={base:()=>["","",""],boolean({node:e},t,i,o){const r=o.onClick(o=>{t.model.set(t,!(!e.optional()||!1!==i)&&void 0)}),n=o.onClick(o=>{t.model.set(t,!e.optional()||!0!==i||void 0)});return["",`${d(E("false"))}\n ${d(E("true"))}`,""]},choice({choices:e,config:t,switchNode:i},r,n,a){const s=i.activeCase(r,!0),c=(null==t?void 0:t.context)?new o.ModelPath(r.getModel(),new o.Path(r.getArray(),[t.context])):r,l=(null==t?void 0:t.choiceContext)?new o.Path([],[t.choiceContext]):(null==t?void 0:t.context)?new o.Path([],[t.context]):r,[m,p,u]=s.node.hook(this,c,n,a);if(1===e.length)return[m,p,u];return[m,``+p,u]},list({children:e},t,i,o){const r=o.onClick(o=>{Array.isArray(i)||(i=[]),t.model.set(t,[e.default(),...i])}),n=o.onClick(o=>{Array.isArray(i)||(i=[]),t.model.set(t,[...i,e.default()])}),a=``;let s="";return Array.isArray(i)&&(s=i.map((i,r)=>{const n=o.onClick(e=>t.model.set(t.push(r),void 0)),a=t.push(r).contextPush("entry"),s=e.category(a),[c,l,m]=e.hook(this,a,i,o);return`
        \n
        \n ${We(a,o)}\n ${Je(a,o)}\n \n ${c}\n \n ${l}\n
        \n ${m?`
        ${m}
        `:""}\n
        `}).join(""),i.length>2&&(s+=`
        \n
        \n \n
        \n
        `)),["",a,s]},map({keys:e,children:t,config:i},r,n,a){var s,c,l;const m=new o.ModelPath(Te,new o.Path([Ue(r.toString())])),p=a.onClick(e=>{const i=m.get();r.model.set(r.push(i),t.default())});let u="";const _="block_state_map"===(null===(s=i.validation)||void 0===s?void 0:s.validator)?ue.blockStateRegistry[Object(o.relativePath)(r,i.validation.params.id).get()]:null;if(!_||_.properties){u=(_?Object(o.StringNode)(null,{enum:Object.keys(null!==(c=_.properties)&&void 0!==c?c:{})}):e).hook(this,m,null!==(l=m.get())&&void 0!==l?l:"",a)[1]+``}let f="";return"object"==typeof n&&void 0!==n&&(f=Object.keys(n).map(e=>{const i=a.onClick(t=>r.model.set(r.push(e),void 0)),s=r.modelPush(e),c=t.category(s),[l,m,p]=(_?Object(o.StringNode)(null,_.properties&&{enum:_.properties[e]}):t).hook(this,s,n[e],a);return`
        \n
        \n ${We(s,a)}\n ${Je(s,a)}\n \n ${l}\n \n ${m}\n
        \n ${p?`
        ${p}
        `:""}\n
        `}).join("")),["",u,f]},number({integer:e,config:t},i,o,r){var n;const a=r.onChange(o=>{const r=o.value;let n=(null==t?void 0:t.color)?parseInt(r.slice(1),16):e?parseInt(r):parseFloat(r);i.model.set(i,n)});if(null==t?void 0:t.color){return["",``,""]}return["",``,""]},object({node:e,getActiveFields:t,getChildModelPath:i},o,r,n){var a;let s="";e.optional()&&(s=void 0===r?``:``);let c="",l="";if("object"==typeof r&&void 0!==r&&(!e.optional()||void 0!==r)){const m=t(o),p=Object.keys(m),u=0===o.modelArr.length?null:e.hook(Ee,o,o);!u||m[u].hidden&&m[u].hidden()||(s+=We(o.push(u),n),s+=Je(o.push(u),n),c+=m[u].hook(this,o.push(u),r[u],n)[1]);const _=(ue.treeMinimized.get()?p.filter(e=>void 0!==r[e]):p).filter(e=>u!==e).filter(e=>m[e].enabled(o));if(e.hook(qe,o)){const e=null!==(a=r[_[0]])&&void 0!==a?a:{};l=m[_[0]].hook(this,o.push(_[0]),e,n)[2]}else l=_.map(e=>{var t;const a=m[e],s=i(o,e),c=s.getContext().join("."),l=ue.settings.fields.find(e=>(null==e?void 0:e.path)&&c.endsWith(e.path));if(a.hidden&&a.hidden()||(null==l?void 0:l.hidden))return"";const p=a.category(s),[u,_,f]=a.hook(this,s,r[e],n);return"Properties"===e&&""===_?"":`
        \n
        \n ${We(s,n)}\n ${Je(s,n)}\n ${u}\n \n ${_}\n
        \n ${f?`
        ${f}
        `:""}\n
        `}).join("")}return c+=e.hook(Re,o,n)||"",["",s+c,l]},string(e,t,i,o){const r=o.register(e=>{e.value=null!=i?i:"",e.addEventListener("change",i=>{const o=e.value;t.model.set(t,0===o.length?void 0:o),i.stopPropagation()})}),n=e.node.hook(Re,t,o)||"";return["",Fe(e,t,r)+n,""]}};function Fe({node:e,getValues:t,config:i},r,n){const a=t();if((null===(s=i)||void 0===s?void 0:s.enum)&&!i.additional){return Ve(e,"string"==typeof i.enum?new o.Path(r.getArray(),[i.enum]):r,a,n)}var s;if(i&&function(e){var t;return!!(null===(t=e)||void 0===t?void 0:t.validator)}(i)&&"resource"===i.validator&&"string"==typeof i.params.pool&&a.length>0){const t=new o.Path(r.getArray(),[i.params.pool]);if(q(t.contextPush(a[0]).getContext()))return Ve(e,t,a,n)}const l=c();return`\n ${0===a.length?"":`\n ${a.map(e=>``}`}function Ve(e,t,i,o){return``}function Ue(e){var t,i=0;for(t=0;t`
        {e.getElementsByTagName("span")[0].classList.remove("show")},{capture:!0,once:!0})})}">\n ${i}${M[t]}\n
        `,Ge=(e,t)=>`data-id="${t.register(t=>{const i=()=>{var i;const o=document.createElement("div");o.classList.add("node-menu");const r=q(e.contextPush("help").getContext(),[],6);r&&o.insertAdjacentHTML("beforeend",`${r}`);const n=e.getContext().join(".");o.insertAdjacentHTML("beforeend",`\n `),null===(i=o.querySelector(".menu-item .btn"))||void 0===i||i.addEventListener("click",()=>{const e=document.createElement("input");e.value=n,t.appendChild(e),e.select(),document.execCommand("copy"),t.removeChild(e)}),t.appendChild(o),document.body.addEventListener("click",()=>{try{t.removeChild(o)}catch(e){}},{capture:!0,once:!0}),document.body.addEventListener("contextmenu",()=>{try{t.removeChild(o)}catch(e){}},{capture:!0,once:!0})};t.addEventListener("contextmenu",e=>{i(),e.preventDefault()});let o=null;t.addEventListener("touchstart",()=>{o=setTimeout(()=>{i(),o=null},800)}),t.addEventListener("touchend",()=>{o&&(clearTimeout(o),o=null)})})}"`;var Xe=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const Ke=(e,t)=>{const i=()=>{if(ue.loaded.get()){const i=new o.ModelPath(t),r=t.schema.hook(De,i,t.data,e),n=t.schema.category(i);return r[1]?`
        \n
        ${r[1]}
        \n
        ${r[2]}
        \n
        `:r[2]}return'
        '},r=e.register(o=>{ue.loaded.watchRun(t=>{t?e.mount(o,i(),!1):new Promise(e=>setTimeout(e,100)).then(()=>{ue.loaded.get()||e.mount(o,i(),!1)})}),ue.treeMinimized.watch(()=>{e.mount(o,i(),!1)}),t.addListener({invalidated(){e.mount(o,i(),!1)}}),me.biome_noise.biomeColors.watch(()=>{e.mount(o,i(),!1)},"tree-panel")}),n=ue.model.get(),a=((null==n?void 0:n.category)?(null==n?void 0:n.category)+"/":"")+(null==n?void 0:n.schema);let s;const c=e.register(e=>s=e),d=i=>{var o,r;const s=(null!=i?i:"").trim().split(" ");return(null!==(r=null===(o=ue.collections.get())||void 0===o?void 0:o.get(a))&&void 0!==r?r:[]).map(e=>e.slice(10)).filter(e=>s.every(t=>e.includes(t))).map(i=>`
        ${i}
        `).join("")};return`
        \n
        \n
        \n
        \n ${M.archive}\n
        \n
        \n
        \n ${M.search}{e.mount(s,d(t.value),!1)})}">\n
        \n
        \n
        \n
        \n
        \n
        \n ${M.tag}\n \n ${ue.version.get()}\n \n
        \n
        \n ${b.versions.filter(e=>{var t;return fe(e.id,null!==(t=ue.model.get().minVersion)&&void 0!==t?t:"1.15")}).reverse().map(t=>`\n
        \n ${t.id}\n
        \n `).join("")}\n
        \n
        \n
        \n
        \n ${M.kebab_horizontal}\n
        \n
        \n
        \n ${M.history}\n
        \n
        {const e=!ue.treeMinimized.get();ue.treeMinimized.set(e),oe(e)}),ue.treeMinimized.watchRun(i=>{e.mount(t,`${M[i?"unfold":"fold"]}`,!1)})})}">
        \n
        \n ${M.arrow_left}\n
        \n
        \n ${M.arrow_right}\n
        \n
        \n
        \n
        \n
        \n
        `},Ze={base:({},e,t)=>t,choice({switchNode:e},t,i){return e.hook(this,t,i)},list({children:e},t,i){return Array.isArray(i)?i.map((i,o)=>e.hook(this,t.push(o),i)):i},map({children:e},t,i){if(void 0===i)return;let o={};return Object.keys(i).forEach(r=>o[r]=e.hook(this,t.push(r),i[r])),o},object({getActiveFields:e},t,i){if(null==i||"object"!=typeof i)return i;let o={};const r=e(t);return Object.keys(r).filter(e=>r[e].enabled(t)).forEach(e=>{o[e]=r[e].hook(this,t.push(e),i[e])}),o}},Qe=(e,t)=>{const i=e=>{const i=t.schema.hook(Ze,new o.ModelPath(t),t.data);ue.jsonOutput.set(JSON.stringify(i,null,2)),e.value=ue.jsonOutput.get()},r=e.register(e=>{i(e),t.addListener({invalidated(){ue.jsonError.set(null),i(e)}}),e.addEventListener("change",()=>{const i=e.value;try{t.reset(JSON.parse(i)),ue.jsonError.set(null)}catch(e){ue.jsonError.set(e.message)}})});return`
        \n
        \n \n
        \n ${M.clippy}\n \n
        \n
        \n
        \n ${M.kebab_horizontal}\n
        \n
        \n
        \n ${M.download}\n \n
        \n
        {i.style.display="none"},{capture:!0,once:!0}),i.select(),document.execCommand("copy"),te()})}">\n ${M.link}\n
        \n
        \n
        \n
        \n \n
        `},et=(e,t)=>`
        {const e=ue.preview.get();if(e&&e.path&&e.path.withModel(t).get()){const i=o.getContext("2d"),r=e.path.withModel(t).get();e.state=JSON.parse(JSON.stringify(r));const[n,a]=e.getSize();o.width=n,o.height=a;const s=i.createImageData(n,a);e.draw(t,s),i.putImageData(s,0,0)}else ue.preview.set(null)};let n;t.addListener({invalidated:r}),ue.preview.watchRun(t=>{var o,n;t&&(t.redraw=r,r(),e.mount(i.querySelector(".panel-controls"),`\n ${null!==(n=null===(o=ue.preview.get())||void 0===o?void 0:o.menu(e,r))&&void 0!==n?n:""}\n
        \n ${M.x}\n
        `,!1))},"preview-panel"),i.addEventListener("mousedown",e=>{n=[e.offsetX,e.offsetY]}),i.addEventListener("mousemove",e=>{var t,i;if(void 0!==n){if(null===(t=ue.preview.get())||void 0===t?void 0:t.onDrag){const[t,a]=ue.preview.get().getSize(),s=(e.offsetX-n[0])*t/o.clientWidth,c=(e.offsetY-n[1])*a/o.clientHeight;0===s&&0===c||(null===(i=ue.preview.get())||void 0===i||i.onDrag(s,c),r())}n=[e.offsetX,e.offsetY]}}),i.addEventListener("mouseup",e=>{n=void 0})})}">\n
        \n \n
        `,tt=(it={base(){},map({config:e},t,i){var r,n,a;if("block_state_map"===(null===(r=e.validation)||void 0===r?void 0:r.validator)){const r=Object(o.relativePath)(t,e.validation.params.id).get(),s=t.getModel().errors,c=null!==(a=(null!==(n=ue.blockStateRegistry[r])&&void 0!==n?n:{}).properties)&&void 0!==a?a:{},d=Object.keys(null!=i?i:{});Object.keys(c).forEach(e=>{d.includes(e)?c[e].includes(i[e])||s.add(t.push(e),"error.invalid_enum_option",i[e]):"Properties"===t.last()&&s.add(t,"error.block_state.missing_property",e)})}},object({node:e,getActiveFields:t},i,o){let r=t(i);const n=0===i.modelArr.length?null:e.hook(Ee,i,i),a=Object.keys(r).filter(e=>n!==e).filter(e=>r[e].enabled(i));1===a.length&&"object"===r[a[0]].type(i.push(a[0]))&&r[a[0]].optional()&&"{}"===JSON.stringify(o[a[0]])&&i.push(a[0]).set(void 0)}},Object.assign(Object.assign({},it),{choice(e,t,i,...o){var r;(null!==(r=it.choice)&&void 0!==r?r:it.base)(e,t,i,...o),e.switchNode.hook(this,t,i,...o)},list(e,t,i,...o){var r;(null!==(r=it.list)&&void 0!==r?r:it.base)(e,t,i,...o),Array.isArray(i)&&i.forEach((i,r)=>e.children.hook(this,t.push(r),i,...o))},map(e,t,i,...o){var r;(null!==(r=it.map)&&void 0!==r?r:it.base)(e,t,i,...o),"object"==typeof i&&Object.keys(i).forEach(r=>e.children.hook(this,t.push(r),i[r],...o))},object(e,t,i,...o){var r;if((null!==(r=it.object)&&void 0!==r?r:it.base)(e,t,i,...o),null===i||"object"!=typeof i)return;const n=e.getActiveFields(t);Object.keys(n).filter(e=>n[e].enabled(t)).forEach(e=>{n[e].hook(this,t.push(e),i[e],...o)})}}));var it;const ot=e=>{const t=pe[ue.model.get().id];t.listeners=[];const i=()=>ue.preview.get()?Ae(e,{direction:"vertical",sizes:[60,40]},[Qe(e,t),et(e,t)]):Qe(e,t),r=()=>{var e;const i=ue.preview.get(),o=null===(e=null==i?void 0:i.path)||void 0===e?void 0:e.withModel(t);o&&o.get()&&(null==i?void 0:i.active(o))||ue.preview.set(null)};t.addListener({invalidated:()=>{r(),t.schema.hook(tt,new o.ModelPath(t,new o.Path),t.data,t.errors)}}),ue.schemasLoaded.watch(e=>{e&&(t.validate(),t.invalidate(),r())},"generator"),ue.localesLoaded.watch(e=>{e&&ue.schemasLoaded.get()&&t.invalidate()},"generator"),ue.version.watchRun(e=>{const t=ue.model.get().minVersion;t&&!fe(e,t)&&ue.version.set(t)},"generator");const n=e.register(t=>{ue.preview.watch((o,r)=>{o&&r||e.mount(t,i(),!1)},"generator")}),a="string"==typeof ue.model.get().category?`/${ue.model.get().category}/`:void 0;return`${he(e,ue.model.get().name+" Generator",a)}\n
        \n ${Ae(e,{direction:"horizontal",sizes:[66,34]},[Ke(e,t),`
        ${i()}
        `])}\n
        \n ${((e,t)=>{const i=()=>ue.jsonError.get()?`
        \n
        \n ${d(ue.jsonError.get())}\n
        \n
        \n
        \n ${M.issue_opened}\n
        `:0===t.errors.count()?"":`${ue.errorsVisible.get()?`\n
        \n ${t.errors.getAll().map(e=>`\n
        \n ${e.path.toString()}\n -\n ${d(E(e.error,e.params))}\n
        \n `).join("")}\n
        \n `:""}\n ${ge(e,[[!0,"chevron_down"],[!1,"issue_opened"]],ue.errorsVisible)}`;return`\n
        \n ${i()}\n
        `})(e,t)}`};var rt=function(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{c(o.next(e))}catch(e){n(e)}}function s(e){try{c(o.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}c((o=o.apply(e,t||[])).next())}))};const nt=b.models.filter(e=>!0===e.category),at=()=>rt(void 0,void 0,void 0,(function*(){var e,t;const i=location.pathname.split("/").filter(e=>e),o=new URLSearchParams(location.search),r=document.getElementById("app");let n=E("title.home"),a=e=>"",s="home";if(0===i.length)ue.model.set({id:"",name:"Data Pack",category:!0,minVersion:"1.15"}),a=ve;else if("settings"===i[0]&&"fields"===i[1])s="settings",a=Ne;else if(1===i.length&&nt.map(e=>e.id).includes(i[0]))ue.model.set(nt.find(e=>e.id===i[0])),a=ve;else{s="tree";const r=null!==(e=b.models.find(e=>e.id===i.join("/")))&&void 0!==e?e:null;if(ue.model.set(r),r){if(o.has("q"))try{const e=atob(null!==(t=o.get("q"))&&void 0!==t?t:"");pe[r.id].reset(JSON.parse(e))}catch(e){}a=ot,n=E("title.generator",[E(r.id)])}else a=ye}const c=b.versions.filter(e=>{var t;return fe(e.id,null===(t=ue.model.get())||void 0===t?void 0:t.minVersion)}).map(e=>e.id).join(", ");document.title=`${n} Minecraft ${c}`,ue.mobilePanel.set(s);const d=new T;d.mount(r,a(d),!0)}));window.addEventListener("popstate",at),document.addEventListener("DOMContentLoaded",()=>{document.body.addEventListener("click",e=>{if(e.target instanceof Element&&e.target.hasAttribute("data-link")&&e.target.hasAttribute("href")){e.preventDefault();const t=e.target.getAttribute("href");J(t),history.pushState(null,"",t),at()}}),at()})}]); //# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/js/bundle.js.map b/js/bundle.js.map index a1744e18..0e985d17 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/canFlatten.ts","webpack:///./src/app/hooks/renderHtml.ts","webpack:///./src/app/components/panels/TreePanel.ts","webpack:///./src/app/hooks/transformOutput.ts","webpack:///./src/app/components/panels/SourcePanel.ts","webpack:///./src/app/components/panels/PreviewPanel.ts","webpack:///./src/app/hooks/customValidation.ts","webpack:///./src/app/hooks/walk.ts","webpack:///./src/app/views/Generator.ts","webpack:///./src/app/components/Errors.ts","webpack:///./src/app/Router.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__createBinding","this","k","k2","undefined","__exportStar","Error","initCommonSchemas","UniformInt","Range","NoiseSettingsPresets","DefaultNoiseSettings","DimensionTypePresets","DefaultDimensionType","ConditionCases","core_1","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","target","size","offset","bottom_slide","default_block","Name","default_fluid","Properties","level","schemas","collections","StringNode","Reference","register","Mod","ObjectNode","validator","params","pool","Opt","MapNode","validation","id","push","context","default","ListNode","NumberNode","integer","minLength","maxLength","config","ChoiceNode","forceRange","type","node","change","v","_a","_b","_c","min","max","priority","bounds","allowBinomial","enum","match","choiceContext","base","spread","maxSpread","terms","block","properties","predicate","entity","scores","term","inverse","BooleanNode","offsetX","offsetY","offsetZ","chance","looting_multiplier","enchantment","chances","period","raining","thundering","ObjectOrPreset","shrunk","fixed_time","effects","island_noise_override","amplified","FloatProvider","UniformFloat","FunctionCases","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","cases","defaultCase","keys","forEach","enabled","path","provider","hidden","Switch","Case","disableSwitchContext","choices","replace","length","score","scale","amount","isScoreHolder","source","Uniform","mean","deviation","plateau","entitySourceNode","range","conditions","copySourceNode","formula","parameters","bonusMultiplier","pop","extra","probability","ops","category","op","enchantments","levels","treasure","destination","decoration","zoom","search_radius","skip_existing_chunks","limit","count","modifiers","patterns","pattern","color","append","entries","add","damage","seed","lore","tag","registry","duration","res","f","Keep","Has","Base","keep","optional","pathPush","suggest","validate","_","validationOption","hook","args","canUpdate","update","mods","webpackPolyfill","deprecate","paths","children","__webpack_amd_options__","initProcessorListSchemas","Processors","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","mossiness","blocks","integrity","heightmap","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","axis","block_state","alea","xor128","xorwow","xorshift7","xor4096","tychei","sr","ModelPath","Path","relativePath","start","reduce","e","modelArr","contextArr","end","slice","element","modelPush","contextPush","copy","newElement","startsWith","model","other","every","map","join","fn","thisArg","super","set","shift","Errors","errors","error","exact","filter","equals","iterator","Node_1","Infinity","between","Array","index","nextIndex","getArray","navigate","parseInt","toString","options","loose","isArray","obj","list","SwitchNode","activeCase","concat","fallback","sorter","a","b","matchedCases","sort","escapeString","str","quoteString","initPredicatesSchemas","LocationFields","Common_1","StateChoice","item","durability","potion","nbt","state","fluid","position","x","y","z","biome","feature","dimension","light","stat","gamemode","advancements","recipes","stats","amplifier","ambient","visible","absolute","horizontal","allowTag","team","location","distance","flags","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","LootFunctions","LootConditions","LootCopySources","LootEntitySources","LootTableTypes","Map","requires","allows","initDecoratorSchemas","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","step","extra_count","extra_chance","noise_level","below_noise","above_noise","noise_to_count_ratio","noise_factor","noise_offset","outer","inner","baseline","above_bottom","below_top","bottom_inclusive","top_inclusive","BiasedRangeConfig","cutoff","surface","floor_to_ceiling_search_range","max_water_depth","__setModuleDefault","__importStar","mod","result","getSchemas","getCollections","lootContext","Collections_1","schemas_1","CollectionRegistry","initCollections","SchemaRegistry","initSchemas","DataModel","Path_1","Errors_1","schema","data","listeners","history","JSON","stringify","historyIndex","historyMax","listener","indexOf","splice","newHistory","silentInvalidate","invalidated","invalidate","silent","reset","isNaN","last","console","log","parse","withModel","clear","tempErrors","boolean","StringOrList","ObjectOrList","ListNode_1","SwitchNode_1","switchNode","choice","isValid","XOrList","presetNode","objectNode","presets","Number","isInteger","number","utils_1","fields","defaultFields","getActiveFields","switchValue","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","includes","pathElements","activeFields","existingKeys","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","constructor","transform","isEnum","isValidator","getValues","isDefinition","allowUnknown","additional","values","string","warn","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Predicates_1","Recipe_1","Tags_1","TextComponent_1","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","display","icon","title","description","background","frame","show_toast","announce_to_chat","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","num_bees_inside","partner","child","from","to","victims","villager","zombie","killing_blow","slots","empty","occupied","full","items","delta","unique_entity_types","entered","exited","recipe","condition","LootContext_1","functionsAndConditions","functions","compileSwitchNode","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","conditionSwtichNode","functionSwtichNode","entitySourceSwtichNode","copySourceSwtichNode","pools","rolls","bonus_rolls","weightMod","weight","quality","expand","attribute","operation","slot","pack","pack_format","group","ingredients","ingredient","cookingtime","addition","TagBase","required","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","leadingSlash","allowPartial","hoverEvent","translate","with","objective","selector","keybind","storage","interpret","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","EntityPredicate","loot_table","projectile","shooter","signal_strength","NoPreset","generator","biome_source","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","large_biomes","legacy_biome_init_layer","settings","lakes","features","layers","structures","Math","floor","random","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","surface_builder","depth","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature","reach","decorator","rim","rim_size","exit","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","hat_state","decor_state","stem_state","valid_base_block","planted","feature_false","feature_true","to_place","place_on","place_in","place_under","rock_count","hole_count","requires_block_below","valid_blocks","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","crown_height","trunk_height","decorators","min_clipped_height","lower_size","upper_size","upper_limit","middle_size","min_size","extra_size","stronghold","spacing","separation","salt","templatePoolConfig","start_pool","biome_temp","large_probability","cluster_probability","portal_type","is_beached","top_material","under_material","underwater_material","snowy","elements","element_type","projection","generate_features","bonus_chest","dimensions","ItemModifier_1","initItemModifierSchemas","conditionIDSwtichNode","functionIDSwtichNode","_p","debug_settings","debug_mode","air_state","distanceFactor","vertical_rotation","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","wetness_mean","wetness_deviation","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","min_outer_wall_distance","max_outer_wall_distance","min_distribution_points","max_distribution_points","min_point_offset","max_point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","direction","allow_water","height_distribution","body_provider","head_provider","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","root_replaceable","root_state_provider","hanging_root_state_provider","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","foliage_provider","bend_length","min_height_for_leaves","foliage_height","leaf_placement_attempts","_d","global","define","Alea","me","mash","String","h","charCodeAt","next","s0","s1","s2","impl","opts","xg","prng","int32","double","quick","XorGen","strseed","w","X","j","init","Date","math","nodecrypto","startdenom","pow","significance","overflow","seedrandom","callback","shortseed","mixkey","flatten","prop","typ","entropy","tostring","out","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","navigator","plugins","screen","autoseed","arc4","ARC4","g","S","pass","is_math_call","keylen","width","smear","stringseed","fromCharCode","apply","ex","self","dec2hex","dec","substr","hexId","arr","window","htmlEncode","stringToColor","abs","imul","hashString","clamp","clampedLerp","lerp","lerp2","smoothstep","watchers","oldValue","watcher","watch","find","localStorage","getItem","setItem","__awaiter","_arguments","P","Promise","resolve","reject","fulfilled","rejected","done","then","removeItem","mcdataUrl","vanillaDatapackUrl","refs","hash","url","fetchData","versionId","version","versions","dynamic","all","matches","cache","caches","open","promises","request","delete","deleteMatching","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","registries","checkVersion","minVersion","maxVersion","mcdata_master","getData","states","App","blockStateRegistry","vanilla_datapack_summary","cacheResponse","ok","json","fetchResponse","fetch","responseData","put","Response","Octicon","archive","arrow_both","arrow_left","arrow_right","chevron_down","chevron_right","clippy","code","dash","download","eye","eye_closed","fold","gear","globe","info","issue_opened","kebab_horizontal","link","mark_github","moon","note","package","play","plus","plus_circle","search","square","square_fill","sun","trashcan","three_bars","unfold","xo","yo","zo","x2","y2","z2","x3","y3","z3","x4","y4","z4","x5","y5","z5","y6","sampleAndLerp","grad","GRADIENT","lerp3","gradDot","noiseLevels","lowestFreqInputFactor","lowestFreqValueFactor","fill","fixY","inputF","valueF","wrap","first","second","expectedDeviation","valueFactor","getValue","Preview","redraw","view","dx","dy","viewScale","biomeColors","endsWith","el","watchRun","textContent","toFixed","onClick","img","noiseMaps","biomeColorCache","getBiomeColor","xx","yy","closestBiome","minDist","minBiome","dist","fitness","assign","padStart","Locales","resolveLocaleParams","locale","language","en","segmentedLocale","segments","minDepth","prev","array","addEventListener","evt","stopPropagation","on","querySelectorAll","getAttribute","attributes","getNamedItem","html","innerHTML","mounted","toggleMenu","classList","hideMenu","document","body","closest","contains","remove","capture","once","chunkWidth","chunkHeight","chunkCountY","biomeDepth","biomeScale","noiseColumnCache","xOffset","minLimitPerlinNoise","fromRange","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","cx","ox","noise1","fillNoiseColumn","noise2","oy","cachedColumn","xzScale","yScale","xzFactor","yFactor","randomDensity","getRandomDensity","sampleAndClampNoise","getOctaveNoise","falloff","minLimitNoise","maxLimitNoise","mainNoise","terrain","featureColors","label","ga","Tracker","hotkey","minimized","theme","preview","Versions","Previews","debug","iterateNoiseColumn","reverse","getColor","Features","decorated","pos","getPositions","flatMap","getPlacements","random_boolean_selector","random_selector","simple_random_selector","nextInt","Decorators","sampleUniformInt","count_extra","count_multilayer","count_noise","biomeInfoNoise","count_noise_biased","factor","ceil","dark_oak_tree","depth_average","decorateY","emerald_ore","fire","glowstone","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","water_lake","perspective","usedFeatures","featureData","placements","filtered","useFeature","featureFn","decoratorFn","Models","models","jsonOutput","errorsVisible","treeMinimized","jsonError","getName","schemasLoaded","localesLoaded","loaded","mobilePanel","local_storage","save","updateSchemas","documentElement","setAttribute","hasFetchedEnglish","minVersionId","maxVersionId","findIndex","updateLocale","ctrlKey","undo","redo","Toggle","activeOcticon","Header","homeLink","panelTogglesId","getPanelToggles","panels","mount","Dropdown","GeneratorCard","arrow","active","cleanUrl","Home","filteredModels","NotFound","FieldSettings","fieldListId","fieldList","getFields","pathInput","nameInput","ssr","NOOP","calc","prefix","createElement","style","cssText","isString","elementOrSelector","ele","querySelector","getOption","propName","def","getGutterSize","gutterSize","isFirst","isLast","gutterAlign","defaultGutterFn","gutterDirection","gut","className","defaultElementStyleFn","dim","gutSize","defaultGutterStyleFn","idsOption","clientAxis","positionEnd","clientSize","ids","parentNode","parentStyle","getComputedStyle","parentFlexDirection","flexDirection","sizes","minSize","minSizes","expandToMin","snapOffset","dragInterval","cursor","gutter","elementStyle","gutterStyle","setElementSize","getSizes","getMousePosition","touches","adjust","percentage","drag","dragging","dragOffset","round","calculateSizes","aBounds","bBounds","trimToMin","sizesToTrim","parentSize","computedStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","innerSize","excessPixels","toSpare","pixelSizes","pixelSize","elementGutterSize","elementMinSize","newPixelSize","takenPixels","stopDragging","stop","move","userSelect","webkitUserSelect","MozUserSelect","pointerEvents","startDragging","button","preventDefault","pairs","adjustToMin","pair","temp","gutterElement","setGutterSize","insertBefore","computedSize","setSizes","newSizes","trimmed","newSize","collapse","destroy","preserveStyles","preserveGutter","removeChild","SplitGroup","suffixInjector","mounter","biome_noise","setPreview","noise_settings","biomePreview","onChange","setBiomeColor","getBiomeHex","getFilterKey","origin","canFlatten","filterKey","visibleEntries","nestedPath","keysModel","renderHtml","onFalse","onTrue","pathWithChoiceContext","suffix","pathLocale","onAdd","onAddBottom","childValue","removeId","childPath","cPrefix","cSuffix","cBody","help","contextMenu","keyPath","blockState","parsed","visibleKeys","field","getContext","fieldSettings","inputId","rawString","selectRaw","contextPath","datalistId","popupIcon","message","popup","getElementsByTagName","openMenu","helpMessage","insertAdjacentHTML","inputEl","appendChild","select","execCommand","timer","setTimeout","clearTimeout","TreePanel","getContent","rendered","tree","addListener","presetList","presetListId","getPresets","query","trim","split","vanilla_datapack_data","fetchPreset","toggle","parentElement","transformOutput","SourcePanel","updateContent","rawSource","err","fileContents","encodeURIComponent","downloadAnchor","lastElementChild","click","shareInput","btoa","pathname","PreviewPanel","canvas","ctx","newState","getSize","createImageData","draw","putImageData","dragStart","menu","onDrag","clientWidth","clientHeight","customValidation","requiredProps","Generator","getSideContent","validatePreview","sideContent","getAll","categories","router","urlParts","urlParams","URLSearchParams","getElementById","renderer","panel","has","atob","Element","hasAttribute","pushState"],"mappings":"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ACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,sBAEJH,EAAYG,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,iCAEJH,EAAYG,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,+BAEJH,EAAYG,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,YAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cAC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nB,EAAQub,qBAAkB,EAqgB1Bvb,EAAQub,gBApgBR,SAAyB7V,GACrBA,EAAYG,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,iBAAkB,CACnC,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,+BAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,YAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,4BAEJH,EAAYG,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,4BAEJH,EAAYG,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,8BAEJH,EAAYG,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,YAEJH,EAAYG,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,qBAEJH,EAAYG,SAAS,kBAAmB,CACpC,MACA,WAEJH,EAAYG,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sB,6BCngBRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQyb,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxB/K,EAAW,EAAQ,GACnBgL,EAAc,EAAQ,IACtB2G,EAAc,EAAQ,IACtBC,EAAkB,EAAQ,IAC1B3G,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAC1BuG,EAAa,EAAQ,IACrBC,EAAkB,EAAQ,IAiBhCpnB,EAAQyb,YAhBR,SAAqBhW,EAASC,GAE1B4P,EAAS7S,kBAAkBgD,EAASC,GACpC2a,EAAcQ,uBAAuBpb,EAASC,GAC9C4a,EAAYQ,qBAAqBrb,EAASC,GAC1CwhB,EAAgBG,yBAAyB5hB,EAASC,GAClDuhB,EAAYK,qBAAqB7hB,EAASC,GAC1C6a,EAAYQ,qBAAqBtb,EAASC,GAC1C8a,EAAaQ,sBAAsBvb,EAASC,GAC5C+a,EAAarL,sBAAsB3P,EAASC,GAC5Cgb,EAASO,kBAAkBxb,EAASC,GACpCib,EAAOO,gBAAgBzb,EAASC,GAChCkb,EAAgBO,yBAAyB1b,EAASC,GAClDyhB,EAAWI,oBAAoB9hB,EAASC,GACxC0hB,EAAgBI,yBAAyB/hB,EAASC,K,6BC7BtD9E,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ6gB,4BAAyB,EACjC,MAAM5d,EAAS,EAAQ,GACjBqS,EAAW,EAAQ,GAgOzBtV,EAAQ6gB,uBA/NR,SAAgCpb,EAASC,GACrC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C+hB,EAAkBxkB,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,CACNmc,UAAW,8BACXjb,UAAWlB,MAGxB,CAAEb,QAAS,eACdf,EAAQI,SAAS,cAAe5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACzDqb,QAASne,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7Csb,KAAMpe,EAAO8C,WAAW,CACpByP,KAAM7P,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC1DyP,IAAK1S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEkI,SAAU,CAAEvB,SAAU,iBAAkBtG,GAAI,CAAC,MAAO,CAAEC,KAAM,gBAEzH+a,MAAO1b,EAAU,kBACjB2b,YAAa3b,EAAU,kBACvB4b,WAAYve,EAAOkD,IAAIR,KACvB8b,MAAOxe,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,OAAQ,YAAa,WAC3D4Z,WAAYze,EAAOkD,IAAIlD,EAAO2F,eAC9B+Y,iBAAkB1e,EAAOkD,IAAIlD,EAAO2F,eACpCqC,OAAQhI,EAAOkD,IAAIlD,EAAO2F,iBAC1B,CACAnC,QAAS,KAAM,CACX4a,KAAM,CACF7L,KAAM,mBAEV8L,MAAO,GACPC,YAAa,QAGrBK,OAAQ3e,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mBACvE2b,SAAU5e,EAAOmD,QAAQT,IAAcC,EAAU,yBACjDkc,aAAc7e,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAOyD,SAASf,OAEzDoc,QAAS9e,EAAOkD,IAAIlD,EAAO8C,WAAW,CAClCic,SAAU/e,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBACzE+b,KAAMhf,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mBACrFuQ,QAASxT,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eACxFgc,WAAYjf,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,SAEzD,CAAEJ,QAAS,gBAAkB,CAC5BC,QAAS,KAAM,CACXob,SAAU,CACNM,YAAa,CACTC,QAAS,4BAKzB3c,EAAQI,SAAS,uBAAwB5C,EAAO8C,WAAW,CACvDqc,QAASzc,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMR,EAAY3E,IAAI,0BAC7EoL,WAAYlJ,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrC4R,OAAQ1U,EAAO6C,IAAI2hB,EAAiB,CAChC3c,QAASC,GAA6C,yBAArCA,EAAKyB,MAAMjG,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,YACtEmc,gBAAiBpf,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACzD4O,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,yBAA0B,CACtBgc,OAAQ6F,EACRnF,QAASmF,EACTlF,MAAOkF,GAEX,0BAA2B,CACvB/R,OAAQzS,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAE3E,8BAA+B,CAC3Bsc,KAAMvf,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACrEuc,GAAIxf,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAEvE,gCAAiC,CAC7Bwc,QAASzf,EAAOkD,IAAIlD,EAAOyD,SAAS+gB,KAExC,6BAA8B,CAC1BjiB,MAAOvC,EAAOkD,IAAImP,EAAS3S,UAE/B,yBAA0B,CACtB6S,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,kCAAmC,CAC/B+c,SAAU8E,EACV7E,OAAQ6E,GAEZ,4BAA6B,CACzB/d,QAASzG,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAAmBN,EAAU,8BAExH,wBAAyB,CACrByC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtE0P,MAAO3S,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAcA,IAAc,CAAEU,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,gBAE7I,2BAA4B,CACxBwG,OAAQ9J,EAAOkD,IAAImP,EAAS3S,SAC5B6S,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5BmI,OAAQ9K,EAAOkD,IAAIP,EAAU,sBAEjC,iCAAkC,CAC9B4C,OAAQif,EACR5E,aAAc5f,EAAOkD,IAAIP,EAAU,6BAEvC,0BAA2B,CACvB4P,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5B4C,OAAQif,EACRjS,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,gCAAiC,CAC7BsR,SAAUjU,EAAOkD,IAAIP,EAAU,wBAEnC,8BAA+B,CAC3Bkd,MAAO7f,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChCgd,MAAO9f,EAAOkD,IAAImP,EAAS3S,SAC3BqgB,SAAU/f,EAAOkD,IAAImP,EAAS3S,SAC9BsgB,KAAMhgB,EAAOkD,IAAImP,EAAS3S,YAE9BugB,MAAOjgB,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,qBAEhD,oCAAqC,CACjCud,MAAOlgB,EAAOkD,IAAImP,EAAS3S,SAC3B8S,WAAYxS,EAAOkD,IAAImP,EAAS3S,SAChC6S,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,+BAAgC,CAC5B4P,KAAMvS,EAAOkD,IAAIP,EAAU,mBAC3BsR,SAAUjU,EAAOkD,IAAIP,EAAU,wBAEnC,+BAAgC,CAC5Bwd,oBAAqBngB,EAAOkD,IAAImP,EAAS3S,SACzC+f,QAASzf,EAAOkD,IAAIlD,EAAOyD,SAAS+gB,KAExC,uBAAwB,CACpBtQ,SAAUlU,EAAOkD,IAAImP,EAAS3S,SAC9ByL,SAAUnL,EAAOkD,IAAImP,EAAS3S,UAElC,qBAAsB,CAClBuU,SAAUjU,EAAOkD,IAAIP,EAAU,wBAEnC,0BAA2B,CACvBuR,SAAUlU,EAAOkD,IAAImP,EAAS3S,SAC9B0gB,QAASpgB,EAAOkD,IAAIP,EAAU,uBAC9B0d,OAAQrgB,EAAOkD,IAAIP,EAAU,wBAEjC,yBAA0B,CACtByC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtE0P,MAAO3S,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAcA,IAAc,CAAEU,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,eACzIiP,KAAMvS,EAAOkD,IAAIP,EAAU,mBAC3BsR,SAAUjU,EAAOkD,IAAIP,EAAU,wBAEnC,4CAA6C,CACzC8hB,WAAY/hB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAEpE,+BAAgC,CAC5B6H,OAAQ9K,EAAOkD,IAAIP,EAAU,qBAC7B4C,OAAQif,GAEZ,0CAA2C,CACvCjS,KAAMvS,EAAOkD,IAAIP,EAAU,mBAC3B4C,OAAQif,GAEZ,iCAAkC,CAC9Bjf,OAAQif,EACR5E,aAAc5f,EAAOkD,IAAIP,EAAU,6BAEvC,4BAA6B,CACzB2d,OAAQ5d,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAEhE,yBAA0B,CACtBgR,SAAUjU,EAAOkD,IAAIP,EAAU,wBAEnC,6BAA8B,CAC1ByC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aAE1E,0BAA2B,CACvBsP,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,4BAA6B,CACzB4C,OAAQif,GAEZ,wBAAyB,CACrBjf,OAAQif,GAEZ,uBAAwB,CACpBE,WAAYF,EACZG,QAASH,EACTI,gBAAiB5kB,EAAOkD,IAAImP,EAAS3S,MAAM,CAAEiE,SAAS,MAE1D,4CAA6C,CACzC4B,OAAQvF,EAAOkD,IAAIP,EAAU,qBAC7B4P,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,2BAA4B,CACxBuR,SAAUlU,EAAOkD,IAAImP,EAAS3S,UAElC,uBAAwB,CACpB6S,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,2BAA4B,CACxB+c,SAAU1f,EAAOkD,IAAIP,EAAU,qBAC/B4P,KAAMvS,EAAOkD,IAAIP,EAAU,oBAE/B,4BAA6B,CACzBsR,SAAUtR,EAAU,yBAG7B,CAAEY,QAAS,gBACf,CAAEoG,SAAU,YAAapG,QAAS,iB,6BCjOzC5F,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ8gB,0BAAuB,EAC/B,MAAM7d,EAAS,EAAQ,GACjBqS,EAAW,EAAQ,GAgBzBtV,EAAQ8gB,qBAfR,SAA8Brb,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,YAAa5C,EAAOua,aAAa5X,EAAU,aAAc,CAAEoC,cAAe,eAC3FvC,EAAQI,SAAS,YAAa5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACvDyd,UAAW7d,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,yBAC/D,CAACjD,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,cAC1B,CAACtD,EAAOkI,MAAOmK,EAAStS,gBACzB,CAAE4J,SAAU,YAAapG,QAAS,cAAgB,CACjDC,QAAS,KAAM,CACX+c,UAAW,8BACXhb,OAAQ,c,6BCfpB5H,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQsnB,0BAAuB,EAC/B,MAAMrkB,EAAS,EAAQ,GACjBqS,EAAW,EAAQ,GA2GzBtV,EAAQsnB,qBA1GR,SAA8B7hB,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CoiB,EAAY3gB,GAASlE,EAAO6C,IAAIqB,EAAM,CACxC2D,QAASC,QAAsCzI,IAA9ByI,EAAKxE,KAAK,UAAUxF,QAEzC0E,EAAQI,SAAS,YAAa5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACvDmB,KAAMoO,EAASxS,qBAAqB8C,EAAU,mBAC9CmiB,UAAW9kB,EAAO8C,WAAW,CACzBmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,8BAC1D8H,KAAM/K,EAAO0D,WAAW,CAAEC,SAAS,IACnC,CAAC3D,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,kBAAmB,CACf6c,aAAc/kB,EAAO8C,WAAW,CAC5BmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,2BAC1D8H,KAAM/K,EAAO0D,WAAW,CAAEC,SAAS,IACnC,CAAC3D,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,kBAAmB,CACf+K,MAAOvQ,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBAE/D,wBAAyB,CACrB+hB,OAAQhlB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,aACvCogB,eAAgBJ,EAASliB,EAAU,0BACnCuiB,kBAAmBL,EAASliB,EAAU,0BACtCwiB,eAAgBN,EAASliB,EAAU,0BACnCyiB,gBAAiBP,EAASliB,EAAU,0BACpC0iB,OAAQR,EAAS7kB,EAAO6C,IAAI7C,EAAOyD,SAASd,EAAU,oBAAqB,CACvEa,QAAS,IAAM,CAAC,CACRyP,MAAO,yBAIvB,yBAA0B,CACtBzK,MAAOxI,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAClE4gB,OAAQrlB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,uBAEhF,4BAA6B,CACzBqiB,aAActlB,EAAOkD,IAAIlD,EAAO2F,eAChC4f,wBAAyBvlB,EAAOkD,IAAIlD,EAAO2F,kBAGpD,CAAEgE,SAAU,YAAaxB,sBAAsB,IAClDqd,SAAUnT,EAAS1S,qBAAqBgD,EAAU,oBAEtD,iBAAkB,CACd6iB,SAAUxlB,EAAO8C,WAAW,CACxBmQ,MAAOjT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBACtEwiB,MAAOzlB,EAAOkD,IAAIlD,EAAO2F,eACzB+f,SAAU1lB,EAAOkD,IAAIlD,EAAO2F,eAC5BggB,OAAQ3lB,EAAOyD,SAASd,EAAU,oBAClCijB,WAAYjjB,EAAU,6BAInC,CAAEwF,sBAAsB,KAC5B,CAAEwB,SAAU,OAAQpG,QAAS,cAAgB,CAC5CC,QAAS,KACL,MAAMuH,EAAO8a,KAAKC,MAAsB,WAAhBD,KAAKE,UAA2B,WACxD,MAAO,CACH9hB,KAAM,sBACN6gB,UAAW,CACP7gB,KAAM,kBACN8G,OACAga,aAAc,CACV9gB,KAAM,kBACN8G,OACAkI,MAAO,oBAEXuS,SAAU,4BAK1BhjB,EAAQI,SAAS,kBAAmB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7DmQ,MAAOvQ,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,qBAC3DoG,WAAYrJ,EAAO8C,WAAW,CAC1BkjB,SAAUhmB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC5CwhB,YAAajmB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC/CyhB,SAAUlmB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC5C0hB,UAAWnmB,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,IAC7CxC,OAAQjC,EAAO0D,WAAW,CAAEc,KAAM,EAAGC,IAAK,OAE/C,CAAElB,QAAS,oBAAsB,CAChCC,QAAS,KAAM,CACXyP,MAAO,mBACP5J,WAAY,CACR2c,SAAU,EACVC,YAAa,EACbC,SAAU,EACVC,UAAW,EACXlkB,OAAQ,QAIpBO,EAAQI,SAAS,wBAAyB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACnEsjB,YAAapmB,EAAO0D,WAAW,CAAEC,SAAS,IAC1C0iB,WAAYrmB,EAAOyD,SAASzD,EAAO0D,eACpC,CAAEH,QAAS,0BAA4B,CACtCC,QAAS,KAAM,CACX4iB,aAAc,EACdC,WAAY,CAAC,EAAG,U,6BC1G5B1oB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqnB,8BAA2B,EACnC,MAAMpkB,EAAS,EAAQ,GACjBqS,EAAW,EAAQ,GAyBzBtV,EAAQqnB,yBAxBR,SAAkC5hB,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,kBAAmB6Z,cAAc,KAAW,CAC7GjV,QAAUC,GAASA,EAAKgJ,WAAWxI,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,MAChEgC,QAASzG,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,sBAAuB,uBAAwB,wBACvFjE,WAAY8B,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACjE,CAAEM,QAAS,mBAAqB,CAC/BC,QAAS,IAAM6O,EAASvS,0B,6BCzBhCnC,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ+gB,0BAAuB,EAC/B,MAAM9d,EAAS,EAAQ,GACjBwgB,EAAgB,EAAQ,IACxBnO,EAAW,EAAQ,GA+PzBtV,EAAQ+gB,qBA9PR,SAA8Btb,EAASC,GACnC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CyG,EAAa,CACfA,WAAYlJ,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,qBAE/C8d,EAAyB,CAC3BC,UAAW1gB,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,sBAC7CuG,GAEP,SAASyX,EAAkBC,EAAYC,EAAcC,GACjD,MAAMrZ,EAAQ,GACRsZ,EAAuBC,GAAoBve,EAC5C3E,IAAI+iB,GACJxQ,OAAOlS,IACR,IAAIkG,EAEJ,OADqD,QAA5BA,EAAKuc,EAAW9iB,IAAIK,UAAuB,IAAPkG,EAAgBA,EAAK,IAC3DoL,MAAMnS,GAAK0jB,EAAgBjF,SAASze,MAE/D,IAAK,MAAO2jB,GAAW,OAAElL,EAAM,SAAED,MAAe0K,EAAc5K,eAAgB,CAC1E,MAAMoL,EAAkB,IAAIjL,KAAWD,GACvCrO,EAAMnE,KAAK,CACPwB,MAAOgD,GAAQA,EAAKgU,WAAWhe,IAAI,IAAIkC,EAAOwO,KAAK,CAAC,YAAcyS,EAClE/c,KAAM4c,EAAQC,EAAoBC,MAI1C,OADAvZ,EAAMnE,KAAK,CAAEwB,MAAOgH,IAAK,EAAM5H,KAAM4c,EAAQD,KACtC7gB,EAAOuR,WAAW9J,GAE7B,MAAMyZ,EAAsBP,EAAkBH,EAAc/K,eAAgB,sBAAuBxR,GAAQvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,aAAgB0M,MAAQ1M,EAAO,0BACxLkd,EAAqBR,EAAkBH,EAAchL,cAAe,qBAAsBvR,GAAQvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,aAAgB0M,MAAQ1M,EAAO,yBACrLmd,EAAyBT,EAAkBH,EAAc7K,kBAAmB,gBAAiB1R,GAAQvB,EAAW,CAAEmC,KAAMZ,KACxHod,EAAuBV,EAAkBH,EAAc9K,gBAAiB,cAAezR,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,yBACrFwjB,MAAOthB,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3Dye,MAAOlP,EAAS3S,MAAM,CAAEkF,eAAe,EAAMjB,SAAS,IACtD6d,YAAaxhB,EAAOkD,IAAImP,EAAS3S,MAAM,CAAEiE,SAAS,KAClDiH,QAAS5K,EAAOyD,SAASd,EAAU,kBAChC8d,GACJ,CAAE9W,SAAU,OAAQpG,QAAS,cAAgB,CAC5CC,QAAS,KAAM,CACX+d,MAAO,EACP3W,QAAS,CAAC,CACF3G,KAAM,iBACNzG,KAAM,0BAItBkjB,UAAW1gB,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,oBACjD,CAAEY,QAAS,eAAiB,CAC3BC,QAAS,KAAM,CACX8d,MAAO,CAAC,CACAC,MAAO,EACP3W,QAAS,CAAC,CACF3G,KAAM,iBACNzG,KAAM,2BAK9B,MAAMikB,EAAY,CACd5Z,QAASC,IACL,IAAIzD,EACJ,OAAoC,QAA3BA,EAAKyD,EAAKyB,MAAMzL,aAA0B,IAAPuG,OAAgB,EAASA,EAAGiE,QAAU,IAC1E,CAAC,yBAA0B,kBAAmB,sBAAsByT,SAASjU,EAAKxE,KAAK,QAAQxF,SAG/G0E,EAAQI,SAAS,aAAc5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACxDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,0BAC1Dye,OAAQ1hB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAAMid,IAC5EE,QAAS3hB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS8d,IACrE,CAACzhB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,yBAA0B,CACtBsE,SAAUxM,EAAOyD,SAASd,EAAU,kBACjC8d,GAEP,oBAAqB,CACjBjjB,KAAMkF,OACH+d,GAEP,kBAAmB,CACfjU,SAAUxM,EAAOyD,SAASd,EAAU,kBACjC8d,GAEP,iBAAkB,CACdjjB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aACvDwd,GAEP,uBAAwB,CACpBjjB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,oBACvDwd,GAEP,qBAAsB,CAClBjU,SAAUxM,EAAOyD,SAASd,EAAU,kBACjC8d,GAEP,gBAAiB,CACbjjB,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC1D2e,OAAQ5hB,EAAOkD,IAAIlD,EAAO2F,kBACvB8a,KAGZ,CAAEld,QAAS,eAAiB,CAC3BC,QAAS,KAAM,CACXS,KAAM,iBACNzG,KAAM,uBAGdgF,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3Dic,SAAUoC,EACV,CAACnhB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,aAC1B,CAACtD,EAAOkI,MAAO,MACX,MAAMT,EAAQ,CACV,wBAAyB,CACrBxB,YAAavD,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACjEmG,QAAS1G,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMR,EAAY3E,IAAI,qCAC7EuL,WAAYrJ,EAAO6C,IAAI7C,EAAO8C,WAAW,CACrCwG,gBAAiBtJ,EAAO6C,IAAI7C,EAAO0D,aAAc,CAC7CmE,QAASC,GAA6C,kCAArCA,EAAKyB,MAAMjG,KAAK,WAAWxF,QAEhD0L,MAAOxJ,EAAO6C,IAAI7C,EAAO0D,aAAc,CACnCmE,QAASC,GAA6C,wCAArCA,EAAKyB,MAAMjG,KAAK,WAAWxF,QAEhD2L,YAAazJ,EAAO6C,IAAI7C,EAAO0D,aAAc,CACzCmE,QAASC,GAA6C,wCAArCA,EAAKyB,MAAMjG,KAAK,WAAWxF,UAEhD,CACA+J,QAASC,GAAuC,wBAA/BA,EAAKxE,KAAK,WAAWxF,SAG9C,sBAAuB,CACnB6K,OAAQ0Y,GAEZ,qBAAsB,CAClB1Y,OAAQ0Y,EACR3X,IAAK1J,EAAOyD,SAASzD,EAAO8C,WAAW,CACnC6F,OAAQjG,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAE2G,SAAU,CAAElM,OAAQ,cAAeqK,KAAM,CAAC,MAAO,MAAO,MAAO,CAAExE,KAAM,eAC7HvB,OAAQW,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAE2G,SAAU,oBAChEC,GAAIlH,EAAW,CAAEmC,KAAM,CAAC,UAAW,SAAU,YAC9C,CAAEtB,QAAS,oBAElB,uBAAwB,CACpB6B,MAAO1C,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAC3DoC,WAAYrF,EAAOyD,SAASf,EAAW,CAAEK,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,MAAO,CAAEC,KAAM,eAEhH,6BAA8B,CAC1BuG,aAAc7J,EAAOkD,IAAIlD,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,oBAEjG,gCAAiC,CAC7B6G,OAAQuI,EAAS3S,MAAM,CAAEkF,eAAe,IACxCmF,SAAU/J,EAAOkD,IAAIlD,EAAO2F,gBAEhC,4BAA6B,CACzBqE,YAAahK,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,iBAC3CoF,WAAYjK,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,oBAC1CqF,KAAMlK,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KAC9CwG,cAAenK,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KACvDyG,qBAAsBpK,EAAOkD,IAAIlD,EAAO2F,gBAE5C,6BAA8B,CAC1BJ,OAAQ6b,GAEZ,wBAAyB,CACrB/W,MAAOgI,EAAS3S,MAAM,CAAEiF,QAAQ,KAEpC,4BAA6B,CACzB2F,MAAO+H,EAAS3S,MAAM,CAAEiF,QAAQ,IAChC0F,MAAOrK,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,MAEnD,2BAA4B,CACxB4G,UAAWvK,EAAOyD,SAASd,EAAU,wBAEzC,yBAA0B,CACtBiI,QAAS5K,EAAOyD,SAASd,EAAU,gBAEvC,sBAAuB,CACnB2H,MAAO+H,EAAS3S,MAAM,CAAEkF,eAAe,KAE3C,uBAAwB,CACpBkG,OAAQuH,EAAS3S,MAAM,CAAEsE,YAAY,KAEzC,2BAA4B,CACxBxG,KAAMkF,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAC1D8H,KAAM/K,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,MAElD,qBAAsB,CAClB4B,OAAQvF,EAAOkD,IAAIke,GACnBpW,KAAMhL,EAAOyD,SAASd,EAAU,mBAChC0F,QAASrI,EAAOkD,IAAIlD,EAAO2F,gBAE/B,qBAAsB,CAClBJ,OAAQvF,EAAOkD,IAAIke,GACnB5jB,KAAMwC,EAAOkD,IAAIP,EAAU,oBAE/B,oBAAqB,CACjBsI,IAAKvI,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEkI,SAAU,CAAEvB,SAAU,sBAExE,4BAA6B,CACzBlD,QAASzG,EAAOkD,IAAIlD,EAAOyD,SAASzD,EAAO8C,WAAW,CAClDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAC1DkI,SAAUkH,EAAS3S,cAIzB0L,EAAM,GAIZ,OAHA3I,EAAY3E,IAAI,sBAAsB8J,QAAQyD,IAC1CD,EAAIC,GAAK,IAAK5D,EAAM4D,MAAOnC,KAExBkC,GAjGI,IAmGhB,CAAEzB,SAAU,WAAYpG,QAAS,aAAe,CAC/CC,QAAS,KAAM,CACXub,SAAU,sBACVzU,MAAO,OAGf9H,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC5Dyd,UAAWW,EACX,CAAClhB,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,cAC1B,CAACtD,EAAOkI,MAAO,IACRmK,EAAStS,eACZ,8BAA+B,CAC3BwF,OAAQ6b,EACR9b,UAAW3C,EAAU,qBAEzB,0BAA2B,CACvB4C,OAAQ6b,EACR5b,OAAQxF,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,cAAgBsP,EAAS3S,MAAM,CAAEiF,QAAQ,QAGjG,CAAEgF,SAAU,YAAapG,QAAS,cAAgB,CACjDC,QAAS,KAAM,CACX+c,UAAW,0BACXxa,OAAQ,QAGhBvD,EAAQI,SAAS,qBAAsB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAChE+e,UAAWnf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC/DzF,KAAMkF,IACN+F,OAAQ4J,EAAS3S,MAAM,CAAEiF,QAAQ,IACjCmd,UAAWpf,EAAW,CAAEmC,KAAM,CAAC,WAAY,gBAAiB,oBAC5Dkd,KAAM/hB,EAAOsa,aAAa5X,EAAW,CAAEmC,KAAM,WAC9C,CAAEtB,QAAS,uBAAyB,CACnCC,QAAS,KAAM,CACXqe,UAAW,+BACXrkB,KAAM,GACNiL,OAAQ,EACRqZ,UAAW,WACXC,KAAM,kB,6BC/PlBpkB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQghB,2BAAwB,EAChC,MAAM/d,EAAS,EAAQ,GAsBvBjD,EAAQghB,sBArBR,SAA+Bvb,EAASsJ,GAEpCtJ,EAAQI,SAAS,cAAe5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACzDkf,KAAMhiB,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC/Bmf,YAAajiB,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,IAAM,CAAEjB,QAAS,IAAM,IAC/F8a,YAAate,EAAO2C,UAAUH,EAAS,oBACvC,CACAgB,QAAS,KAAM,CACXye,YAAa,EACb3D,YAAa,SAGrB,CACA9a,QAAS,KAAM,CACXwe,KAAM,CACFC,YAAa,EACb3D,YAAa,W,6BCnB7B3gB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQoV,2BAAwB,EAChC,MAAMnS,EAAS,EAAQ,GACjBqS,EAAW,EAAQ,GA2KzBtV,EAAQoV,sBA1KR,SAA+B3P,EAASC,GACpC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C6P,EAActS,EAAO+D,WAAW,CAClC,CACIE,KAAM,SACNC,KAAMxB,IACNyB,OAAQC,GAAmB,kBAANA,GAAgC,iBAANA,EAAkBA,EAAE6M,WAAa,IAEpF,CACIhN,KAAM,SACNC,KAAMlE,EAAO0D,aACbS,OAAQC,GAAmB,iBAANA,EAAkB4M,SAAS5M,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,CACjDyP,KAAMvS,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WACrEgI,IAAKjL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBACpEqH,MAAOtK,EAAOkD,IAAImP,EAAS3S,SAC3B8S,WAAYxS,EAAOkD,IAAImP,EAAS3S,SAChC+S,OAAQzS,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aACvEyP,IAAK1S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEkI,SAAU,CAAEvB,SAAU,iBAAkBtG,GAAI,CAAC,MAAO,CAAEC,KAAM,cACrHuG,aAAc7J,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,kBAC5E6G,OAAQ9J,EAAOkD,IAAImP,EAAS3S,UAC7B,CAAE6D,QAAS,iBACdf,EAAQI,SAAS,kBAAmB5C,EAAO8C,WAAW,CAClDsC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEgI,IAAKjL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACpEyP,IAAK1S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEkI,SAAU,CAAEvB,SAAU,kBAAmBtG,GAAI,CAAC,MAAO,CAAEC,KAAM,eACtHqP,MAAO3S,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAc4P,EAAa,CAAElP,WAAY,CAAEL,UAAW,kBAAmBC,OAAQ,CAAEK,GAAI,CAAC,MAAO,CAAEC,KAAM,gBACzI,CAAEC,QAAS,WACdf,EAAQI,SAAS,kBAAmB5C,EAAO8C,WAAW,CAClD8P,MAAO5S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YACtEgI,IAAKjL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBACpE0P,MAAO3S,EAAOkD,IAAIlD,EAAOmD,QAAQT,IAAc4P,KAChD,CAAE/O,QAAS,WACdf,EAAQI,SAAS,qBAAsB5C,EAAO8C,WAAW,CACrD+P,SAAU7S,EAAOkD,IAAIlD,EAAO8C,WAAW,CACnCgQ,EAAG9S,EAAOkD,IAAImP,EAAS3S,SACvBqT,EAAG/S,EAAOkD,IAAImP,EAAS3S,SACvBsT,EAAGhT,EAAOkD,IAAImP,EAAS3S,YAE3BuT,MAAOjT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBACtEiQ,QAASlT,EAAOkD,IAAIR,EAAW,CAAEmC,KAAMpC,EAAY3E,IAAI,8BAA8B4R,IAAItL,GAAKA,EAAE4K,MAAM,QACtGmE,UAAWnT,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAC1EmQ,MAAOpT,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChCsQ,MAAOpT,EAAOkD,IAAImP,EAAS3S,MAAM,CAAEiE,SAAS,EAAMa,IAAK,EAAGC,IAAK,SAEnE6hB,OAAQtmB,EAAOkD,IAAIlD,EAAO2F,eAC1BP,MAAOpF,EAAOkD,IAAIP,EAAU,oBAC5BiQ,MAAO5S,EAAOkD,IAAIP,EAAU,qBAC7B,CAAEY,QAAS,cACdf,EAAQI,SAAS,sBAAuB5C,EAAO8C,WAAW,CACtDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eAC1DoQ,KAAM3Q,IACNxE,MAAOmU,EAAS3S,QAChB,CAACM,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,kBAAmB,CACfmL,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,YAE9D,oBAAqB,CACjBoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,iBAAkB,CACdoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,mBAAoB,CAChBoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,sBAAuB,CACnBoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,oBAAqB,CACjBoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WAE9D,mBAAoB,CAChBoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAE9D,sBAAuB,CACnBoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAE9D,mBAAoB,CAChBoQ,KAAM3Q,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,sBAItET,EAAQI,SAAS,mBAAoB5C,EAAO8C,WAAW,CACnDwQ,SAAUtT,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,cACxCtC,MAAOvC,EAAOkD,IAAImP,EAAS3S,SAC3B6T,aAAcvT,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBAAqBjD,EAAO+D,WAAW,CAC/H,CAAEE,KAAM,UAAWC,KAAMlE,EAAO2F,cAAexB,OAAQ2H,IAAK,GAC5D,CACI7H,KAAM,SAAUC,KAAMlE,EAAOmD,QAAQT,IAAc1C,EAAO2F,oBAGlE6N,QAASxT,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aAAgBjD,EAAO2F,gBAC9G8N,MAAOzT,EAAOkD,IAAIlD,EAAOyD,SAASd,EAAU,0BAC7C,CAAEY,QAAS,YACdf,EAAQI,SAAS,0BAA2B5C,EAAO8C,WAAW,CAC1D4Q,UAAW1T,EAAOkD,IAAImP,EAAS3S,SAC/ByL,SAAUnL,EAAOkD,IAAImP,EAAS3S,SAC9BiU,QAAS3T,EAAOkD,IAAIlD,EAAO2F,eAC3BiO,QAAS5T,EAAOkD,IAAIlD,EAAO2F,gBAC5B,CAAEpC,QAAS,mBACdf,EAAQI,SAAS,qBAAsB5C,EAAO8C,WAAW,CACrDgQ,EAAG9S,EAAOkD,IAAImP,EAAS3S,SACvBqT,EAAG/S,EAAOkD,IAAImP,EAAS3S,SACvBsT,EAAGhT,EAAOkD,IAAImP,EAAS3S,SACvBmU,SAAU7T,EAAOkD,IAAImP,EAAS3S,SAC9BoU,WAAY9T,EAAOkD,IAAImP,EAAS3S,UACjC,CAAE6D,QAAS,cACdf,EAAQI,SAAS,mBAAoB5C,EAAO8C,WAAW,CACnDmB,KAAMjE,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,cAAe8Q,UAAU,MAC9FrB,IAAK1S,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEkI,SAAU,CAAEvB,SAAU,mBAAoBtG,GAAI,CAAC,MAAO,CAAEC,KAAM,cACvH0Q,KAAMhU,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,UACzCkR,SAAUjU,EAAOkD,IAAIP,EAAU,uBAC/BuR,SAAUlU,EAAOkD,IAAIP,EAAU,uBAC/BwR,MAAOnU,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChCsR,WAAYpU,EAAOkD,IAAIlD,EAAO2F,eAC9B0O,YAAarU,EAAOkD,IAAIlD,EAAO2F,eAC/B2O,aAActU,EAAOkD,IAAIlD,EAAO2F,eAChC4O,YAAavU,EAAOkD,IAAIlD,EAAO2F,eAC/B6O,QAASxU,EAAOkD,IAAIlD,EAAO2F,kBAE/B8O,UAAWzU,EAAOkD,IAAIlD,EAAOmD,QAAQT,EAAW,CAAEmC,KAAM,SAAWlC,EAAU,oBAC7E4jB,QAASvmB,EAAOkD,IAAIP,EAAU,qBAC9B6jB,gBAAiBxmB,EAAOkD,IAAIP,EAAU,qBACtC+R,OAAQ1U,EAAOkD,IAAIP,EAAU,qBAC7B8jB,aAAczmB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACvC4jB,cAAe1mB,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,CAC1D6R,aAAc3U,EAAOkD,IAAIlD,EAAO2F,eAChCiP,QAAS5U,EAAOkD,IAAIlD,EAAO2F,eAC3BkP,SAAU7U,EAAOkD,IAAIlD,EAAO2F,eAC5BmP,cAAe9U,EAAOkD,IAAIlD,EAAO2F,eACjCoP,aAAc/U,EAAOkD,IAAIlD,EAAO2F,eAChCqP,eAAgBhV,EAAOkD,IAAIlD,EAAO2F,eAClCsP,yBAA0BjV,EAAOkD,IAAIlD,EAAO2F,eAC5CuP,eAAgBlV,EAAOkD,IAAIlD,EAAO2F,eAClCwP,cAAenV,EAAOkD,IAAIP,EAAU,qBACpCyS,cAAepV,EAAOkD,IAAIP,EAAU,sBACrC,CAAEY,QAAS,mBACdf,EAAQI,SAAS,mBAAoB5C,EAAO8C,WAAW,CACnDuS,MAAOrV,EAAOkD,IAAImP,EAAS3S,SAC3B4V,MAAOtV,EAAOkD,IAAImP,EAAS3S,SAC3B6V,QAASvV,EAAOkD,IAAIlD,EAAO2F,eAC3BwP,cAAenV,EAAOkD,IAAIP,EAAU,qBACpCsB,KAAMjE,EAAOkD,IAAIP,EAAU,6BAC5B,CAAEY,QAAS,c,6BC5KlB5F,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQihB,uBAAoB,EAC5B,MAAMhe,EAAS,EAAQ,GAmGvBjD,EAAQihB,kBAlGR,SAA2Bxb,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,CACzBga,MAAOliB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,eAAgBmY,YAAY,KACjEvS,QAASzK,EAAOyD,SAASf,KACzBlE,IAAKwB,EAAOmD,QAAQT,IACpBC,EAAU,sBACVoV,OAAQpV,EAAU,kBAEtB,+BAAgC,CAC5Buf,MAAOliB,EAAOkD,IAAIR,KAClByf,YAAaniB,EAAOyD,SAASd,EAAU,sBACvCoV,OAAQpV,EAAU,kBAEtB,qBAAsB,CAClBuf,MAAOliB,EAAOkD,IAAIR,KAClB0f,WAAYzf,EAAU,qBACtBoV,OAAQrV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5Dgc,WAAYjf,EAAOkD,IAAIlD,EAAO0D,cAC9B2e,YAAariB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,qBAAsB,CAClB0e,MAAOliB,EAAOkD,IAAIR,KAClB0f,WAAYzf,EAAU,qBACtBoV,OAAQrV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5Dgc,WAAYjf,EAAOkD,IAAIlD,EAAO0D,cAC9B2e,YAAariB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,oBAAqB,CACjB0e,MAAOliB,EAAOkD,IAAIR,KAClB0f,WAAYzf,EAAU,qBACtBoV,OAAQrV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5Dgc,WAAYjf,EAAOkD,IAAIlD,EAAO0D,cAC9B2e,YAAariB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,6BAA8B,CAC1B0e,MAAOliB,EAAOkD,IAAIR,KAClB0f,WAAYzf,EAAU,qBACtBoV,OAAQrV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5Dgc,WAAYjf,EAAOkD,IAAIlD,EAAO0D,cAC9B2e,YAAariB,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,QAE9F,yBAA0B,CACtB0e,MAAOliB,EAAOkD,IAAIR,KAClB0f,WAAYzf,EAAU,qBACtBoV,OAAQrV,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC5DqH,MAAOtK,EAAO0D,WAAW,CAAEC,SAAS,KAExC,qBAAsB,CAClBue,MAAOliB,EAAOkD,IAAIR,KAClBsC,KAAMrC,EAAU,4BAChB2f,SAAU3f,EAAU,4BACpBoV,OAAQpV,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,CACX+O,KAAM,uBAGd/P,EAAQI,SAAS,2BAA4B5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACtEyP,KAAMvS,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,WACrEgI,IAAKjL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kBACpE,CACAO,QAAS,KAAM,CACX+O,KAAM,uBAGd/P,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3DyP,KAAM7P,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UAC1DqH,MAAOtK,EAAOkD,IAAIlD,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,IAAS,CAAEH,QAAS,IAAM,OACpF,CACAA,QAAS,KAAM,CACX+O,KAAM,yB,6BCjGlB5U,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQkhB,qBAAkB,EAC1B,MAAMje,EAAS,EAAQ,GA+BvBjD,EAAQkhB,gBA9BR,SAAyBzb,EAASC,GAC9B,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C8f,EAAWte,GAASjE,EAAO6C,IAAI7C,EAAO8C,WAAW,CACnDuF,QAASrI,EAAOkD,IAAIlD,EAAO2F,eAC3BsX,OAAQjd,EAAOyD,SAASzD,EAAO+D,WAAW,CACtC,CACIE,KAAM,SACNC,KAAMxB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,EAAM8P,UAAU,KAC1E5P,OAAQC,GAAKA,EAAEf,IAEnB,CACIY,KAAM,SACNC,KAAMlE,EAAO8C,WAAW,CACpBO,GAAIX,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAMgB,EAAM8P,UAAU,EAAMgJ,cAAc,KAC5FyF,SAAUxiB,EAAO2F,gBAErBxB,OAAQC,IAAK,CAAGf,GAAIe,SAG7B,CAAEb,QAAS,QAAU,CACpBC,QAAS,KAAM,CACXyZ,OAAQ,OAGhBza,EAAQI,SAAS,YAAa2f,EAAQ,UACtC/f,EAAQI,SAAS,kBAAmB2f,EAAQ,gBAC5C/f,EAAQI,SAAS,YAAa2f,EAAQ,UACtC/f,EAAQI,SAAS,eAAgB2f,EAAQ,cACzC/f,EAAQI,SAAS,WAAY2f,EAAQ,W,6BC/BzC5kB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQmhB,8BAA2B,EACnC,MAAMle,EAAS,EAAQ,GA6LvBjD,EAAQmhB,yBA5LR,SAAkC1b,EAASC,GACvC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CggB,EAAmBre,IAAQ,IAAIC,EAAI,OAAOD,aAAauM,MAAQ8R,EAAgBre,EAAE,IAA8D,QAAvDC,EAAKD,aAA6B,EAASA,EAAEse,YAAyB,IAAPre,EAAgBA,EAAmB,iBAAND,EAAiB,GAAKA,aAA6B,EAASA,EAAE6M,YACxPzO,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CAC5D,CACIE,KAAM,SACNC,KAAMvB,EAAU,yBAChBwB,OAAQC,GAAKA,aAAauM,MAAyB,iBAATvM,EAAE,GAAkBA,EAAE,GAAK,CAAEse,KAAMD,EAAgBre,EAAE,KAAsB,iBAANA,EAAiBA,EAAI,CAAEse,KAAMD,EAAgBre,KAEhK,CACIH,KAAM,OACNC,KAAMvB,EAAU,uBAChBwB,OAAQC,GAAK,CAACA,IAElB,CACIH,KAAM,SACNS,SAAU,EACVR,KAAMxB,IACNyB,OAAQse,GAEZ,CACIxe,KAAM,SACNC,KAAMlE,EAAO0D,aACbS,OAAQC,IACJ,MAAM1F,EAAIikB,WAAWF,EAAgBre,IACrC,OAAOwe,SAASlkB,GAAKA,EAAO0F,EAAI,EAAI,IAG5C,CACIH,KAAM,UACNC,KAAMlE,EAAO2F,cACbxB,OAAQC,IACJ,MAAMpF,EAAIyjB,EAAgBre,GAC1B,MAAa,SAANpF,GAAsB,UAANA,EAAsB,SAANA,IAAiBA,KAGjE,CAAEuE,QAAS,mBAAqB,CAC/BC,QAAS,KAAM,CACXkf,KAAM,QAGd,MAAMG,EAAe,CACjBnY,MAAO1K,EAAOkD,IAAIR,KAClBikB,KAAM3mB,EAAOkD,IAAIR,KACjBogB,KAAM9iB,EAAOkD,IAAIlD,EAAO2F,eACxBod,OAAQ/iB,EAAOkD,IAAIlD,EAAO2F,eAC1Bqd,WAAYhjB,EAAOkD,IAAIlD,EAAO2F,eAC9Bsd,cAAejjB,EAAOkD,IAAIlD,EAAO2F,eACjCud,WAAYljB,EAAOkD,IAAIlD,EAAO2F,eAC9Bwd,UAAWnjB,EAAOkD,IAAIR,KACtB0gB,WAAYpjB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCugB,OAAQ3gB,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,CAAEsgB,cAAc,EAAMC,cAAc,MAE1F,gBAAmB,CACfrlB,MAAOwE,EAAW,CAAEK,UAAW,UAAWC,OAAQ,CAAEsgB,cAAc,EAAMC,cAAc,UAIlGC,WAAYxjB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCugB,OAAQ3gB,EAAW,CAAEmC,KAAM,CAAC,YAAa,YAAa,iBACtD,CAAC7E,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,WAC1B,CAACtD,EAAOkI,MAAO,CACX,UAAa,CACThK,MAAO8B,EAAOkD,IAAIP,EAAU,mBAC5BikB,SAAU5mB,EAAOkD,IAAIP,EAAU,oBAEnC,UAAa,CACTzE,MAAO8B,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEhG,OAAQ,0BACnE4pB,SAAU5mB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACnCO,GAAIX,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,UACxDqH,MAAOtK,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,KAC/CsH,IAAKjL,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,MAAOC,OAAQ,CAAEkI,SAAU,CAAEvB,SAAU,iBAAkBtG,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,QAEnBkkB,SAAU5mB,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,iDAMxBmG,MAAOxJ,EAAOkD,IAAIP,EAAU,yBAEhCH,EAAQI,SAAS,wBAAyB5C,EAAO6C,IAAI7C,EAAO+D,WAAW,CACnE,CACIE,KAAM,OACNa,MAAOV,GAAkB,iBAANA,EACnBD,OAAQC,IAAK,CAAGse,KAAM,KACtBhe,UAAW,EACXR,KAAMlE,EAAO8C,WAAW,CACpB4f,KAAMhgB,OACHmgB,KAGX,CACI5e,KAAM,cACNa,MAAOV,QAA6D/E,KAAvD+E,aAA6B,EAASA,EAAEqf,WACrDtf,OAAQC,IAAK,CAAGqf,UAAW,KAC3Bvf,KAAMlE,EAAO8C,WAAW,CACpB2gB,UAAW/gB,IACXghB,KAAM1jB,EAAOkD,IAAIP,EAAU,2BACxBkgB,KAGX,CACI5e,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,KACrGib,UAAWjhB,EAAW,CAAEK,UAAW,cACnC7E,MAAO8B,EAAOkD,IAAIR,UAEnBmgB,KAGX,CACI5e,KAAM,WACNa,MAAOV,QAA4D/E,KAAtD+E,aAA6B,EAASA,EAAEwf,UACrDzf,OAAQC,IAAK,CAAGwf,SAAU,KAC1B1f,KAAMlE,EAAO8C,WAAW,CACpB8gB,SAAUlhB,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,WAAYxE,KAAM,iBAC7E4e,KAGX,CACI5e,KAAM,UACNa,MAAOV,QAA2D/E,KAArD+E,aAA6B,EAASA,EAAEyf,SACrD1f,OAAQC,IAAK,CAAGyf,QAAS,KACzB3f,KAAMlE,EAAO8C,WAAW,CACpB+gB,QAASnhB,EAAW,CAAEmC,KAAM,UAAWmY,YAAY,OAChD6F,KAGX,CACI5e,KAAM,MACNa,MAAOV,QAAuD/E,KAAjD+E,aAA6B,EAASA,EAAEsO,KACrDvO,OAAQC,IAAK,CAAGsO,IAAK,KACrBxO,KAAMlE,EAAO8C,WAAW,CACpB4P,IAAKhQ,EAAW,CAAEK,UAAW,aAC7BqC,MAAOpF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEmQ,UAAW,EAAG+H,WAAW,MACvF3V,OAAQvF,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,SAAUC,OAAQ,CAAEyF,OAAQ,SAAUxE,KAAM,eACvF6f,QAAS9jB,EAAOkD,IAAIR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,eACxE8gB,UAAW/jB,EAAOkD,IAAIlD,EAAO2F,kBAC1Bkd,MAGZ,CAAEtf,QAAS,wBAAyBwB,cAAe,0BAA4B,CAC9EvB,QAAS,KAAM,CACXkf,KAAM,QAGdlgB,EAAQI,SAAS,sBAAuB5C,EAAO6C,IAAI7C,EAAOyD,SAASd,EAAU,mBAAoB,CAC7Fa,QAAS,IAAM,CAAC,CACRkf,KAAM,U,6BC3LtB/kB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQunB,yBAAsB,EAC9B,MAAMuC,EAAU,EAAQ,IAClBC,EAAW,EAAQ,IACnBC,EAAc,EAAQ,IACtBC,EAAY,EAAQ,IACpBC,EAAkB,EAAQ,IAC1BC,EAAkB,EAAQ,IAC1BC,EAAqB,EAAQ,IAC7BC,EAAmB,EAAQ,IAC3BC,EAAiB,EAAQ,IAY/BtqB,EAAQunB,oBAXR,SAA6B9hB,EAASC,GAClCokB,EAAQS,iBAAiB9kB,EAASC,GAClCqkB,EAASS,kBAAkB/kB,EAASC,GACpCskB,EAAY/Q,qBAAqBxT,EAASC,GAC1CukB,EAAUQ,mBAAmBhlB,EAASC,GACtCwkB,EAAgBQ,yBAAyBjlB,EAASC,GAClDykB,EAAgBxa,yBAAyBlK,EAASC,GAClD0kB,EAAmBO,4BAA4BllB,EAASC,GACxD2kB,EAAiBO,0BAA0BnlB,EAASC,GACpD4kB,EAAeO,wBAAwBplB,EAASC,K,6BCpBpD9E,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQuqB,sBAAmB,EAC3B,MAAMtnB,EAAS,EAAQ,GAiGvBjD,EAAQuqB,iBAhGR,SAA0B9kB,EAASC,GAC/B,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,QAAS5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACnD+kB,gBAAiBnlB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,0CACrE6kB,MAAO9nB,EAAO0D,aACd8E,MAAOxI,EAAO0D,aACduiB,YAAajmB,EAAO0D,aACpBqkB,SAAU/nB,EAAO0D,aACjBskB,cAAetlB,EAAW,CAAEmC,KAAM,CAAC,OAAQ,OAAQ,UACnDojB,qBAAsBjoB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,OAAQ,aAC7D8E,SAAUjH,EAAW,CAAEmC,KAAM,mBAC7BqjB,sBAAuBloB,EAAOkD,IAAIlD,EAAO2F,eACzCwiB,2BAA4BnoB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KACxEgC,QAASzG,EAAO8C,WAAW,CACvBslB,UAAWpoB,EAAO0D,WAAW,CAAEgH,OAAO,IACtC2d,UAAWroB,EAAO0D,WAAW,CAAEgH,OAAO,IACtC4d,YAAatoB,EAAO0D,WAAW,CAAEgH,OAAO,IACxC6d,gBAAiBvoB,EAAO0D,WAAW,CAAEgH,OAAO,IAC5C8d,YAAaxoB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEgH,OAAO,KACnD+d,cAAezoB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEgH,OAAO,KACrDge,qBAAsB1oB,EAAOkD,IAAIR,EAAW,CAAEmC,KAAM,CAAC,OAAQ,cAAe,YAC5E8jB,cAAe3oB,EAAOkD,IAAIR,KAC1BkmB,WAAY5oB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrC+lB,MAAOnmB,IACPomB,WAAY9oB,EAAO0D,WAAW,CAAEC,SAAS,IACzColB,oBAAqB/oB,EAAO0D,WAAW,CAAEC,SAAS,IAClD1B,OAAQjC,EAAO0D,gBAEnBslB,gBAAiBhpB,EAAOkD,IAAIlD,EAAO8C,WAAW,CAC1C+lB,MAAOnmB,IACPumB,YAAajpB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,OAElDykB,MAAOlpB,EAAOkD,IAAIlD,EAAO8C,WAAW,CAChC+lB,MAAOnmB,IACPymB,UAAWnpB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IACnD4kB,UAAWppB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IACnD6kB,sBAAuBrpB,EAAO2F,iBAElC2jB,SAAUtpB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACnCoO,QAASlR,EAAO8C,WAAW,CACvBmB,KAAMvB,MAEV+G,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,SAGtD8kB,OAAQvpB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,6CAC5EumB,SAAUxpB,EAAOmD,QAAQT,EAAW,CAAEmC,KAAM,CACpC,gBACA,UACA,OACA,iBACA,WACA,aACE7E,EAAO6C,IAAI7C,EAAOyD,SAASzD,EAAO8C,WAAW,CACnDmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAC1Dye,OAAQ1hB,EAAO0D,WAAW,CAAEC,SAAS,IACrC8lB,SAAUzpB,EAAO0D,WAAW,CAAEC,SAAS,IACvC+lB,SAAU1pB,EAAO0D,WAAW,CAAEC,SAAS,OACtC,CACDgG,SAAU,IAAM,OAChBnG,QAAS,IAAM,CAAC,CACRS,KAAM,gBACNyd,OAAQ,OAGpBiI,YAAa3pB,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,iBAAoBjD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC7H8mB,cAAe5pB,EAAO0D,aACtBmmB,OAAQ7pB,EAAO0D,cAChB,CAAEiG,SAAU,aAAe,CAC1BnG,QAAS,KAAM,CACXomB,cAAe,IACfC,OAAQ,OAGhBC,QAAS9pB,EAAOmD,QAAQT,EAAW,CAAEmC,KAAM,CAAC,MAAO,YAAc7E,EAAO6C,IAAI7C,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kCAAqC,CACjLO,QAAS,IAAM,CAAC,qBAEpBkiB,SAAU1lB,EAAOyD,SAASzD,EAAO6C,IAAI7C,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mCAAsC,CAAE0G,SAAU,IAAM,cAAgB,CAAE9F,UAAW,MAC/L,CAAEN,QAAS,UAAY,CACtBC,QAAS,KAAM,CACXqkB,gBAAiB,kBACjBC,MAAO,KACPtf,MAAO,IACPyd,YAAa,GACb8B,SAAU,GACVC,cAAe,OACfre,SAAU,SACVlD,QAAS,CACL2hB,UAAW,QACXC,UAAW,SACXC,YAAa,QACbC,gBAAiB,e,6BC9FjC5qB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQwqB,uBAAoB,EAC5B,MAAMvnB,EAAS,EAAQ,GAiBvBjD,EAAQwqB,kBAhBR,SAA2B/kB,EAASC,GAChC,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,oBAAqB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC/DmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,qBAC1Da,OAAQ9D,EAAO8C,WAAW,CACtB2G,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,OAEnD,CAAElB,QAAS,WAAa,CACvBC,QAAS,KAAM,CACXS,KAAM,iBACNH,OAAQ,CACJ2F,YAAa,W,6BCd7B9L,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQyqB,wBAAqB,EAC7B,MAAMxnB,EAAS,EAAQ,GACjBqS,EAAW,EAAQ,GACzB,EAAQ,IACR,EAAQ,IA4TRtV,EAAQyqB,mBA3TR,SAA4BhlB,EAASC,GACjC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CsnB,EAAoB,CACtBC,YAAahqB,EAAO2F,cACpBskB,QAASjqB,EAAO2F,cAChBukB,WAAYlqB,EAAO2F,cACnBwkB,QAASnqB,EAAO0D,WAAW,CAAEC,SAAS,IACtCymB,QAASpqB,EAAO0D,WAAW,CAAEC,SAAS,IACtC0mB,QAASrqB,EAAO0D,WAAW,CAAEC,SAAS,IACtC2mB,MAAOtqB,EAAO0D,WAAW,CAAEC,SAAS,IACpC4mB,eAAgB5nB,EAAU,wBAC1B6nB,aAAc7nB,EAAU,gBACxB8nB,UAAWzqB,EAAOyD,SAASd,EAAU,gBACrC+nB,UAAW1qB,EAAOyD,SAASd,EAAU,iBAEnCgoB,EAAa,CACfhY,MAAOhQ,EAAU,eACjBioB,OAAQvY,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,EAAGS,UAAW,IACzD2lB,YAAa7qB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,IAC7DqmB,QAAS9qB,EAAOyD,SAASd,EAAU,iBAEjCooB,EAAqB,CACvBC,aAAcroB,EAAU,wBACxBsoB,cAAetoB,EAAU,wBACzBuoB,eAAgBlrB,EAAO0D,WAAW,CAAEC,SAAS,KAE3CwnB,EAAY,CACdxY,MAAOhQ,EAAU,eACjBX,KAAMhC,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KACtD1C,OAAQY,EAAU,cAEhB2T,EAAc,CAChBhM,MAAO+H,EAAS5S,WAAW,CAAE+E,KAAM,GAAIC,IAAK,IAAKS,UAAW,OAE1DkmB,EAAUprB,EAAO+D,WAAW,CAC9B,CACIE,KAAM,SACNC,KAAMxB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,mCAE9D,CACIgB,KAAM,SACNC,KAAMvB,EAAU,wBAErB,CAAEoC,cAAe,YACpBvC,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,CAChBuB,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,2BAA4B,CACxB4mB,MAAOhZ,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,EAAGS,UAAW,IACxD1D,OAAQ6Q,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,EAAGS,UAAW,KAE7D,uBAAwB,CACpBqlB,eAAgB5nB,EAAU,yBAE9B,sBAAuB,CACnB2oB,UAAW3oB,EAAU,wBACrBuQ,QAASkY,GAEb,6BAA8B,CAC1BE,UAAW3oB,EAAU,wBACrBuQ,QAASkY,GAEb,0BAA2B,CACvBxE,SAAUjkB,EAAU,eACpB4oB,IAAK5oB,EAAU,eACfX,KAAMqQ,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,EAAGS,UAAW,IACvDsmB,SAAUnZ,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,EAAGS,UAAW,KAE/D,iBAAkBylB,EAClB,wBAAyB,CACrBhY,MAAOhQ,EAAU,eACjBZ,OAAQY,EAAU,gBAEtB,wBAAyB,CACrByN,MAAOpQ,EAAO2F,cACd8lB,KAAM9oB,EAAU,cAEpB,sBAAuB,CACnB+oB,qBAAsB1rB,EAAO2F,cAC7BgmB,oBAAqBhpB,EAAU,aAC/BipB,OAAQ5rB,EAAOyD,SAASzD,EAAO8C,WAAW,CACtC+oB,QAAS7rB,EAAO0D,WAAW,CAAEC,SAAS,IACtCmoB,QAAS9rB,EAAO0D,WAAW,CAAEC,SAAS,IACtCinB,OAAQ5qB,EAAO0D,WAAW,CAAEC,SAAS,IACrCnC,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,IACrCooB,QAAS/rB,EAAO2F,kBAGxB,uBAAwB,CACpBgN,MAAOhQ,EAAU,eACjBnB,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAE5D,mBAAoBslB,EACpB,wBAAyB,CACrBpX,MAAOhQ,EAAU,gBAErB,gCAAiCooB,EACjC,wBAAyB,CACrBiB,UAAWrpB,EAAU,eACrBspB,YAAatpB,EAAU,eACvBupB,WAAYvpB,EAAU,eACtBwpB,iBAAkBxpB,EAAU,eAC5BypB,QAASpsB,EAAO2F,eAEpB,8BAA+BolB,EAC/B,sBAAuBJ,EACvB,oBAAqB,CACjBhY,MAAOhQ,EAAU,gBAErB,iBAAkB,CACdgQ,MAAOhQ,EAAU,gBAErB,qCAAsC,CAClC4nB,eAAgB5nB,EAAU,yBAE9B,qCAAsC,CAClCgQ,MAAOhQ,EAAU,eACjBZ,OAAQY,EAAU,eAClBioB,OAAQvY,EAAS5S,cAErB,2BAA4B0rB,EAC5B,gBAAiBA,EACjB,yBAA0BpB,EAC1B,oCAAqC,CACjCsC,cAAejB,EACfkB,aAAclB,GAElB,4BAA6B,CACzB1F,SAAU1lB,EAAOyD,SAASzD,EAAO8C,WAAW,CACxCiD,OAAQ/F,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACzCyO,QAASkY,KAEb5nB,QAAS4nB,GAEb,uBAAwB9U,EACxB,qBAAsB,CAClB7M,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,yBAA0B,CACtB8nB,SAAU5pB,EAAU,eACpB6pB,SAAUxsB,EAAOyD,SAASd,EAAU,gBACpC8pB,SAAUzsB,EAAOyD,SAASd,EAAU,gBACpC+pB,YAAa1sB,EAAOyD,SAASd,EAAU,iBAE3C,mCAAoC,CAChC+iB,SAAU1lB,EAAOyD,SAAS2nB,IAE9B,2BAA4B,CACxBzY,MAAOhQ,EAAU,eACjBgqB,WAAY3sB,EAAO0D,WAAW,CAAEC,SAAS,IACzCipB,WAAY5sB,EAAO0D,WAAW,CAAEC,SAAS,IACzCkpB,qBAAsB7sB,EAAO2F,cAC7BmnB,aAAc9sB,EAAOyD,SAASf,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,aAEtF,iBAAkB,CACd0U,gBAAiB3X,EAAO0D,WAAW,CAAEC,SAAS,IAC9CopB,aAAc/sB,EAAO2F,cACrB0H,UAAW3K,EAAW,CAAEmC,KAAM,mBAC9BmoB,aAAcrqB,EAAU,gBACxBsqB,eAAgBtqB,EAAU,wBAC1BuqB,gBAAiBvqB,EAAU,wBAC3BwqB,aAAcntB,EAAO8C,WAAW,CAC5BmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAC1DmqB,YAAaptB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC7D4oB,cAAertB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,KAC/D6oB,cAAettB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAChE,CAAElB,QAAS,iBACdgqB,eAAgBvtB,EAAO8C,WAAW,CAC9BmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kCAC1D2nB,OAAQvY,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,EAAGS,UAAW,IACzDjD,OAAQoQ,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,EAAGS,UAAW,IACzD,CAAClF,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,CAClC+oB,aAAcnb,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,GAAIS,UAAW,KAEpE,gCAAiC,CAC7B1D,OAAQ6Q,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,GAAIS,UAAW,KAE9D,kCAAmC,CAC/BuoB,aAAcpb,EAAS5S,WAAW,CAAE+E,IAAK,EAAGC,IAAK,GAAIS,UAAW,OAGzE,CAAE3B,QAAS,iBAAkB4E,sBAAsB,IACtDulB,WAAY1tB,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,CACjB8G,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,kBAAmB,CACfgF,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,OAGvD,CAAElB,QAAS,uBAGvB,CAAEA,QAAS,aACf,CAAEA,QAAS,YAAc,CACxBC,QAAS,KAAM,CACXS,KAAM,sBACNH,OAAQ,CACJwnB,UAAW,CACPrnB,KAAM,kBACNH,OAAQ,CACJwG,MAAO,IAGf4I,QAAS,CACLjP,KAAM,iBACNH,OAAQ,CACJ6T,gBAAiB,EACjBoV,cAAc,EACdC,aAAc,GACdG,aAAc,CACVC,YAAa,EACbC,cAAe,EACfC,cAAe,GAEnBC,eAAgB,CACZ3C,OAAQ,EACR3oB,OAAQ,EACRT,OAAQ,WAOhCgB,EAAQI,SAAS,eAAgB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC1DmB,KAAMvB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAC1D0qB,mBAAoB3tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,MAChE,CAACzE,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,SAC1B,CAACtD,EAAOkI,MAAO,CACX,oCAAqC,CACjCmC,MAAOrK,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAClEmpB,WAAY5tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACvEopB,WAAY7tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAE3E,sCAAuC,CACnC4F,MAAOrK,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MAClEqpB,YAAa9tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACxEmpB,WAAY5tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACvEspB,YAAa/tB,EAAOkD,IAAIlD,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,MACxEopB,WAAY7tB,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,mCAAoC,CAChCyK,MAAOhQ,EAAU,gBAErB,kCAAmC,CAC/BgQ,MAAOhQ,EAAU,gBAErB,oCAAqC,CACjCiI,QAAS5K,EAAOyD,SAASzD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAClD4e,OAAQ1hB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAChDqU,KAAMlW,EAAU,iBAChB,CACAa,QAAS,KAAM,CACXqV,KAAM,WAKvB,CAAEtV,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,CACvB8lB,SAAUhuB,EAAO0D,WAAW,CAAEC,SAAS,IACvCsqB,WAAYjuB,EAAO0D,WAAW,CAAEC,SAAS,OAGlD,CAAEJ,QAAS,iBAAmB,CAC7BC,QAAS,KAAM,CACXS,KAAM,uC,6BC7TlBtG,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ0qB,8BAA2B,EACnC,MAAMznB,EAAS,EAAQ,GACjBqS,EAAW,EAAQ,GAgFzBtV,EAAQ0qB,yBA/ER,SAAkCjlB,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,2BAA4B6Z,cAAc,KAAW,CACtHjV,QAAUC,GAASA,EAAKgJ,WAAWxI,OAAS,IAEhDzH,sBAAuBb,EAAO0D,WAAW,CAAEC,SAAS,IACpD7C,uBAAwBd,EAAO0D,WAAW,CAAEC,SAAS,IACrD5C,UAAWf,EAAO0D,WAAW,CAAEC,SAAS,IACxC3C,uBAAwBhB,EAAO2F,cAC/BxD,cAAeQ,EAAU,eACzBN,cAAeM,EAAU,eACzB1B,MAAOjB,EAAO8C,WAAW,CACrBtB,OAAQxB,EAAO0D,WAAW,CAAEC,SAAS,IACrCzC,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,IACnC1B,OAAQjC,EAAO0D,WAAW,CAAEC,SAAS,MAEzC7B,UAAW9B,EAAO8C,WAAW,CACzBf,OAAQ/B,EAAO0D,WAAW,CAAEC,SAAS,IACrC3B,KAAMhC,EAAO0D,WAAW,CAAEC,SAAS,IACnC1B,OAAQjC,EAAO0D,WAAW,CAAEC,SAAS,QAG7CiiB,WAAYjjB,EAAU,yBACvB,CAAEY,QAAS,mBAAqB,CAC/BC,QAAS,IAAM6O,EAASzS,wBAE5B4C,EAAQI,SAAS,uBAAwB5C,EAAO8C,WAAW,CACvDorB,WAAYluB,EAAOkD,IAAIlD,EAAO8C,WAAW,CACrCoR,SAAUlU,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAC1DQ,OAAQjF,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OACxD6F,MAAOtK,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,UAE3DmhB,WAAY5lB,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gCAAmCjD,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3IqrB,QAASnuB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OACzD2pB,WAAYpuB,EAAO6C,IAAI7C,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,EAAGC,IAAK,OAAUP,IAAS,CACtF2H,SAAU,CAAC/D,EAAM5J,EAAOgS,EAAQgB,KACxBpJ,EAAKyB,MAAMjG,KAAK,WAAWxF,OAASI,GACpCgS,EAAOrF,IAAI/C,EAAM,oCAEd5D,EAAK2H,SAAS/D,EAAM5J,EAAOgS,EAAQgB,OAGlDmd,KAAMruB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,KAC/C,CAAEjB,QAAS,wBAA0B,CACpCC,QAAS,KAAM,CACX2qB,QAAS,GACTC,WAAY,EACZC,KAAM,UAIlB7rB,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,6BC/EpB7D,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ2qB,iCAA8B,EACtC,MAAM1nB,EAAS,EAAQ,GA6CvBjD,EAAQ2qB,4BA5CR,SAAqCllB,EAASC,GAC1C,MAAMC,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/C6rB,EAAqB,CACvBC,WAAY7rB,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,4BAA6BomB,EAC7B,4BAA6B,CACzB7kB,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,sBAAuB,CACnBR,KAAMvB,EAAW,CAAEmC,KAAM,CAAC,SAAU,UACpC4E,YAAazJ,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAElD,uBAAwB,CACpB+pB,WAAY9rB,EAAW,CAAEmC,KAAM,CAAC,OAAQ,UACxC4pB,kBAAmBzuB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,IACpDiqB,oBAAqB1uB,EAAO0D,WAAW,CAAEc,IAAK,EAAGC,IAAK,KAE1D,6BAA8B6pB,EAC9B,0BAA2B,CACvBK,YAAajsB,EAAW,CAAEmC,KAAM,CAAC,WAAY,SAAU,SAAU,WAAY,SAAU,QAAS,YAEpG,sBAAuB,CACnB+pB,WAAY5uB,EAAO2F,eAEvB,oBAAqB2oB,IAE1B,CAAE/qB,QAAS,oBAAqB4E,sBAAsB,KAC1D,CAAE5E,QAAS,sBAAwB,CAClCC,QAAS,KAAM,CACXS,KAAM,4BACNH,OAAQ,CACJyqB,WAAY,2BACZvsB,KAAM,U,6BC1CtBrE,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ4qB,+BAA4B,EACpC,MAAM3nB,EAAS,EAAQ,GA+BvBjD,EAAQ4qB,0BA9BR,SAAmCnlB,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,CACtB+rB,aAAclsB,EAAU,eACxBmsB,eAAgBnsB,EAAU,eAC1BosB,oBAAqBpsB,EAAU,gBAChC,CAAEY,QAAS,qBACf,CAAEA,QAAS,oBAAsB,CAChCC,QAAS,KAAM,CACXS,KAAM,oBACNH,OAAQ,CACJ+qB,aAAc,CACVzsB,KAAM,wBACNE,WAAY,CACR0sB,MAAO,UAGfF,eAAgB,CACZ1sB,KAAM,kBAEV2sB,oBAAqB,CACjB3sB,KAAM,4B,6BC3B1BzE,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQ6qB,6BAA0B,EAClC,MAAM5nB,EAAS,EAAQ,GACvB,EAAQ,IAiFRjD,EAAQ6qB,wBAhFR,SAAiCplB,EAASC,GACtC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GAC/CkK,EAAa3M,EAAO+D,WAAW,CACjC,CACIE,KAAM,SACNC,KAAMxB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,8BAC1DkB,OAAQC,OAEZ,CACIH,KAAM,SACNC,KAAMvB,EAAU,kBAChBwB,OAAQC,IAAK,CACTwI,WAAY,CAAC,CACL,eAAkB,uBAKtCpK,EAAQI,SAAS,gBAAiB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC3DtF,KAAMkF,IACNgP,SAAUhP,IACVusB,SAAUjvB,EAAOyD,SAASd,EAAU,+BACrC,CAAEY,QAAS,kBAAoB,CAC9BC,QAAS,KAAM,CACXkO,SAAU,kBACVud,SAAU,CACN,CACIvN,OAAQ,EACRzS,QAAS,CACLigB,aAAc,gCACdC,WAAY,QACZviB,WAAY,0BAMhCpK,EAAQI,SAAS,4BAA6B5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CACvE4e,OAAQ1hB,EAAO0D,WAAW,CAAEC,SAAS,EAAMa,IAAK,IAChDyK,QAAStM,EAAU,qBACpB,CAAEgH,SAAU,SAAW,CACtBnG,QAAS,KAAM,CACXke,OAAQ,EACRzS,QAAS,CACLigB,aAAc,gCACdC,WAAY,QACZviB,WAAY,wBAIxBpK,EAAQI,SAAS,mBAAoB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC9DosB,aAAcxsB,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,qCAClEksB,WAAYzsB,EAAW,CAAEmC,KAAM,CAAC,QAAS,sBACzC,CAAC7E,EAAOiI,QAAS,CAAC,CAAE3E,KAAM,iBAC1B,CAACtD,EAAOkI,MAAO,CACX,iCAAkC,CAC9BgL,QAASxQ,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,kCAC7D2J,WAAYD,GAEhB,uCAAwC,CACpCsH,SAAUvR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAC9D2J,WAAYD,GAEhB,8BAA+B,CAC3BsiB,SAAUjvB,EAAOyD,SAASd,EAAU,sBAExC,gCAAiC,CAC7BsR,SAAUvR,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAC9D2J,WAAYD,KAGrB,CAAEpJ,QAAS,mBAAoB4E,sBAAsB,IAAS,CAC7D3E,QAAS,KAAM,CACX0rB,aAAc,gCACdC,WAAY,QACZviB,WAAY,yB,6BChFxBjP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQwnB,8BAA2B,EACnC,MAAMvkB,EAAS,EAAQ,GAgGvBjD,EAAQwnB,yBA/FR,SAAkC/hB,EAASC,GACvC,MAAME,EAAY3C,EAAO2C,UAAUlE,UAAKY,EAAWmD,GAC7CE,EAAa1C,EAAO0C,WAAWjE,UAAKY,EAAWoD,GACrDD,EAAQI,SAAS,iBAAkB5C,EAAO6C,IAAI7C,EAAO8C,WAAW,CAC5DssB,kBAAmBpvB,EAAO2F,cAC1B0pB,YAAarvB,EAAO2F,cACpBoF,KAAM/K,EAAO0D,WAAW,CAAEC,SAAS,IACnC2rB,WAAYtvB,EAAOmD,QAAQT,EAAW,CAAEK,UAAW,WAAYC,OAAQ,CAAEC,KAAM,gBAAmBN,EAAU,eAC7G,CAAEY,QAAS,mBAAqB,CAC/BC,QAAS,KACL,MAAMuH,EAAO8a,KAAKC,MAAsB,WAAhBD,KAAKE,UAA2B,WACxD,MAAO,CACHqJ,mBAAmB,EACnBC,aAAa,EACbtkB,OACAukB,WAAY,CACR,sBAAuB,CACnBrrB,KAAM,sBACN6gB,UAAW,CACP7gB,KAAM,kBACN8G,OACAga,aAAc,CACV9gB,KAAM,4BACN8G,QAEJya,SAAU,wBAGlB,uBAAwB,CACpBvhB,KAAM,uBACN6gB,UAAW,CACP7gB,KAAM,kBACN8G,OACAga,aAAc,CACV9gB,KAAM,wBACN8G,OACAoa,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,CACIhc,WAAY,CAAE2c,SAAU,EAAKG,UAAW,EAAKlkB,OAAQ,EAAKgkB,YAAa,EAAKC,SAAU,GACtFjT,MAAO,2BAEX,CACI5J,WAAY,CAAE2c,SAAU,EAAKG,UAAW,EAAKlkB,OAAQ,EAAKgkB,YAAa,EAAKC,UAAW,IACvFjT,MAAO,8BAEX,CACI5J,WAAY,CAAE2c,SAAU,EAAKG,UAAW,EAAKlkB,OAAQ,EAAKgkB,YAAa,GAAKC,SAAU,GACtFjT,MAAO,4BAEX,CACI5J,WAAY,CAAE2c,SAAU,EAAKG,UAAW,EAAKlkB,OAAQ,KAAOgkB,YAAa,EAAKC,SAAU,IACxFjT,MAAO,2BAEX,CACI5J,WAAY,CAAE2c,SAAU,EAAKG,UAAW,EAAKlkB,OAAQ,KAAOgkB,aAAc,GAAKC,SAAU,GACzFjT,MAAO,6BAInBuS,SAAU,qBAGlB,oBAAqB,CACjBvhB,KAAM,oBACN6gB,UAAW,CACP7gB,KAAM,kBACN8G,OACAga,aAAc,CACV9gB,KAAM,oBACN8G,QAEJya,SAAU,0B,6BC1FtC7nB,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQub,qBAAkB,EAkkB1Bvb,EAAQub,gBAjkBR,SAAyB7V,GACrBA,EAAYG,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,iBAAkB,CACnC,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,+BAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,YAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,4BAEJH,EAAYG,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,4BAEJH,EAAYG,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,8BAEJH,EAAYG,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QAC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","file":"js/bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 98);\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.FloatProvider = exports.UniformFloat = exports.UniformInt = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n const Uniform = (integer) => (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.UniformInt = Uniform(true);\r\n exports.UniformFloat = Uniform();\r\n exports.FloatProvider = (config) => ObjectWithType('worldgen/float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n base: core_1.NumberNode(config),\r\n spread: core_1.NumberNode({ min: 0 })\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:requirements': {\r\n terms: core_1.ListNode(Reference('condition')),\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n return value.map((obj, index) => children.validate(path.push(index), obj, errors, options));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.NumberNode()\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n const RangeConfig = {\r\n bottom_inclusive: Reference('vertical_anchor'),\r\n top_inclusive: Reference('vertical_anchor')\r\n };\r\n const BiasedRangeConfig = {\r\n ...RangeConfig,\r\n cutoff: core_1.NumberNode({ integer: true })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.NumberNode()\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: Reference('vertical_anchor'),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_with_water_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased_to_bottom': BiasedRangeConfig,\r\n 'minecraft:range_very_biased_to_bottom': BiasedRangeConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = exports.lootContext = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a;\r\n this.schema = schema;\r\n this.data = schema.default();\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n node = node[e];\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n node[e] = {};\r\n }\r\n node = node[e];\r\n });\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n let res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n res[k] = undefined;\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\r\n : () => []);\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = this.default() || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Common_1.Range(),\r\n duration: Common_1.Range()\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n }),\r\n ...conditions\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' })),\r\n ...conditions\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } })),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }))),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true }),\r\n ...conditions\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n ...conditions\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier')),\r\n ...conditions\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...conditions\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component')),\r\n ...conditions\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } }),\r\n ...conditions\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n }))),\r\n ...conditions\r\n }\r\n }\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:vanilla_layered': {\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings'))\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode({ min: -1, max: 1 }),\r\n temperature: core_1.NumberNode({ min: -1, max: 1 }),\r\n humidity: core_1.NumberNode({ min: -1, max: 1 }),\r\n weirdness: core_1.NumberNode({ min: -1, max: 1 }),\r\n offset: core_1.NumberNode({ min: -1, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.NumberNode({ integer: true })\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: Reference('block_pos')\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.BooleanNode(),\r\n crystal_beam_target: Reference('block_pos'),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.NumberNode({ integer: true }),\r\n centerZ: core_1.NumberNode({ integer: true }),\r\n radius: core_1.NumberNode({ integer: true }),\r\n height: core_1.NumberNode({ integer: true }),\r\n guarded: core_1.BooleanNode()\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.BooleanNode()\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.BooleanNode()\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:vanilla_layered': {\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings'))\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode({ min: -1, max: 1 }),\r\n temperature: core_1.NumberNode({ min: -1, max: 1 }),\r\n humidity: core_1.NumberNode({ min: -1, max: 1 }),\r\n weirdness: core_1.NumberNode({ min: -1, max: 1 }),\r\n offset: core_1.NumberNode({ min: -1, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': {\r\n bottom_inclusive: Reference('vertical_anchor'),\r\n top_inclusive: Reference('vertical_anchor'),\r\n y_scale: Common_1.UniformInt(),\r\n distanceFactor: Common_1.FloatProvider({ min: 0, max: 1 }),\r\n vertical_rotation: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode(),\r\n }\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.NumberNode({ integer: true })\r\n };\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n }))\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.UniformInt(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n radius: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.UniformInt({ min: 0, max: 64, maxSpread: 64 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness_mean: core_1.NumberNode({ min: 0, max: 1 }),\r\n wetness_deviation: core_1.NumberNode({ min: 0, max: 1 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: Reference('block_pos')\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.BooleanNode(),\r\n crystal_beam_target: Reference('block_pos'),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.NumberNode({ integer: true }),\r\n centerZ: core_1.NumberNode({ integer: true }),\r\n radius: core_1.NumberNode({ integer: true }),\r\n height: core_1.NumberNode({ integer: true }),\r\n guarded: core_1.BooleanNode()\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state'))\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n min_outer_wall_distance: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_outer_wall_distance: core_1.Opt(core_1.NumberNode({ min: 1, max: 20, integer: true })),\r\n min_distribution_points: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_distribution_points: core_1.Opt(core_1.NumberNode({ min: 1, max: 20, integer: true })),\r\n min_point_offset: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_point_offset: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.UniformInt()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.BooleanNode()\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.UniformInt({ min: 1, max: 30, maxSpread: 30 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n empty_space_search_radius: core_1.NumberNode({ integer: true, min: 0, max: 20 }),\r\n max_offset_from_origin: core_1.NumberNode({ integer: true, min: 0, max: 20 }),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 1 }))\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n ignore_vines: core_1.Opt(core_1.BooleanNode()),\r\n force_dirt: core_1.Opt(core_1.BooleanNode()),\r\n minimum_size: Reference('feature_size'),\r\n dirt_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.UniformInt({ min: 1, max: 32, maxSpread: 32 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.UniformInt({ min: 1, max: 256, maxSpread: 256 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.UniformInt(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.BooleanNode()\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","// A port of an algorithm by Johannes Baagøe , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n","const dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\nexport function hexId(length = 12) {\n var arr = new Uint8Array(length / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n}\nexport function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>')\n .replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n}\nexport function hashString(s) {\n let h = 0;\n for (let i = 0; i < s.length; i++)\n h = Math.imul(31, h) + s.charCodeAt(i) | 0;\n return h;\n}\nexport function stringToColor(str) {\n const h = Math.abs(hashString(str));\n return [h % 256, (h >> 8) % 256, (h >> 16) % 256];\n}\nexport function clamp(a, b, c) {\n return Math.max(a, Math.min(b, c));\n}\nexport function clampedLerp(a, b, c) {\n if (c < 0) {\n return a;\n }\n else if (c > 1) {\n return b;\n }\n else {\n return lerp(c, a, b);\n }\n}\nexport function lerp(a, b, c) {\n return b + a * (c - b);\n}\nexport function lerp2(a, b, c, d, e, f) {\n return lerp(b, lerp(a, c, d), lerp(a, e, f));\n}\nexport function lerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k));\n}\nexport function smoothstep(x) {\n return x * x * x * (x * (x * 6 - 15) + 10);\n}\n","import { hexId } from \"../Utils\";\nexport class Property {\n constructor(value) {\n this.value = value;\n this.watchers = [];\n }\n set(value) {\n if (this.value === value)\n return;\n const oldValue = this.value;\n this.value = value;\n this.watchers.forEach(w => w.watcher(this.value, oldValue));\n }\n get() {\n return this.value;\n }\n watchRun(watcher, name) {\n watcher(this.value, null);\n return this.watch(watcher, name);\n }\n watch(watcher, name) {\n name = name !== null && name !== void 0 ? name : hexId();\n const w = this.watchers.find(w => w.name === name);\n if (w) {\n w.watcher = watcher;\n }\n else {\n this.watchers.push({ name, watcher });\n }\n return this;\n }\n}\n","import { Property } from './Property';\nexport class LocalStorageProperty extends Property {\n constructor(id, fallback) {\n var _a;\n super((_a = localStorage.getItem(id)) !== null && _a !== void 0 ? _a : fallback);\n this.id = id;\n }\n set(value) {\n super.set(value);\n localStorage.setItem(this.id, value);\n }\n get() {\n return this.value;\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { App, checkVersion } from './App';\nimport config from '../config.json';\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\nconst CACHE_NAME = `misode-v1`;\nconst mcdataUrl = 'https://raw.githubusercontent.com/Arcensoth/mcdata';\nconst vanillaDatapackUrl = 'https://raw.githubusercontent.com/SPGoding/vanilla-datapack';\nconst refs = [\n {\n id: 'mcdata_master',\n hash: __MCDATA_MASTER_HASH__,\n url: mcdataUrl\n },\n {\n id: 'vanilla_datapack_summary',\n hash: __VANILLA_DATAPACK_SUMMARY_HASH__,\n url: vanillaDatapackUrl\n },\n];\nexport function fetchData(target, versionId) {\n return __awaiter(this, void 0, void 0, function* () {\n const version = config.versions.find(v => v.id === versionId);\n if (!version)\n return;\n if (version.dynamic) {\n yield Promise.all(refs\n .filter(r => localStorage.getItem(`cached_${r.id}`) !== r.hash)\n .map((r) => __awaiter(this, void 0, void 0, function* () {\n yield deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`));\n localStorage.setItem(`cached_${r.id}`, r.hash);\n })));\n }\n yield Promise.all([\n fetchRegistries(version, target),\n fetchBlockStateMap(version),\n fetchDynamicRegistries(version, target)\n ]);\n });\n}\nfunction fetchRegistries(version, target) {\n return __awaiter(this, void 0, void 0, function* () {\n const registries = config.registries\n .filter(r => !r.dynamic)\n .filter(r => checkVersion(version.id, r.minVersion, r.maxVersion));\n if (checkVersion(version.id, undefined, '1.15')) {\n const url = `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/registries.json`;\n try {\n const data = yield getData(url, (data) => {\n const res = {};\n Object.keys(data).forEach(k => {\n res[k.slice(10)] = Object.keys(data[k].entries);\n });\n return res;\n });\n registries.forEach(r => {\n var _a;\n target.register(r.id, (_a = data[r.id]) !== null && _a !== void 0 ? _a : []);\n });\n }\n catch (e) {\n console.warn(`Error occurred while fetching registries:`, e);\n }\n }\n else {\n return Promise.all(registries.map((r) => __awaiter(this, void 0, void 0, function* () {\n try {\n const url = r.path\n ? `${mcdataUrl}/${version.refs.mcdata_master}/${r.path}/data.min.json`\n : `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/registries/${r.id}/data.min.json`;\n target.register(r.id, yield getData(url, v => v.values));\n }\n catch (e) {\n console.warn(`Error occurred while registry ${r.id}:`, e);\n }\n })));\n }\n });\n}\nfunction fetchBlockStateMap(version) {\n return __awaiter(this, void 0, void 0, function* () {\n if (checkVersion(version.id, undefined, '1.16')) {\n const url = (checkVersion(version.id, undefined, '1.15'))\n ? `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/blocks.json`\n : `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/data.min.json`;\n try {\n const data = yield getData(url, (data) => {\n const res = {};\n Object.keys(data).forEach(b => {\n res[b] = {\n properties: data[b].properties,\n default: data[b].states.find((s) => s.default).properties\n };\n });\n return res;\n });\n App.blockStateRegistry = data;\n }\n catch (e) {\n console.warn(`Error occurred while fetching block state map:`, e);\n }\n }\n else {\n const url = `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;\n try {\n App.blockStateRegistry = yield getData(url);\n }\n catch (e) {\n console.warn(`Error occurred while fetching block state map:`, e);\n }\n }\n });\n}\nfunction fetchDynamicRegistries(version, target) {\n return __awaiter(this, void 0, void 0, function* () {\n const registries = config.registries\n .filter(r => r.dynamic)\n .filter(r => checkVersion(version.id, r.minVersion, r.maxVersion));\n if (checkVersion(version.id, '1.16')) {\n const url = `${vanillaDatapackUrl}/${version.refs.vanilla_datapack_summary}/summary/flattened.min.json`;\n try {\n const data = yield getData(url);\n registries.forEach(r => {\n target.register(r.id, data[r.id]);\n });\n }\n catch (e) {\n console.warn(`Error occurred while fetching dynamic registries:`, e);\n }\n }\n });\n}\nexport function fetchPreset(version, registry, id) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield fetch(`${vanillaDatapackUrl}/${version.refs.vanilla_datapack_data}/data/minecraft/${registry}/${id}.json`);\n return yield res.json();\n }\n catch (e) {\n console.warn(`Error occurred while fetching ${registry} preset ${id}:`, e);\n }\n });\n}\nfunction getData(url, fn = (v) => v) {\n return __awaiter(this, void 0, void 0, function* () {\n const cache = yield caches.open(CACHE_NAME);\n const cacheResponse = yield cache.match(url);\n if (cacheResponse && cacheResponse.ok) {\n return yield cacheResponse.json();\n }\n const fetchResponse = yield fetch(url);\n const responseData = fn(yield fetchResponse.json());\n yield cache.put(url, new Response(JSON.stringify(responseData)));\n return responseData;\n });\n}\nfunction deleteMatching(matches) {\n return __awaiter(this, void 0, void 0, function* () {\n const cache = yield caches.open(CACHE_NAME);\n const promises = [];\n for (const request of yield cache.keys()) {\n if (matches(request.url)) {\n promises.push(cache.delete(request));\n }\n }\n return (yield Promise.all(promises)).length > 0;\n });\n}\n","export const Octicon = {\n archive: '',\n arrow_both: '',\n arrow_left: '',\n arrow_right: '',\n chevron_down: '',\n chevron_right: '',\n clippy: '',\n code: '',\n dash: '',\n download: '',\n eye: '',\n eye_closed: '',\n fold: '',\n gear: '',\n globe: '',\n history: '',\n info: '',\n issue_opened: '',\n kebab_horizontal: '',\n link: '',\n mark_github: '',\n moon: '',\n note: '',\n package: '',\n play: '',\n plus: '',\n plus_circle: '',\n search: '',\n square: '',\n square_fill: '',\n sun: '',\n tag: '',\n trashcan: '',\n three_bars: '',\n unfold: '',\n x: '',\n};\n","import { lerp3, smoothstep } from '../../Utils';\nexport class ImprovedNoise {\n constructor(random) {\n this.xo = random() * 256;\n this.yo = random() * 256;\n this.zo = random() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i;\n }\n for (let i = 0; i < 256; i += 1) {\n const n = random.int32() % (256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + n];\n this.p[i + n] = b;\n }\n }\n noise(x, y, z, a, b) {\n const x2 = x + this.xo;\n const y2 = y + this.yo;\n const z2 = z + this.zo;\n const x3 = Math.floor(x2);\n const y3 = Math.floor(y2);\n const z3 = Math.floor(z2);\n const x4 = x2 - x3;\n const y4 = y2 - y3;\n const z4 = z2 - z3;\n const x5 = smoothstep(x4);\n const y5 = smoothstep(y4);\n const z5 = smoothstep(z4);\n let y6 = 0;\n if (a !== 0) {\n y6 = Math.floor(Math.min(b, y4) / a) * a;\n }\n return this.sampleAndLerp(x3, y3, z3, x4, y4 - y6, z4, x5, y5, z5);\n }\n gradDot(a, b, c, d) {\n const grad = ImprovedNoise.GRADIENT[a & 15];\n return grad[0] * b + grad[1] * c + grad[2] * d;\n }\n P(i) {\n return this.p[i & 255] & 255;\n }\n sampleAndLerp(a, b, c, d, e, f, g, h, i) {\n const j = this.P(a) + b;\n const k = this.P(j) + c;\n const l = this.P(j + 1) + c;\n const m = this.P(a + 1) + b;\n const n = this.P(m) + c;\n const o = this.P(m + 1) + c;\n const p = this.gradDot(this.P(k), d, e, f);\n const q = this.gradDot(this.P(n), d - 1, e, f);\n const r = this.gradDot(this.P(l), d, e - 1, f);\n const s = this.gradDot(this.P(o), d - 1, e - 1, f);\n const t = this.gradDot(this.P(k + 1), d, e, f - 1);\n const u = this.gradDot(this.P(n + 1), d - 1, e, f - 1);\n const v = this.gradDot(this.P(l + 1), d, e - 1, f - 1);\n const w = this.gradDot(this.P(o + 1), d - 1, e - 1, f - 1);\n return lerp3(g, h, i, p, q, r, s, t, u, v, w);\n }\n}\nImprovedNoise.GRADIENT = [[1, 1, 0], [-1, 1, 0], [1, -1, 0], [-1, -1, 0], [1, 0, 1], [-1, 0, 1], [1, 0, -1], [-1, 0, -1], [0, 1, 1], [0, -1, 1], [0, 1, -1], [0, -1, -1], [1, 1, 0], [0, -1, 1], [-1, 1, 0], [0, -1, -1]];\n","import seedrandom from 'seedrandom';\nimport { ImprovedNoise } from \"./ImprovedNoise\";\nexport class PerlinNoise {\n constructor(seed, firstOctave, amplitudes) {\n this.amplitudes = amplitudes;\n this.noiseLevels = Array(this.amplitudes.length);\n for (let i = 0; i < this.amplitudes.length; i += 1) {\n this.noiseLevels[i] = new ImprovedNoise(seedrandom(seed));\n }\n this.lowestFreqInputFactor = Math.pow(2, firstOctave);\n this.lowestFreqValueFactor = Math.pow(2, (amplitudes.length - 1)) / (Math.pow(2, amplitudes.length) - 1);\n }\n static fromRange(seed, min, max) {\n return new PerlinNoise(seed, min, Array(max - min + 1).fill(1));\n }\n getValue(x, y, z, a = 0, b = 0, fixY = false) {\n let value = 0;\n let inputF = this.lowestFreqInputFactor;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += this.amplitudes[i] * noise.noise(PerlinNoise.wrap(x * inputF), fixY ? -noise.yo : PerlinNoise.wrap(y * inputF), PerlinNoise.wrap(z * inputF), a * inputF, b * inputF) * valueF;\n }\n inputF *= 2;\n valueF /= 2;\n }\n return value;\n }\n getOctaveNoise(i) {\n return this.noiseLevels[this.noiseLevels.length - 1 - i];\n }\n static wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n","import { PerlinNoise } from './PerlinNoise';\nexport class NormalNoise {\n constructor(seed, firstOctave, amplitudes) {\n this.first = new PerlinNoise(seed, firstOctave, amplitudes);\n this.second = new PerlinNoise(seed + 'a', firstOctave, amplitudes);\n let min = +Infinity;\n let max = -Infinity;\n for (let i = 0; i < amplitudes.length; i += 1) {\n if (amplitudes[i] !== 0) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n const expectedDeviation = 0.1 * (1 + 1 / (max - min + 1));\n this.valueFactor = (1 / 6) / expectedDeviation;\n }\n getValue(x, y, z) {\n const x2 = x * 1.0181268882175227;\n const y2 = y * 1.0181268882175227;\n const z2 = z * 1.0181268882175227;\n return (this.first.getValue(x, y, z) + this.second.getValue(x2, y2, z2)) * this.valueFactor;\n }\n wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n","export class Preview {\n constructor() {\n this.redraw = () => { };\n }\n dirty(path) {\n return JSON.stringify(this.state) !== JSON.stringify(path.get());\n }\n menu(view, redraw) {\n return '';\n }\n onDrag(dx, dy) { }\n}\n","import { Path } from \"@mcschema/core\";\nimport { Octicon } from \"../components/Octicon\";\nimport { Property } from \"../state/Property\";\nimport { hexId, stringToColor } from \"../Utils\";\nimport { NormalNoise } from './noise/NormalNoise';\nimport { Preview } from './Preview';\nconst LOCAL_STORAGE_BIOME_COLORS = 'biome_colors';\nexport class BiomeNoisePreview extends Preview {\n constructor() {\n var _a;\n super();\n this.offsetX = 0;\n this.offsetY = 0;\n this.seed = hexId();\n this.viewScale = new Property(0);\n this.biomeColors = new Property({});\n this.biomeColors.set(JSON.parse((_a = localStorage.getItem(LOCAL_STORAGE_BIOME_COLORS)) !== null && _a !== void 0 ? _a : '{}'));\n this.noise = [];\n this.biomeColors.watch(() => this.redraw());\n }\n getName() {\n return 'biome-noise';\n }\n active(path) {\n return path.endsWith(new Path(['generator', 'biome_source']))\n && path.push('type').get() === 'minecraft:multi_noise';\n }\n menu(view, redraw) {\n return `\n
        {\n this.viewScale.watchRun(value => {\n const blocks = (Math.pow(2, value)) * 200;\n el.textContent = blocks.toFixed();\n }, 'preview-controls');\n })}\">
        \n
        {\n this.viewScale.set(this.viewScale.get() - 0.5);\n redraw();\n })}\">\n ${Octicon.plus}\n
        \n
        {\n this.viewScale.set(this.viewScale.get() + 0.5);\n redraw();\n })}\">\n ${Octicon.dash}\n
        `;\n }\n getSize() {\n return [200, 100];\n }\n draw(model, img) {\n var _a;\n this.noise = BiomeNoisePreview.noiseMaps.map((id, i) => {\n const config = this.state[`${id}_noise`];\n return new NormalNoise(this.seed + i, config.firstOctave, config.amplitudes);\n });\n const biomeColorCache = {};\n this.state.biomes.forEach((b) => {\n biomeColorCache[b.biome] = this.getBiomeColor(b.biome);\n });\n const data = img.data;\n const s = (Math.pow(2, this.viewScale.get()));\n for (let x = 0; x < 200; x += 1) {\n for (let y = 0; y < 100; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const xx = (x - this.offsetX) * s - 100 * s;\n const yy = (y - this.offsetY) * s - 50 * s;\n const b = this.closestBiome(xx, yy);\n const color = (_a = biomeColorCache[b]) !== null && _a !== void 0 ? _a : [128, 128, 128];\n data[i] = color[0];\n data[i + 1] = color[1];\n data[i + 2] = color[2];\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX += dx;\n this.offsetY += dy;\n }\n closestBiome(x, y) {\n if (!this.state.biomes || this.state.biomes.length === 0)\n return '';\n const noise = this.noise.map(n => n.getValue(x, y, 0));\n let minDist = Infinity;\n let minBiome = '';\n for (const b of this.state.biomes) {\n const dist = this.fitness(b.parameters, { altitude: noise[0], temperature: noise[1], humidity: noise[2], weirdness: noise[3], offset: 0 });\n if (dist < minDist) {\n minDist = dist;\n minBiome = b.biome;\n }\n }\n return minBiome;\n }\n fitness(a, b) {\n return (a.altitude - b.altitude) * (a.altitude - b.altitude) + (a.temperature - b.temperature) * (a.temperature - b.temperature) + (a.humidity - b.humidity) * (a.humidity - b.humidity) + (a.weirdness - b.weirdness) * (a.weirdness - b.weirdness) + (a.offset - b.offset) * (a.offset - b.offset);\n }\n getBiomeColor(biome) {\n const color = this.biomeColors.get()[biome];\n if (color === undefined) {\n return stringToColor(biome);\n }\n return color;\n }\n setBiomeColor(biome, value) {\n const color = [parseInt(value.slice(1, 3), 16), parseInt(value.slice(3, 5), 16), parseInt(value.slice(5, 7), 16)];\n this.biomeColors.set(Object.assign(Object.assign({}, this.biomeColors.get()), { [biome]: color }));\n localStorage.setItem(LOCAL_STORAGE_BIOME_COLORS, JSON.stringify(this.biomeColors.get()));\n }\n getBiomeHex(biome) {\n return '#' + this.getBiomeColor(biome).map(e => e.toString(16).padStart(2, '0')).join('');\n }\n}\nBiomeNoisePreview.noiseMaps = ['altitude', 'temperature', 'humidity', 'weirdness'];\n","import English from '../locales/en.json';\nimport { App } from './App';\nexport const Locales = {\n 'en': English\n};\nexport function resolveLocaleParams(value, params) {\n return value === null || value === void 0 ? void 0 : value.replace(/%\\d+%/g, match => {\n const index = parseInt(match.slice(1, -1));\n return (params === null || params === void 0 ? void 0 : params[index]) !== undefined ? params[index] : match;\n });\n}\nexport function locale(key, params) {\n var _a, _b, _c;\n const value = (_b = (_a = Locales[App.language.get()]) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : Locales.en[key];\n return (_c = resolveLocaleParams(value, params)) !== null && _c !== void 0 ? _c : key;\n}\nexport function segmentedLocale(segments, params, depth = 5, minDepth = 1) {\n return [App.language.get(), 'en'].reduce((prev, code) => {\n var _a;\n if (prev !== undefined)\n return prev;\n const array = segments.slice(-depth);\n while (array.length >= minDepth) {\n const locale = resolveLocaleParams((_a = Locales[code]) === null || _a === void 0 ? void 0 : _a[array.join('.')], params);\n if (locale !== undefined)\n return locale;\n array.shift();\n }\n return undefined;\n }, undefined);\n}\n","import { locale } from \"../Locales\";\nimport { hexId } from \"../Utils\";\nexport class View {\n constructor() {\n this.registry = {};\n }\n render() {\n return '';\n }\n register(callback) {\n const id = hexId();\n this.registry[id] = callback;\n return id;\n }\n on(type, callback) {\n return this.register(el => {\n el.addEventListener(type, evt => {\n callback(el);\n evt.stopPropagation();\n });\n });\n }\n onChange(callback) {\n return this.on('change', callback);\n }\n onClick(callback) {\n return this.on('click', callback);\n }\n mounted(el, clear = true) {\n el.querySelectorAll('[data-id]').forEach(el => {\n var _a, _b;\n const id = el.getAttribute('data-id');\n (_b = (_a = this.registry)[id]) === null || _b === void 0 ? void 0 : _b.call(_a, el);\n });\n if (clear) {\n this.registry = {};\n }\n el.querySelectorAll('[data-i18n]').forEach(el => {\n el.textContent = locale(el.attributes.getNamedItem('data-i18n').value);\n });\n }\n mount(el, html, clear = true) {\n el.innerHTML = html;\n this.mounted(el, clear);\n }\n}\nexport const toggleMenu = (el) => {\n el.classList.add('active');\n const hideMenu = () => document.body.addEventListener('click', evt => {\n var _a;\n if (evt.target.matches('.btn.input') || ((_a = evt.target.closest('.btn')) === null || _a === void 0 ? void 0 : _a.classList.contains('input'))) {\n hideMenu();\n return;\n }\n el.classList.remove('active');\n }, { capture: true, once: true });\n hideMenu();\n};\n","import { PerlinNoise } from './PerlinNoise';\nimport { clampedLerp, hexId, lerp2 } from '../../Utils';\nexport class NoiseChunkGenerator {\n constructor() {\n this.settings = {};\n this.chunkWidth = 4;\n this.chunkHeight = 4;\n this.chunkCountY = 32;\n this.biomeDepth = 0.1;\n this.biomeScale = 0.2;\n this.noiseColumnCache = [];\n this.xOffset = 0;\n this.minLimitPerlinNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n this.maxLimitPerlinNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n this.mainPerlinNoise = PerlinNoise.fromRange(hexId(), -7, 0);\n this.depthNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n }\n reset(settings, depth, scale, xOffset, width) {\n this.settings = settings;\n this.chunkWidth = settings.size_horizontal * 4;\n this.chunkHeight = settings.size_vertical * 4;\n this.chunkCountY = Math.floor(settings.height / this.chunkHeight);\n if (settings.amplified && depth > 0) {\n depth = 1 + depth * 2;\n scale = 1 + scale * 4;\n }\n this.biomeDepth = 0.265625 * (depth * 0.5 - 0.125);\n this.biomeScale = 96.0 / (scale * 0.9 + 0.1);\n this.noiseColumnCache = Array(width).fill(null);\n this.xOffset = xOffset;\n }\n iterateNoiseColumn(x) {\n const data = Array(this.chunkCountY * this.chunkHeight);\n const cx = Math.floor(x / this.chunkWidth);\n const ox = Math.floor(x % this.chunkWidth) / this.chunkWidth;\n const noise1 = this.fillNoiseColumn(cx);\n const noise2 = this.fillNoiseColumn(cx + 1);\n for (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n for (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n const oy = yy / this.chunkHeight;\n const i = y * this.chunkHeight + yy;\n data[i] = lerp2(oy, ox, noise1[y], noise1[y + 1], noise2[y], noise2[y + 1]);\n }\n }\n return data;\n }\n fillNoiseColumn(x) {\n const cachedColumn = this.noiseColumnCache[x - this.xOffset];\n if (cachedColumn)\n return cachedColumn;\n const data = Array(this.chunkCountY + 1);\n const xzScale = 684.412 * this.settings.sampling.xz_scale;\n const yScale = 684.412 * this.settings.sampling.y_scale;\n const xzFactor = xzScale / this.settings.sampling.xz_factor;\n const yFactor = yScale / this.settings.sampling.y_factor;\n const randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0;\n for (let y = 0; y <= this.chunkCountY; y += 1) {\n let noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0).zo, xzScale, yScale, xzFactor, yFactor);\n const yOffset = 1 - y * 2 / this.chunkCountY + randomDensity;\n const density = yOffset * this.settings.density_factor + this.settings.density_offset;\n const falloff = (density + this.biomeDepth) * this.biomeScale;\n noise += falloff * (falloff > 0 ? 4 : 1);\n if (this.settings.top_slide.size > 0) {\n noise = clampedLerp(this.settings.top_slide.target, noise, (this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size));\n }\n if (this.settings.bottom_slide.size > 0) {\n noise = clampedLerp(this.settings.bottom_slide.target, noise, (y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size));\n }\n data[y] = noise;\n }\n this.noiseColumnCache[x - this.xOffset] = data;\n return data;\n }\n getRandomDensity(x) {\n const noise = this.depthNoise.getValue(x * 200, 10, this.depthNoise.getOctaveNoise(0).zo, 1, 0, true);\n const a = (noise < 0) ? -noise * 0.3 : noise;\n const b = a * 24.575625 - 2;\n return (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625;\n }\n sampleAndClampNoise(x, y, z, xzScale, yScale, xzFactor, yFactor) {\n let a = 0;\n let b = 0;\n let c = 0;\n let d = 1;\n for (let i = 0; i < 16; i += 1) {\n const x2 = PerlinNoise.wrap(x * xzScale * d);\n const y2 = PerlinNoise.wrap(y * yScale * d);\n const z2 = PerlinNoise.wrap(z * xzScale * d);\n const e = yScale * d;\n const minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i);\n if (minLimitNoise) {\n a += minLimitNoise.noise(x2, y2, z2, e, y * e) / d;\n }\n const maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i);\n if (maxLimitNoise) {\n b += maxLimitNoise.noise(x2, y2, z2, e, y * e) / d;\n }\n if (i < 8) {\n const mainNoise = this.mainPerlinNoise.getOctaveNoise(i);\n if (mainNoise) {\n c += mainNoise.noise(PerlinNoise.wrap(x * xzFactor * d), PerlinNoise.wrap(y * yFactor * d), PerlinNoise.wrap(z * xzFactor * d), yFactor * d, y * yFactor * d) / d;\n }\n }\n d /= 2;\n }\n return clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2);\n }\n}\n","import { Path } from \"@mcschema/core\";\nimport seedrandom from \"seedrandom\";\nimport { App } from \"../App\";\nimport { clamp, hexId, stringToColor } from \"../Utils\";\nimport { PerlinNoise } from \"./noise/PerlinNoise\";\nimport { Preview } from './Preview';\nimport { Octicon } from '../components/Octicon';\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82];\nconst seaLevel = 63;\nconst featureColors = [\n [255, 77, 54],\n [59, 118, 255],\n [91, 207, 25],\n [217, 32, 245],\n [255, 209, 41],\n [52, 204, 209],\n];\nexport class DecoratorPreview extends Preview {\n constructor() {\n super();\n this.Features = {\n decorated: (config, pos) => {\n const positions = this.getPositions(pos, config === null || config === void 0 ? void 0 : config.decorator);\n return positions.flatMap(p => this.getPlacements(p, config === null || config === void 0 ? void 0 : config.feature));\n },\n random_boolean_selector: (config, pos) => {\n const feature = this.random() < 0.5 ? config === null || config === void 0 ? void 0 : config.feature_true : config === null || config === void 0 ? void 0 : config.feature_false;\n return this.getPlacements(pos, feature);\n },\n random_selector: (config, pos) => {\n var _a, _b;\n for (const f of (_a = config === null || config === void 0 ? void 0 : config.features) !== null && _a !== void 0 ? _a : []) {\n if (this.random() < ((_b = f === null || f === void 0 ? void 0 : f.chance) !== null && _b !== void 0 ? _b : 0)) {\n return this.getPlacements(pos, f.feature);\n }\n }\n return this.getPlacements(pos, config === null || config === void 0 ? void 0 : config.default);\n },\n simple_random_selector: (config, pos) => {\n var _a, _b, _c;\n const feature = (_a = config === null || config === void 0 ? void 0 : config.features) === null || _a === void 0 ? void 0 : _a[this.nextInt((_c = (_b = config === null || config === void 0 ? void 0 : config.features) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0)];\n return this.getPlacements(pos, feature);\n }\n };\n this.Decorators = {\n chance: (config, pos) => {\n var _a;\n return this.random() < 1 / ((_a = config === null || config === void 0 ? void 0 : config.chance) !== null && _a !== void 0 ? _a : 1) ? [pos] : [];\n },\n count: (config, pos) => {\n var _a;\n return new Array(this.sampleUniformInt((_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1)).fill(pos);\n },\n count_extra: (config, pos) => {\n var _a, _b, _c;\n let count = (_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1;\n if ((_b = this.random() < config.extra_chance) !== null && _b !== void 0 ? _b : 0) {\n count += (_c = config.extra_count) !== null && _c !== void 0 ? _c : 0;\n }\n return new Array(count).fill(pos);\n },\n count_multilayer: (config, pos) => {\n var _a;\n return new Array(this.sampleUniformInt((_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1)).fill(pos)\n .map(p => [\n p[0] + this.nextInt(16),\n p[1],\n p[2] + this.nextInt(16)\n ]);\n },\n count_noise: (config, pos) => {\n const noise = this.biomeInfoNoise.getValue(pos[0] / 200, 0, pos[2] / 200);\n const count = noise < config.noise_level ? config.below_noise : config.above_noise;\n return new Array(count).fill(pos);\n },\n count_noise_biased: (config, pos) => {\n const factor = Math.max(1, config.noise_factor);\n const noise = this.biomeInfoNoise.getValue(pos[0] / factor, 0, pos[2] / factor);\n const count = Math.max(0, Math.ceil((noise + config.noise_offset) * config.noise_to_count_ratio));\n return new Array(count).fill(pos);\n },\n dark_oak_tree: (config, pos) => {\n return [...new Array(16)].map((e, i) => {\n const x = Math.floor(i / 4) * 4 + 1 + this.nextInt(3) + pos[0];\n const y = Math.max(seaLevel, terrain[clamp(0, 63, x)]);\n const z = Math.floor(i % 4) * 4 + 1 + this.nextInt(3) + pos[2];\n return [x, y, z];\n });\n },\n decorated: (config, pos) => {\n return this.getPositions(pos, config === null || config === void 0 ? void 0 : config.outer).flatMap(p => {\n return this.getPositions(p, config === null || config === void 0 ? void 0 : config.inner);\n });\n },\n depth_average: (config, pos) => {\n var _a, _b, _c, _d;\n const y = this.nextInt((_a = config === null || config === void 0 ? void 0 : config.spread) !== null && _a !== void 0 ? _a : 0) + this.nextInt((_b = config === null || config === void 0 ? void 0 : config.spread) !== null && _b !== void 0 ? _b : 0) - ((_c = config.spread) !== null && _c !== void 0 ? _c : 0) + ((_d = config === null || config === void 0 ? void 0 : config.baseline) !== null && _d !== void 0 ? _d : 0);\n return this.decorateY(pos, y);\n },\n emerald_ore: (config, pos) => {\n const count = 3 + this.nextInt(6);\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(28) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n fire: (config, pos) => {\n const count = this.nextInt(this.nextInt(this.sampleUniformInt(config === null || config === void 0 ? void 0 : config.count))) + 1;\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(120) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n glowstone: (config, pos) => {\n const count = this.nextInt(this.nextInt(this.sampleUniformInt(config === null || config === void 0 ? void 0 : config.count)) + 1);\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(120) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n heightmap: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, y);\n },\n heightmap_spread_double: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, this.nextInt(y * 2));\n },\n heightmap_world_surface: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, y);\n },\n iceberg: (config, pos) => {\n return [[\n this.nextInt(8) + 4 + pos[0],\n pos[1],\n this.nextInt(8) + 4 + pos[2]\n ]];\n },\n lava_lake: (config, pos) => {\n var _a, _b;\n if (this.nextInt(((_a = config.chance) !== null && _a !== void 0 ? _a : 1) / 10) === 0) {\n const y = this.nextInt(this.nextInt(256 - 8) + 8);\n if (y < seaLevel || this.nextInt(((_b = config === null || config === void 0 ? void 0 : config.chance) !== null && _b !== void 0 ? _b : 1) / 8) == 0) {\n const x = this.nextInt(16) + pos[0];\n const z = this.nextInt(16) + pos[2];\n return [[x, y, z]];\n }\n }\n return [];\n },\n nope: (config, pos) => {\n return [pos];\n },\n range: (config, pos) => {\n var _a, _b, _c;\n const y = this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0);\n return this.decorateY(pos, y);\n },\n range_biased: (config, pos) => {\n var _a, _b, _c;\n const y = this.nextInt(this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0));\n return this.decorateY(pos, y);\n },\n range_very_biased: (config, pos) => {\n var _a, _b, _c, _d;\n const y = this.nextInt(this.nextInt(this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0)) + ((_d = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _d !== void 0 ? _d : 0));\n return this.decorateY(pos, y);\n },\n spread_32_above: (config, pos) => {\n const y = this.nextInt(pos[1] + 32);\n return this.decorateY(pos, y);\n },\n top_solid_heightmap: (config, pos) => {\n const y = terrain[clamp(0, 63, pos[0])];\n return this.decorateY(pos, y);\n },\n magma: (config, pos) => {\n const y = this.nextInt(pos[1] + 32);\n return this.decorateY(pos, y);\n },\n square: (config, pos) => {\n return [[\n pos[0] + this.nextInt(16),\n pos[1],\n pos[2] + this.nextInt(16)\n ]];\n },\n water_lake: (config, pos) => {\n var _a;\n if (this.nextInt((_a = config.chance) !== null && _a !== void 0 ? _a : 1) === 0) {\n return [[\n this.nextInt(16) + pos[0],\n this.nextInt(256),\n this.nextInt(16) + pos[2]\n ]];\n }\n return [];\n }\n };\n this.seed = hexId();\n this.perspective = 'top';\n this.size = [64, 128, 48];\n this.random = seedrandom(this.seed);\n this.biomeInfoNoise = new PerlinNoise(hexId(), 0, [1]);\n this.usedFeatures = [];\n }\n getName() {\n return 'decorator';\n }\n active(path) {\n var _a;\n return ((_a = App.model.get()) === null || _a === void 0 ? void 0 : _a.id) === 'worldgen/feature'\n && path.equals(new Path(['config', 'decorator']))\n && path.pop().pop().push('type').get() === 'minecraft:decorated';\n }\n menu(view, redraw) {\n return `\n
        {\n this.perspective = this.perspective === 'top' ? 'side' : 'top';\n redraw();\n })}\">\n ${Octicon.package}\n
        `;\n }\n getSize() {\n return this.perspective === 'top' ? [this.size[0], this.size[2]] : [this.size[0], this.size[1]];\n }\n draw(model, img) {\n const featureData = JSON.parse(JSON.stringify(model.data));\n this.random = seedrandom(this.seed);\n this.usedFeatures = [];\n let placements = [];\n for (let x = 0; x < this.size[0] / 16; x += 1) {\n for (let z = 0; z < (this.perspective === 'top' ? this.size[2] / 16 : 1); z += 1) {\n const chunkPlacements = this.getPlacements([x * 16, 0, z * 16], featureData);\n const filtered = chunkPlacements.filter(p => {\n return p.pos.every((n, i) => n >= 0 && n < this.size[i]);\n });\n placements = [...placements, ...filtered];\n }\n }\n const data = img.data;\n img.data.fill(255);\n if (this.perspective === 'side') {\n for (let x = 0; x < this.size[0]; x += 1) {\n for (let y = 0; y < terrain[clamp(0, 63, x)]; y += 1) {\n const i = ((this.size[1] - y - 1) * (img.width * 4)) + (x * 4);\n for (let j = 0; j < 3; j += 1) {\n data[i + j] = 30;\n }\n }\n for (let y = terrain[clamp(0, 63, x)]; y < seaLevel; y += 1) {\n const i = ((this.size[1] - y - 1) * (img.width * 4)) + (x * 4);\n data[i + 0] = 108;\n data[i + 1] = 205;\n data[i + 2] = 230;\n }\n }\n }\n for (let { pos, feature } of placements) {\n const i = this.perspective === 'top'\n ? (pos[2] * (img.width * 4)) + (pos[0] * 4)\n : ((this.size[1] - pos[1] - 1) * (img.width * 4)) + (pos[0] * 4);\n const color = feature < featureColors.length ? featureColors[feature] : stringToColor(this.usedFeatures[feature]);\n data.set(color.map(c => clamp(50, 205, c)), i);\n }\n for (let x = 0; x < this.size[0]; x += 1) {\n for (let y = 0; y < (this.perspective === 'top' ? this.size[2] : this.size[1]); y += 1) {\n if ((Math.floor(x / 16) + (this.perspective === 'top' ? Math.floor(y / 16) : 0)) % 2 === 0)\n continue;\n const i = (y * (img.width * 4)) + (x * 4);\n for (let j = 0; j < 3; j += 1) {\n data[i + j] = 0.85 * data[i + j];\n }\n }\n }\n }\n useFeature(s) {\n const i = this.usedFeatures.indexOf(s);\n if (i != -1)\n return i;\n this.usedFeatures.push(s);\n return this.usedFeatures.length - 1;\n }\n getPlacements(pos, feature) {\n var _a;\n if (typeof feature === 'string') {\n return [{ pos, feature: this.useFeature(feature) }];\n }\n const type = (_a = feature === null || feature === void 0 ? void 0 : feature.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, '');\n const featureFn = this.Features[type];\n if (!featureFn) {\n return [{ pos, feature: this.useFeature(JSON.stringify(feature)) }];\n }\n return featureFn(feature.config, pos);\n }\n getPositions(pos, decorator) {\n var _a;\n const type = (_a = decorator === null || decorator === void 0 ? void 0 : decorator.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, '');\n const decoratorFn = this.Decorators[type];\n if (!decoratorFn) {\n return [pos];\n }\n return decoratorFn(decorator === null || decorator === void 0 ? void 0 : decorator.config, pos);\n }\n decorateY(pos, y) {\n return [[pos[0], y, pos[2]]];\n }\n sampleUniformInt(value) {\n var _a, _b;\n if (typeof value === 'number') {\n return value;\n }\n else {\n return ((_a = value.base) !== null && _a !== void 0 ? _a : 1) + this.nextInt(1 + ((_b = value.spread) !== null && _b !== void 0 ? _b : 0));\n }\n }\n nextInt(max) {\n return Math.floor(this.random() * max);\n }\n}\n","const event = (category, action, label) => ga('send', 'event', category, action, label);\nconst dimension = (index, value) => ga('set', `dimension${index}`, value);\nexport const Tracker = {\n pageview: (target) => {\n ga('set', 'page', target);\n ga('send', 'pageview');\n },\n setTheme: (theme) => event('Generator', 'set-theme', theme),\n setVersion: (version) => event('Generator', 'set-version', version),\n setPreview: (name) => event('Preview', 'set-preview', name),\n setLanguage: (language) => event('Generator', 'set-language', language),\n reset: () => event('Generator', 'reset'),\n undo: (hotkey = false) => event('Generator', 'undo', hotkey ? 'Hotkey' : 'Menu'),\n redo: (hotkey = false) => event('Generator', 'redo', hotkey ? 'Hotkey' : 'Menu'),\n copy: () => event('JsonOutput', 'copy'),\n download: () => event('JsonOutput', 'download'),\n share: () => event('JsonOutput', 'share'),\n toggleErrors: (visible) => event('Errors', 'toggle', visible ? 'visible' : 'hidden'),\n hidePreview: () => event('Preview', 'hide-preview'),\n toggleMinimize: (minimized) => event('Generator', 'toggle-minimize', minimized ? 'minimized' : 'unminimized'),\n loadPreset: (preset) => event('Generator', 'load-preset', preset),\n dimTheme: (theme) => dimension(1, theme),\n dimVersion: (version) => dimension(3, version),\n dimLanguage: (language) => dimension(4, language),\n dimPreview: (preview) => dimension(5, preview),\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { DataModel, ObjectNode } from '@mcschema/core';\nimport * as java15 from '@mcschema/java-1.15';\nimport * as java16 from '@mcschema/java-1.16';\nimport * as java17 from '@mcschema/java-1.17';\nimport { LocalStorageProperty } from './state/LocalStorageProperty';\nimport { Property } from './state/Property';\nimport { fetchData } from './DataFetcher';\nimport { BiomeNoisePreview } from './preview/BiomeNoisePreview';\nimport { NoiseSettingsPreview } from './preview/NoiseSettingsPreview';\nimport { DecoratorPreview } from './preview/DecoratorPreview';\nimport config from '../config.json';\nimport { locale, Locales } from './Locales';\nimport { Tracker } from './Tracker';\nimport { Settings } from './Settings';\nexport const Versions = {\n '1.15': java15,\n '1.16': java16,\n '1.17': java17\n};\nexport const Previews = {\n 'biome_noise': new BiomeNoisePreview(),\n 'noise_settings': new NoiseSettingsPreview(),\n 'decorator': new DecoratorPreview(),\n};\nexport const Models = {};\nconfig.models.filter(m => m.schema)\n .forEach(m => Models[m.id] = new DataModel(ObjectNode({})));\nexport const App = {\n version: new LocalStorageProperty('schema_version', config.versions[config.versions.length - 1].id)\n .watch(Tracker.dimVersion),\n theme: new LocalStorageProperty('theme', 'dark')\n .watch(Tracker.dimTheme),\n language: new LocalStorageProperty('language', 'en')\n .watch(Tracker.dimLanguage),\n model: new Property(null),\n collections: new Property(null),\n jsonOutput: new Property(''),\n errorsVisible: new Property(false),\n treeMinimized: new Property(false),\n jsonError: new Property(null),\n preview: new Property(null)\n .watch(p => { var _a; return Tracker.dimPreview((_a = p === null || p === void 0 ? void 0 : p.getName()) !== null && _a !== void 0 ? _a : 'none'); }),\n schemasLoaded: new Property(false),\n localesLoaded: new Property(false),\n loaded: new Property(false),\n mobilePanel: new Property('tree'),\n settings: new Settings('generator_settings'),\n blockStateRegistry: {}\n};\nApp.version.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n App.schemasLoaded.set(false);\n yield updateSchemas(value);\n App.schemasLoaded.set(true);\n}));\nApp.theme.watchRun((value) => document.documentElement.setAttribute('data-theme', value));\nlet hasFetchedEnglish = false;\nApp.language.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n App.localesLoaded.set(false);\n yield updateLocale(value);\n App.localesLoaded.set(true);\n}));\nApp.localesLoaded.watch((value) => {\n if (value) {\n document.querySelectorAll('[data-i18n]').forEach(el => {\n el.textContent = locale(el.attributes.getNamedItem('data-i18n').value);\n });\n }\n App.loaded.set(value && App.schemasLoaded.get());\n});\nApp.schemasLoaded.watch((value) => {\n App.loaded.set(value && App.localesLoaded.get());\n});\nApp.mobilePanel.watchRun((value) => {\n document.body.setAttribute('data-panel', value);\n});\nfunction updateSchemas(version) {\n return __awaiter(this, void 0, void 0, function* () {\n App.blockStateRegistry = {};\n const collections = Versions[version].getCollections();\n App.collections.set(collections);\n yield fetchData(collections, version);\n const schemas = Versions[version].getSchemas(collections);\n config.models\n .filter(m => m.schema)\n .filter(m => checkVersion(App.version.get(), m.minVersion))\n .forEach(m => {\n const model = Models[m.id];\n const schema = schemas.get(m.schema);\n if (schema) {\n model.schema = schema;\n if (JSON.stringify(model.data) === '{}') {\n model.reset(schema.default(), true);\n model.history = [JSON.stringify(model.data)];\n model.historyIndex = 0;\n }\n }\n });\n });\n}\nfunction updateLocale(language) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Locales[language] && (hasFetchedEnglish || language !== 'en'))\n return;\n const data = yield (yield fetch(`/locales/${language}.json`)).json();\n if (language === 'en')\n hasFetchedEnglish = true;\n Locales[language] = data;\n });\n}\nexport function checkVersion(versionId, minVersionId, maxVersionId) {\n const version = config.versions.findIndex(v => v.id === versionId);\n const minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0;\n const maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1;\n return minVersion <= version && version <= maxVersion;\n}\ndocument.addEventListener('keyup', (evt) => {\n if (evt.ctrlKey && evt.key === 'z') {\n Tracker.undo(true);\n Models[App.model.get().id].undo();\n }\n else if (evt.ctrlKey && evt.key === 'y') {\n Tracker.redo(true);\n Models[App.model.get().id].redo();\n }\n});\n","import { Path } from \"@mcschema/core\";\nimport { Preview } from './Preview';\nimport { toggleMenu } from '../views/View';\nimport { Octicon } from '../components/Octicon';\nimport { NoiseChunkGenerator } from './noise/NoiseChunkGenerator';\nexport class NoiseSettingsPreview extends Preview {\n constructor() {\n super();\n this.width = 256;\n this.depth = 0.1;\n this.scale = 0.2;\n this.offsetX = 0;\n this.debug = false;\n this.generator = new NoiseChunkGenerator();\n }\n getName() {\n return 'noise-settings';\n }\n active(path) {\n return path.endsWith(new Path(['noise']));\n }\n menu(view, redraw) {\n return `
        \n
        \n ${Octicon.kebab_horizontal}\n
        \n
        \n
        \n ${Octicon.gear}\n \n {\n el.value = this.depth.toString();\n el.addEventListener('change', () => {\n this.depth = parseFloat(el.value);\n redraw();\n });\n })}\">\n
        \n
        \n ${Octicon.gear}\n \n {\n el.value = this.scale.toString();\n el.addEventListener('change', () => {\n this.scale = parseFloat(el.value);\n redraw();\n });\n })}\">\n
        \n
        \n ${Octicon.arrow_both}\n \n {\n el.value = this.width.toString();\n el.addEventListener('change', () => {\n this.width = parseFloat(el.value);\n redraw();\n });\n })}\">\n
        \n
        { this.debug = !this.debug; redraw(); })}\">\n ${Octicon.square}\n \n
        \n
        \n
        `;\n }\n getSize() {\n return [this.width, this.state.height];\n }\n draw(model, img) {\n this.generator.reset(this.state, this.depth, this.scale, this.offsetX, this.width);\n const data = img.data;\n for (let x = 0; x < this.width; x += 1) {\n const noise = this.generator.iterateNoiseColumn(x + this.offsetX).reverse();\n for (let y = 0; y < this.state.height; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const color = this.getColor(noise, y);\n data[i] = (this.debug && noise[y] > 0) ? 255 : color;\n data[i + 1] = color;\n data[i + 2] = color;\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX -= dx;\n }\n getColor(noise, y) {\n if (this.debug) {\n return -noise[y] / 2 + 128;\n }\n if (noise[y] > 0) {\n return 0;\n }\n if (noise[y + 1] > 0) {\n return 150;\n }\n return 255;\n }\n}\n","export class Settings {\n constructor(local_storage) {\n var _a;\n this.local_storage = local_storage;\n const settings = JSON.parse((_a = localStorage.getItem(local_storage)) !== null && _a !== void 0 ? _a : '{}');\n if (!Array.isArray(settings.fields))\n settings.fields = [];\n this.fields = settings.fields;\n this.save();\n }\n save() {\n const settings = JSON.stringify({ fields: this.fields });\n localStorage.setItem(this.local_storage, settings);\n this.fields = [...this.fields.filter(v => v === null || v === void 0 ? void 0 : v.path), {}];\n }\n}\n","import { Octicon } from './Octicon';\nexport const Dropdown = (view, icon, entries, state, watcher) => {\n const dropdown = view.register(el => {\n el.addEventListener('change', () => {\n state.set(el.value);\n });\n state.watchRun(v => el.value = v, 'dropdown');\n });\n return `\n
        \n \n ${Octicon[icon]}\n
        `;\n};\n","import { Octicon } from './Octicon';\nexport const Toggle = (view, entries, state, watcher) => {\n const activeOcticon = () => { var _a; return Octicon[((_a = entries.find(e => e[0] === state.get())) !== null && _a !== void 0 ? _a : entries[0])[1]]; };\n const toggle = view.register(el => {\n el.addEventListener('click', () => {\n const i = entries.findIndex(e => e[0] === state.get());\n state.set(entries[(i + 1) % entries.length][0]);\n });\n state.watch(_ => el.innerHTML = activeOcticon(), 'toggle');\n });\n return `
        ${activeOcticon()}
        `;\n};\n","import { App } from '../App';\nimport { Dropdown } from './Dropdown';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { languages } from '../../config.json';\nimport { Tracker } from '../Tracker';\nimport { locale } from '../Locales';\nexport const Header = (view, title, homeLink = '/') => {\n const panelTogglesId = view.register(el => {\n const getPanelToggles = () => {\n const panels = [['preview', 'play'], ['tree', 'note'], ['source', 'code']];\n if (!panels.map(e => e[0]).includes(App.mobilePanel.get()))\n return '';\n return panels\n .filter(e => e[0] !== App.mobilePanel.get())\n .filter(e => e[0] !== 'preview' || App.preview.get() !== null)\n .map(e => `
        App.mobilePanel.set(e[0]))}\">\n ${Octicon[e[1]]}\n
        `).join('');\n };\n App.mobilePanel.watchRun(() => {\n view.mount(el, getPanelToggles(), false);\n });\n App.preview.watchRun((value, oldValue) => {\n if (value === null && App.mobilePanel.get() === 'preview') {\n App.mobilePanel.set('tree');\n }\n if (value === null || oldValue === null) {\n view.mount(el, getPanelToggles(), false);\n }\n });\n });\n return `
        \n
        \n ${Octicon.three_bars}\n

        ${title}

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

        404

        \n

        ${locale('not_found.description')}

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

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

        \n
          \n
          `;\n};\n","// The programming goals of Split.js are to deliver readable, understandable and\n// maintainable code, while at the same time manually optimizing for tiny minified file size,\n// browser compatibility without additional requirements\n// and very few assumptions about the user's page layout.\nvar global = typeof window !== 'undefined' ? window : null;\nvar ssr = global === null;\nvar document = !ssr ? global.document : undefined;\n\n// Save a couple long function names that are used frequently.\n// This optimization saves around 400 bytes.\nvar addEventListener = 'addEventListener';\nvar removeEventListener = 'removeEventListener';\nvar getBoundingClientRect = 'getBoundingClientRect';\nvar gutterStartDragging = '_a';\nvar aGutterSize = '_b';\nvar bGutterSize = '_c';\nvar HORIZONTAL = 'horizontal';\nvar NOOP = function () { return false; };\n\n// Helper function determines which prefixes of CSS calc we need.\n// We only need to do this once on startup, when this anonymous function is called.\n//\n// Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:\n// http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167\nvar calc = ssr\n ? 'calc'\n : ((['', '-webkit-', '-moz-', '-o-']\n .filter(function (prefix) {\n var el = document.createElement('div');\n el.style.cssText = \"width:\" + prefix + \"calc(9px)\";\n\n return !!el.style.length\n })\n .shift()) + \"calc\");\n\n// Helper function checks if its argument is a string-like type\nvar isString = function (v) { return typeof v === 'string' || v instanceof String; };\n\n// Helper function allows elements and string selectors to be used\n// interchangeably. In either case an element is returned. This allows us to\n// do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.\nvar elementOrSelector = function (el) {\n if (isString(el)) {\n var ele = document.querySelector(el);\n if (!ele) {\n throw new Error((\"Selector \" + el + \" did not match a DOM element\"))\n }\n return ele\n }\n\n return el\n};\n\n// Helper function gets a property from the properties object, with a default fallback\nvar getOption = function (options, propName, def) {\n var value = options[propName];\n if (value !== undefined) {\n return value\n }\n return def\n};\n\nvar getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) {\n if (isFirst) {\n if (gutterAlign === 'end') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n } else if (isLast) {\n if (gutterAlign === 'start') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n }\n\n return gutterSize\n};\n\n// Default options\nvar defaultGutterFn = function (i, gutterDirection) {\n var gut = document.createElement('div');\n gut.className = \"gutter gutter-\" + gutterDirection;\n return gut\n};\n\nvar defaultElementStyleFn = function (dim, size, gutSize) {\n var style = {};\n\n if (!isString(size)) {\n style[dim] = calc + \"(\" + size + \"% - \" + gutSize + \"px)\";\n } else {\n style[dim] = size;\n }\n\n return style\n};\n\nvar defaultGutterStyleFn = function (dim, gutSize) {\n var obj;\n\n return (( obj = {}, obj[dim] = (gutSize + \"px\"), obj ));\n};\n\n// The main function to initialize a split. Split.js thinks about each pair\n// of elements as an independant pair. Dragging the gutter between two elements\n// only changes the dimensions of elements in that pair. This is key to understanding\n// how the following functions operate, since each function is bound to a pair.\n//\n// A pair object is shaped like this:\n//\n// {\n// a: DOM element,\n// b: DOM element,\n// aMin: Number,\n// bMin: Number,\n// dragging: Boolean,\n// parent: DOM element,\n// direction: 'horizontal' | 'vertical'\n// }\n//\n// The basic sequence:\n//\n// 1. Set defaults to something sane. `options` doesn't have to be passed at all.\n// 2. Initialize a bunch of strings based on the direction we're splitting.\n// A lot of the behavior in the rest of the library is paramatized down to\n// rely on CSS strings and classes.\n// 3. Define the dragging helper functions, and a few helpers to go with them.\n// 4. Loop through the elements while pairing them off. Every pair gets an\n// `pair` object and a gutter.\n// 5. Actually size the pair elements, insert gutters and attach event listeners.\nvar Split = function (idsOption, options) {\n if ( options === void 0 ) options = {};\n\n if (ssr) { return {} }\n\n var ids = idsOption;\n var dimension;\n var clientAxis;\n var position;\n var positionEnd;\n var clientSize;\n var elements;\n\n // Allow HTMLCollection to be used as an argument when supported\n if (Array.from) {\n ids = Array.from(ids);\n }\n\n // All DOM elements in the split should have a common parent. We can grab\n // the first elements parent and hope users read the docs because the\n // behavior will be whacky otherwise.\n var firstElement = elementOrSelector(ids[0]);\n var parent = firstElement.parentNode;\n var parentStyle = getComputedStyle ? getComputedStyle(parent) : null;\n var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null;\n\n // Set default options.sizes to equal percentages of the parent element.\n var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; });\n\n // Standardize minSize to an array if it isn't already. This allows minSize\n // to be passed as a number.\n var minSize = getOption(options, 'minSize', 100);\n var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; });\n\n // Get other options\n var expandToMin = getOption(options, 'expandToMin', false);\n var gutterSize = getOption(options, 'gutterSize', 10);\n var gutterAlign = getOption(options, 'gutterAlign', 'center');\n var snapOffset = getOption(options, 'snapOffset', 30);\n var dragInterval = getOption(options, 'dragInterval', 1);\n var direction = getOption(options, 'direction', HORIZONTAL);\n var cursor = getOption(\n options,\n 'cursor',\n direction === HORIZONTAL ? 'col-resize' : 'row-resize'\n );\n var gutter = getOption(options, 'gutter', defaultGutterFn);\n var elementStyle = getOption(\n options,\n 'elementStyle',\n defaultElementStyleFn\n );\n var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn);\n\n // 2. Initialize a bunch of strings based on the direction we're splitting.\n // A lot of the behavior in the rest of the library is paramatized down to\n // rely on CSS strings and classes.\n if (direction === HORIZONTAL) {\n dimension = 'width';\n clientAxis = 'clientX';\n position = 'left';\n positionEnd = 'right';\n clientSize = 'clientWidth';\n } else if (direction === 'vertical') {\n dimension = 'height';\n clientAxis = 'clientY';\n position = 'top';\n positionEnd = 'bottom';\n clientSize = 'clientHeight';\n }\n\n // 3. Define the dragging helper functions, and a few helpers to go with them.\n // Each helper is bound to a pair object that contains its metadata. This\n // also makes it easy to store references to listeners that that will be\n // added and removed.\n //\n // Even though there are no other functions contained in them, aliasing\n // this to self saves 50 bytes or so since it's used so frequently.\n //\n // The pair object saves metadata like dragging state, position and\n // event listener references.\n\n function setElementSize(el, size, gutSize, i) {\n // Split.js allows setting sizes via numbers (ideally), or if you must,\n // by string, like '300px'. This is less than ideal, because it breaks\n // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,\n // make sure you calculate the gutter size by hand.\n var style = elementStyle(dimension, size, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n el.style[prop] = style[prop];\n });\n }\n\n function setGutterSize(gutterElement, gutSize, i) {\n var style = gutterStyle(dimension, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n gutterElement.style[prop] = style[prop];\n });\n }\n\n function getSizes() {\n return elements.map(function (element) { return element.size; })\n }\n\n // Supports touch events, but not multitouch, so only the first\n // finger `touches[0]` is counted.\n function getMousePosition(e) {\n if ('touches' in e) { return e.touches[0][clientAxis] }\n return e[clientAxis]\n }\n\n // Actually adjust the size of elements `a` and `b` to `offset` while dragging.\n // calc is used to allow calc(percentage + gutterpx) on the whole split instance,\n // which allows the viewport to be resized without additional logic.\n // Element a's size is the same as offset. b's size is total size - a size.\n // Both sizes are calculated from the initial parent percentage,\n // then the gutter size is subtracted.\n function adjust(offset) {\n var a = elements[this.a];\n var b = elements[this.b];\n var percentage = a.size + b.size;\n\n a.size = (offset / this.size) * percentage;\n b.size = percentage - (offset / this.size) * percentage;\n\n setElementSize(a.element, a.size, this[aGutterSize], a.i);\n setElementSize(b.element, b.size, this[bGutterSize], b.i);\n }\n\n // drag, where all the magic happens. The logic is really quite simple:\n //\n // 1. Ignore if the pair is not dragging.\n // 2. Get the offset of the event.\n // 3. Snap offset to min if within snappable range (within min + snapOffset).\n // 4. Actually adjust each element in the pair to offset.\n //\n // ---------------------------------------------------------------------\n // | | <- a.minSize || b.minSize -> | |\n // | | | <- this.snapOffset || this.snapOffset -> | | |\n // | | | || | | |\n // | | | || | | |\n // ---------------------------------------------------------------------\n // | <- this.start this.size -> |\n function drag(e) {\n var offset;\n var a = elements[this.a];\n var b = elements[this.b];\n\n if (!this.dragging) { return }\n\n // Get the offset of the event from the first side of the\n // pair `this.start`. Then offset by the initial position of the\n // mouse compared to the gutter size.\n offset =\n getMousePosition(e) -\n this.start +\n (this[aGutterSize] - this.dragOffset);\n\n if (dragInterval > 1) {\n offset = Math.round(offset / dragInterval) * dragInterval;\n }\n\n // If within snapOffset of min or max, set offset to min or max.\n // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.\n // Include the appropriate gutter sizes to prevent overflows.\n if (offset <= a.minSize + snapOffset + this[aGutterSize]) {\n offset = a.minSize + this[aGutterSize];\n } else if (\n offset >=\n this.size - (b.minSize + snapOffset + this[bGutterSize])\n ) {\n offset = this.size - (b.minSize + this[bGutterSize]);\n }\n\n // Actually adjust the size.\n adjust.call(this, offset);\n\n // Call the drag callback continously. Don't do anything too intensive\n // in this callback.\n getOption(options, 'onDrag', NOOP)(getSizes());\n }\n\n // Cache some important sizes when drag starts, so we don't have to do that\n // continously:\n //\n // `size`: The total size of the pair. First + second + first gutter + second gutter.\n // `start`: The leading side of the first element.\n //\n // ------------------------------------------------\n // | aGutterSize -> ||| |\n // | ||| |\n // | ||| |\n // | ||| <- bGutterSize |\n // ------------------------------------------------\n // | <- start size -> |\n function calculateSizes() {\n // Figure out the parent size minus padding.\n var a = elements[this.a].element;\n var b = elements[this.b].element;\n\n var aBounds = a[getBoundingClientRect]();\n var bBounds = b[getBoundingClientRect]();\n\n this.size =\n aBounds[dimension] +\n bBounds[dimension] +\n this[aGutterSize] +\n this[bGutterSize];\n this.start = aBounds[position];\n this.end = aBounds[positionEnd];\n }\n\n function innerSize(element) {\n // Return nothing if getComputedStyle is not supported (< IE9)\n // Or if parent element has no layout yet\n if (!getComputedStyle) { return null }\n\n var computedStyle = getComputedStyle(element);\n\n if (!computedStyle) { return null }\n\n var size = element[clientSize];\n\n if (size === 0) { return null }\n\n if (direction === HORIZONTAL) {\n size -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n } else {\n size -=\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n }\n\n return size\n }\n\n // When specifying percentage sizes that are less than the computed\n // size of the element minus the gutter, the lesser percentages must be increased\n // (and decreased from the other elements) to make space for the pixels\n // subtracted by the gutters.\n function trimToMin(sizesToTrim) {\n // Try to get inner size of parent element.\n // If it's no supported, return original sizes.\n var parentSize = innerSize(parent);\n if (parentSize === null) {\n return sizesToTrim\n }\n\n if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) {\n return sizesToTrim\n }\n\n // Keep track of the excess pixels, the amount of pixels over the desired percentage\n // Also keep track of the elements with pixels to spare, to decrease after if needed\n var excessPixels = 0;\n var toSpare = [];\n\n var pixelSizes = sizesToTrim.map(function (size, i) {\n // Convert requested percentages to pixel sizes\n var pixelSize = (parentSize * size) / 100;\n var elementGutterSize = getGutterSize(\n gutterSize,\n i === 0,\n i === sizesToTrim.length - 1,\n gutterAlign\n );\n var elementMinSize = minSizes[i] + elementGutterSize;\n\n // If element is too smal, increase excess pixels by the difference\n // and mark that it has no pixels to spare\n if (pixelSize < elementMinSize) {\n excessPixels += elementMinSize - pixelSize;\n toSpare.push(0);\n return elementMinSize\n }\n\n // Otherwise, mark the pixels it has to spare and return it's original size\n toSpare.push(pixelSize - elementMinSize);\n return pixelSize\n });\n\n // If nothing was adjusted, return the original sizes\n if (excessPixels === 0) {\n return sizesToTrim\n }\n\n return pixelSizes.map(function (pixelSize, i) {\n var newPixelSize = pixelSize;\n\n // While there's still pixels to take, and there's enough pixels to spare,\n // take as many as possible up to the total excess pixels\n if (excessPixels > 0 && toSpare[i] - excessPixels > 0) {\n var takenPixels = Math.min(\n excessPixels,\n toSpare[i] - excessPixels\n );\n\n // Subtract the amount taken for the next iteration\n excessPixels -= takenPixels;\n newPixelSize = pixelSize - takenPixels;\n }\n\n // Return the pixel size adjusted as a percentage\n return (newPixelSize / parentSize) * 100\n })\n }\n\n // stopDragging is very similar to startDragging in reverse.\n function stopDragging() {\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n if (self.dragging) {\n getOption(options, 'onDragEnd', NOOP)(getSizes());\n }\n\n self.dragging = false;\n\n // Remove the stored event listeners. This is why we store them.\n global[removeEventListener]('mouseup', self.stop);\n global[removeEventListener]('touchend', self.stop);\n global[removeEventListener]('touchcancel', self.stop);\n global[removeEventListener]('mousemove', self.move);\n global[removeEventListener]('touchmove', self.move);\n\n // Clear bound function references\n self.stop = null;\n self.move = null;\n\n a[removeEventListener]('selectstart', NOOP);\n a[removeEventListener]('dragstart', NOOP);\n b[removeEventListener]('selectstart', NOOP);\n b[removeEventListener]('dragstart', NOOP);\n\n a.style.userSelect = '';\n a.style.webkitUserSelect = '';\n a.style.MozUserSelect = '';\n a.style.pointerEvents = '';\n\n b.style.userSelect = '';\n b.style.webkitUserSelect = '';\n b.style.MozUserSelect = '';\n b.style.pointerEvents = '';\n\n self.gutter.style.cursor = '';\n self.parent.style.cursor = '';\n document.body.style.cursor = '';\n }\n\n // startDragging calls `calculateSizes` to store the inital size in the pair object.\n // It also adds event listeners for mouse/touch events,\n // and prevents selection while dragging so avoid the selecting text.\n function startDragging(e) {\n // Right-clicking can't start dragging.\n if ('button' in e && e.button !== 0) {\n return\n }\n\n // Alias frequently used variables to save space. 200 bytes.\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n // Call the onDragStart callback.\n if (!self.dragging) {\n getOption(options, 'onDragStart', NOOP)(getSizes());\n }\n\n // Don't actually drag the element. We emulate that in the drag function.\n e.preventDefault();\n\n // Set the dragging property of the pair object.\n self.dragging = true;\n\n // Create two event listeners bound to the same pair object and store\n // them in the pair object.\n self.move = drag.bind(self);\n self.stop = stopDragging.bind(self);\n\n // All the binding. `window` gets the stop events in case we drag out of the elements.\n global[addEventListener]('mouseup', self.stop);\n global[addEventListener]('touchend', self.stop);\n global[addEventListener]('touchcancel', self.stop);\n global[addEventListener]('mousemove', self.move);\n global[addEventListener]('touchmove', self.move);\n\n // Disable selection. Disable!\n a[addEventListener]('selectstart', NOOP);\n a[addEventListener]('dragstart', NOOP);\n b[addEventListener]('selectstart', NOOP);\n b[addEventListener]('dragstart', NOOP);\n\n a.style.userSelect = 'none';\n a.style.webkitUserSelect = 'none';\n a.style.MozUserSelect = 'none';\n a.style.pointerEvents = 'none';\n\n b.style.userSelect = 'none';\n b.style.webkitUserSelect = 'none';\n b.style.MozUserSelect = 'none';\n b.style.pointerEvents = 'none';\n\n // Set the cursor at multiple levels\n self.gutter.style.cursor = cursor;\n self.parent.style.cursor = cursor;\n document.body.style.cursor = cursor;\n\n // Cache the initial sizes of the pair.\n calculateSizes.call(self);\n\n // Determine the position of the mouse compared to the gutter\n self.dragOffset = getMousePosition(e) - self.end;\n }\n\n // adjust sizes to ensure percentage is within min size and gutter.\n sizes = trimToMin(sizes);\n\n // 5. Create pair and element objects. Each pair has an index reference to\n // elements `a` and `b` of the pair (first and second elements).\n // Loop through the elements while pairing them off. Every pair gets a\n // `pair` object and a gutter.\n //\n // Basic logic:\n //\n // - Starting with the second element `i > 0`, create `pair` objects with\n // `a = i - 1` and `b = i`\n // - Set gutter sizes based on the _pair_ being first/last. The first and last\n // pair have gutterSize / 2, since they only have one half gutter, and not two.\n // - Create gutter elements and add event listeners.\n // - Set the size of the elements, minus the gutter sizes.\n //\n // -----------------------------------------------------------------------\n // | i=0 | i=1 | i=2 | i=3 |\n // | | | | |\n // | pair 0 pair 1 pair 2 |\n // | | | | |\n // -----------------------------------------------------------------------\n var pairs = [];\n elements = ids.map(function (id, i) {\n // Create the element object.\n var element = {\n element: elementOrSelector(id),\n size: sizes[i],\n minSize: minSizes[i],\n i: i,\n };\n\n var pair;\n\n if (i > 0) {\n // Create the pair object with its metadata.\n pair = {\n a: i - 1,\n b: i,\n dragging: false,\n direction: direction,\n parent: parent,\n };\n\n pair[aGutterSize] = getGutterSize(\n gutterSize,\n i - 1 === 0,\n false,\n gutterAlign\n );\n pair[bGutterSize] = getGutterSize(\n gutterSize,\n false,\n i === ids.length - 1,\n gutterAlign\n );\n\n // if the parent has a reverse flex-direction, switch the pair elements.\n if (\n parentFlexDirection === 'row-reverse' ||\n parentFlexDirection === 'column-reverse'\n ) {\n var temp = pair.a;\n pair.a = pair.b;\n pair.b = temp;\n }\n }\n\n // Determine the size of the current element. IE8 is supported by\n // staticly assigning sizes without draggable gutters. Assigns a string\n // to `size`.\n //\n // Create gutter elements for each pair.\n if (i > 0) {\n var gutterElement = gutter(i, direction, element.element);\n setGutterSize(gutterElement, gutterSize, i);\n\n // Save bound event listener for removal later\n pair[gutterStartDragging] = startDragging.bind(pair);\n\n // Attach bound event listener\n gutterElement[addEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n gutterElement[addEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n\n parent.insertBefore(gutterElement, element.element);\n\n pair.gutter = gutterElement;\n }\n\n setElementSize(\n element.element,\n element.size,\n getGutterSize(\n gutterSize,\n i === 0,\n i === ids.length - 1,\n gutterAlign\n ),\n i\n );\n\n // After the first iteration, and we have a pair object, append it to the\n // list of pairs.\n if (i > 0) {\n pairs.push(pair);\n }\n\n return element\n });\n\n function adjustToMin(element) {\n var isLast = element.i === pairs.length;\n var pair = isLast ? pairs[element.i - 1] : pairs[element.i];\n\n calculateSizes.call(pair);\n\n var size = isLast\n ? pair.size - element.minSize - pair[bGutterSize]\n : element.minSize + pair[aGutterSize];\n\n adjust.call(pair, size);\n }\n\n elements.forEach(function (element) {\n var computedSize = element.element[getBoundingClientRect]()[dimension];\n\n if (computedSize < element.minSize) {\n if (expandToMin) {\n adjustToMin(element);\n } else {\n // eslint-disable-next-line no-param-reassign\n element.minSize = computedSize;\n }\n }\n });\n\n function setSizes(newSizes) {\n var trimmed = trimToMin(newSizes);\n trimmed.forEach(function (newSize, i) {\n if (i > 0) {\n var pair = pairs[i - 1];\n\n var a = elements[pair.a];\n var b = elements[pair.b];\n\n a.size = trimmed[i - 1];\n b.size = newSize;\n\n setElementSize(a.element, a.size, pair[aGutterSize], a.i);\n setElementSize(b.element, b.size, pair[bGutterSize], b.i);\n }\n });\n }\n\n function destroy(preserveStyles, preserveGutter) {\n pairs.forEach(function (pair) {\n if (preserveGutter !== true) {\n pair.parent.removeChild(pair.gutter);\n } else {\n pair.gutter[removeEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n pair.gutter[removeEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n }\n\n if (preserveStyles !== true) {\n var style = elementStyle(\n dimension,\n pair.a.size,\n pair[aGutterSize]\n );\n\n Object.keys(style).forEach(function (prop) {\n elements[pair.a].element.style[prop] = '';\n elements[pair.b].element.style[prop] = '';\n });\n }\n });\n }\n\n return {\n setSizes: setSizes,\n getSizes: getSizes,\n collapse: function collapse(i) {\n adjustToMin(elements[i]);\n },\n destroy: destroy,\n parent: parent,\n pairs: pairs,\n }\n};\n\nexport default Split;\n","import Split from 'split.js';\nexport const SplitGroup = (view, options, entries) => {\n var _a;\n return `\n
          {\n Split([].slice.call(el.children), Object.assign({ snapOffset: 0 }, options));\n })}>\n ${entries.join('')}\n
          \n`;\n};\n","import { Path } from '@mcschema/core';\nimport { App, Previews } from '../App';\nimport { Octicon } from '../components/Octicon';\nimport { locale } from '../Locales';\nimport { Tracker } from '../Tracker';\nexport const suffixInjector = {\n base() { },\n choice({ switchNode }, path, mounter) {\n return switchNode.hook(this, path, mounter);\n },\n object({}, path, mounter) {\n if (Previews.biome_noise.active(path)) {\n return setPreview(Previews.biome_noise, path, mounter);\n }\n if (Previews.noise_settings.active(path)) {\n return setPreview(Previews.noise_settings, path, mounter);\n }\n if (Previews.decorator.active(path)) {\n return setPreview(Previews.decorator, path, mounter);\n }\n },\n string({}, path, mounter) {\n if (path.endsWith(new Path(['biome']))\n && path.pop().pop().endsWith(new Path(['generator', 'biome_source', 'biomes']))) {\n const biomePreview = Previews.biome_noise;\n const biome = path.get();\n const id = mounter.onChange(el => {\n biomePreview.setBiomeColor(biome, el.value);\n });\n return ``;\n }\n }\n};\nfunction setPreview(preview, path, mounter) {\n const id = mounter.onClick(() => {\n Tracker.setPreview(preview.getName());\n preview.path = path;\n App.preview.set(preview);\n });\n return ``;\n}\n","import { relativePath } from '@mcschema/core';\nexport const getFilterKey = {\n base: () => null,\n object({ filter, getActiveFields }, path, origin, depth = 0) {\n if (depth > 2)\n return null;\n if (filter) {\n const filtered = relativePath(path, filter);\n if (filtered && filtered.pop().equals(origin))\n return filtered.last();\n }\n const activeFields = getActiveFields(path);\n for (const k of Object.keys(activeFields)) {\n const filtered = activeFields[k].hook(this, path.push(k), origin, depth += 1);\n if (filtered)\n return filtered;\n }\n return null;\n }\n};\n","import { getFilterKey } from './getFilterKey';\nexport const canFlatten = {\n base: () => false,\n object({ node, getActiveFields }, path) {\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n const visibleEntries = Object.entries(getActiveFields(path))\n .filter(([k, v]) => filterKey !== k && v.enabled(path));\n if (visibleEntries.length !== 1)\n return false;\n const nestedPath = path.push(visibleEntries[0][0]);\n if (visibleEntries[0][1].type(nestedPath) !== 'object')\n return false;\n return visibleEntries[0][1].hook(getFilterKey, nestedPath, nestedPath) === null;\n }\n};\n","import { ModelPath, Path, DataModel, MapNode, StringNode, relativePath } from '@mcschema/core';\nimport { locale, segmentedLocale } from '../Locales';\nimport { hexId, htmlEncode } from '../Utils';\nimport { suffixInjector } from './suffixInjector';\nimport { Octicon } from '../components/Octicon';\nimport { App } from '../App';\nimport { getFilterKey } from './getFilterKey';\nimport { canFlatten } from './canFlatten';\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(StringNode(), StringNode()), { historyMax: 0 });\n/**\n * Renders the node and handles events to update the model\n * @returns string HTML representation of this node using the given data\n */\nexport const renderHtml = {\n base() {\n return ['', '', ''];\n },\n boolean({ node }, path, value, mounter) {\n const onFalse = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === false ? undefined : false);\n });\n const onTrue = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === true ? undefined : true);\n });\n return ['', `${htmlEncode(locale('false'))}\n ${htmlEncode(locale('true'))}`, ''];\n },\n choice({ choices, config, switchNode }, path, value, mounter) {\n const choice = switchNode.activeCase(path, true);\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path;\n const pathWithChoiceContext = (config === null || config === void 0 ? void 0 : config.choiceContext) ? new Path([], [config.choiceContext]) : (config === null || config === void 0 ? void 0 : config.context) ? new Path([], [config.context]) : path;\n const [prefix, suffix, body] = choice.node.hook(this, pathWithContext, value, mounter);\n if (choices.length === 1) {\n return [prefix, suffix, body];\n }\n const inputId = mounter.register(el => {\n el.value = choice.type;\n el.addEventListener('change', () => {\n var _a;\n const c = (_a = choices.find(c => c.type === el.value)) !== null && _a !== void 0 ? _a : choice;\n path.model.set(path, c.change ? c.change(value) : c.node.default());\n });\n });\n const inject = ``;\n return [prefix, inject + suffix, body];\n },\n list({ children }, path, value, mounter) {\n const onAdd = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [children.default(), ...value]);\n });\n const onAddBottom = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [...value, children.default()]);\n });\n const suffix = ``;\n let body = '';\n if (Array.isArray(value)) {\n body = value.map((childValue, index) => {\n const removeId = mounter.onClick(el => path.model.set(path.push(index), undefined));\n const childPath = path.push(index).contextPush('entry');\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = children.hook(this, childPath, childValue, mounter);\n return `
          \n
          \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
          \n ${cBody ? `
          ${cBody}
          ` : ''}\n
          `;\n }).join('');\n if (value.length > 2) {\n body += `
          \n
          \n \n
          \n
          `;\n }\n }\n return ['', suffix, body];\n },\n map({ keys, children, config }, path, value, mounter) {\n var _a, _b, _c;\n const keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]));\n const onAdd = mounter.onClick(el => {\n const key = keyPath.get();\n path.model.set(path.push(key), children.default());\n });\n let suffix = '';\n const blockState = (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map' ? App.blockStateRegistry[relativePath(path, config.validation.params.id).get()] : null);\n if (!blockState || blockState.properties) {\n const keyRendered = (blockState\n ? StringNode(null, { enum: Object.keys((_b = blockState.properties) !== null && _b !== void 0 ? _b : {}) })\n : keys).hook(this, keyPath, (_c = keyPath.get()) !== null && _c !== void 0 ? _c : '', mounter);\n suffix = keyRendered[1] + ``;\n }\n let body = '';\n if (typeof value === 'object' && value !== undefined) {\n body = Object.keys(value)\n .map(key => {\n const removeId = mounter.onClick(el => path.model.set(path.push(key), undefined));\n const childPath = path.modelPush(key);\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = (blockState\n ? StringNode(null, blockState.properties && { enum: blockState.properties[key] })\n : children).hook(this, childPath, value[key], mounter);\n return `
          \n
          \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
          \n ${cBody ? `
          ${cBody}
          ` : ''}\n
          `;\n })\n .join('');\n }\n return ['', suffix, body];\n },\n number({ integer, config }, path, value, mounter) {\n var _a;\n const onChange = mounter.onChange(el => {\n const value = el.value;\n let parsed = (config === null || config === void 0 ? void 0 : config.color) ? parseInt(value.slice(1), 16)\n : integer ? parseInt(value) : parseFloat(value);\n path.model.set(path, parsed);\n });\n if (config === null || config === void 0 ? void 0 : config.color) {\n const hex = ((_a = value === null || value === void 0 ? void 0 : value.toString(16).padStart(6, '0')) !== null && _a !== void 0 ? _a : '000000');\n return ['', ``, ''];\n }\n return ['', ``, ''];\n },\n object({ node, getActiveFields, getChildModelPath }, path, value, mounter) {\n var _a;\n let prefix = '';\n if (node.optional()) {\n if (value === undefined) {\n prefix = ``;\n }\n else {\n prefix = ``;\n }\n }\n let suffix = '';\n let body = '';\n if (typeof value === 'object' && value !== undefined && (!(node.optional() && value === undefined))) {\n const activeFields = getActiveFields(path);\n const activeKeys = Object.keys(activeFields);\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n if (filterKey && !(activeFields[filterKey].hidden && activeFields[filterKey].hidden())) {\n prefix += error(path.push(filterKey), mounter);\n prefix += help(path.push(filterKey), mounter);\n suffix += activeFields[filterKey].hook(this, path.push(filterKey), value[filterKey], mounter)[1];\n }\n const visibleKeys = (App.treeMinimized.get()\n ? activeKeys.filter(k => value[k] !== undefined)\n : activeKeys)\n .filter(k => filterKey !== k)\n .filter(k => activeFields[k].enabled(path));\n if (node.hook(canFlatten, path)) {\n const newValue = (_a = value[visibleKeys[0]]) !== null && _a !== void 0 ? _a : {};\n body = activeFields[visibleKeys[0]].hook(this, path.push(visibleKeys[0]), newValue, mounter)[2];\n }\n else {\n body = visibleKeys.map(k => {\n var _a;\n const field = activeFields[k];\n const childPath = getChildModelPath(path, k);\n const context = childPath.getContext().join('.');\n const fieldSettings = App.settings.fields.find(f => (f === null || f === void 0 ? void 0 : f.path) && context.endsWith(f.path));\n if ((field.hidden && field.hidden()) || (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.hidden))\n return '';\n const category = field.category(childPath);\n const [cPrefix, cSuffix, cBody] = field.hook(this, childPath, value[k], mounter);\n if (k === 'Properties' && cSuffix === '')\n return '';\n return `
          \n
          \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n ${cPrefix}\n \n ${cSuffix}\n
          \n ${cBody ? `
          ${cBody}
          ` : ''}\n
          `;\n })\n .join('');\n }\n }\n suffix += node.hook(suffixInjector, path, mounter) || '';\n return ['', prefix + suffix, body];\n },\n string(params, path, value, mounter) {\n const inputId = mounter.register(el => {\n el.value = value !== null && value !== void 0 ? value : '';\n el.addEventListener('change', evt => {\n const newValue = el.value;\n path.model.set(path, newValue.length === 0 ? undefined : newValue);\n evt.stopPropagation();\n });\n });\n const suffix = params.node.hook(suffixInjector, path, mounter) || '';\n return ['', rawString(params, path, inputId) + suffix, ''];\n }\n};\nfunction isEnum(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\n}\nfunction isValidator(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\n}\nfunction rawString({ node, getValues, config }, path, inputId) {\n const values = getValues();\n if (isEnum(config) && !config.additional) {\n const contextPath = typeof config.enum === 'string' ?\n new Path(path.getArray(), [config.enum]) : path;\n return selectRaw(node, contextPath, values, inputId);\n }\n if (config && isValidator(config)\n && config.validator === 'resource'\n && typeof config.params.pool === 'string'\n && values.length > 0) {\n const contextPath = new Path(path.getArray(), [config.params.pool]);\n if (segmentedLocale(contextPath.contextPush(values[0]).getContext())) {\n return selectRaw(node, contextPath, values, inputId);\n }\n }\n const datalistId = hexId();\n return `\n ${values.length === 0 ? '' :\n `\n ${values.map(v => ``}`;\n}\nfunction selectRaw(node, contextPath, values, inputId) {\n return ``;\n}\nfunction hashString(str) {\n var hash = 0, i, chr;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0;\n }\n return hash;\n}\nfunction pathLocale(path, params) {\n var _a, _b;\n return (_b = (_a = segmentedLocale(path.getContext(), params)) !== null && _a !== void 0 ? _a : path.getContext()[path.getContext().length - 1]) !== null && _b !== void 0 ? _b : '';\n}\nfunction error(p, mounter) {\n const errors = p.model.errors.get(p, true);\n if (errors.length === 0)\n return '';\n return popupIcon('node-error', 'issue_opened', htmlEncode(locale(errors[0].error, errors[0].params)), mounter);\n}\nfunction help(path, mounter) {\n const message = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (message === undefined)\n return '';\n return popupIcon('node-help', 'info', htmlEncode(message), mounter);\n}\nconst popupIcon = (type, icon, popup, mounter) => {\n const onClick = mounter.onClick(el => {\n el.getElementsByTagName('span')[0].classList.add('show');\n document.body.addEventListener('click', () => {\n el.getElementsByTagName('span')[0].classList.remove('show');\n }, { capture: true, once: true });\n });\n return `
          \n ${popup}${Octicon[icon]}\n
          `;\n};\nconst contextMenu = (path, mounter) => {\n const id = mounter.register(el => {\n const openMenu = () => {\n var _a;\n const popup = document.createElement('div');\n popup.classList.add('node-menu');\n const helpMessage = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (helpMessage)\n popup.insertAdjacentHTML('beforeend', `${helpMessage}`);\n const context = path.getContext().join('.');\n popup.insertAdjacentHTML('beforeend', `\n
          \n ${Octicon.clippy}\n Context: \n ${context}\n
          `);\n (_a = popup.querySelector('.menu-item .btn')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {\n const inputEl = document.createElement('input');\n inputEl.value = context;\n el.appendChild(inputEl);\n inputEl.select();\n document.execCommand('copy');\n el.removeChild(inputEl);\n });\n el.appendChild(popup);\n document.body.addEventListener('click', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n document.body.addEventListener('contextmenu', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n };\n el.addEventListener('contextmenu', evt => {\n openMenu();\n evt.preventDefault();\n });\n let timer = null;\n el.addEventListener('touchstart', () => {\n timer = setTimeout(() => {\n openMenu();\n timer = null;\n }, 800);\n });\n el.addEventListener('touchend', () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n });\n });\n return `data-id=\"${id}\"`;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ModelPath } from '@mcschema/core';\nimport { App, checkVersion, Previews } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { renderHtml } from '../../hooks/renderHtml';\nimport config from '../../../config.json';\nimport { fetchPreset } from '../../DataFetcher';\nexport const TreePanel = (view, model) => {\n const getContent = () => {\n if (App.loaded.get()) {\n const path = new ModelPath(model);\n const rendered = model.schema.hook(renderHtml, path, model.data, view);\n const category = model.schema.category(path);\n if (rendered[1]) {\n return `
          \n
          ${rendered[1]}
          \n
          ${rendered[2]}
          \n
          `;\n }\n return rendered[2];\n }\n return '
          ';\n };\n const tree = view.register(el => {\n App.loaded.watchRun((value) => {\n if (!value) {\n // If loading is taking more than 100 ms, show spinner\n new Promise(r => setTimeout(r, 100)).then(() => {\n if (!App.loaded.get()) {\n view.mount(el, getContent(), false);\n }\n });\n }\n else {\n view.mount(el, getContent(), false);\n }\n });\n App.treeMinimized.watch(() => {\n view.mount(el, getContent(), false);\n });\n model.addListener({\n invalidated() {\n view.mount(el, getContent(), false);\n }\n });\n Previews.biome_noise.biomeColors.watch(() => {\n view.mount(el, getContent(), false);\n }, 'tree-panel');\n });\n const m = App.model.get();\n const registry = ((m === null || m === void 0 ? void 0 : m.category) ? (m === null || m === void 0 ? void 0 : m.category) + '/' : '') + (m === null || m === void 0 ? void 0 : m.schema);\n let presetList;\n const presetListId = view.register(el => presetList = el);\n const getPresets = (query) => {\n var _a, _b;\n const terms = (query !== null && query !== void 0 ? query : '').trim().split(' ');\n const results = ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : [])\n .map(r => r.slice(10))\n .filter(e => terms.every(t => e.includes(t)));\n return results.map(r => `
          __awaiter(void 0, void 0, void 0, function* () {\n App.schemasLoaded.set(false);\n const preset = yield fetchPreset(config.versions.find(v => v.id === App.version.get()), m === null || m === void 0 ? void 0 : m.path, r);\n model.reset(preset);\n App.schemasLoaded.set(true);\n Tracker.loadPreset((m === null || m === void 0 ? void 0 : m.path) + '/' + r);\n }))}\">${r}
          `).join('');\n };\n const presetControl = view.register(el => {\n App.schemasLoaded.watch(v => {\n var _a, _b;\n if (!v)\n return;\n const enabled = ((m === null || m === void 0 ? void 0 : m.path) && checkVersion(App.version.get(), '1.16'));\n el.classList.toggle('disabled', !enabled || ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : []).length === 0);\n if (enabled) {\n view.mount(presetList, getPresets(), false);\n }\n }, 'tree-panel');\n });\n return `
          \n
          \n
          \n
          {\n var _a, _b;\n toggleMenu(el);\n (_b = (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.select();\n })}\">\n ${Octicon.archive}\n
          \n
          \n
          \n ${Octicon.search} {\n view.mount(presetList, getPresets(el.value), false);\n })}\">\n
          \n
          \n
          \n
          \n
          \n
          \n ${Octicon.tag}\n App.version.watch(v => el.textContent = v, 'tree-controls'))}\">\n ${App.version.get()}\n \n
          \n
          \n ${config.versions\n .filter(v => { var _a; return checkVersion(v.id, (_a = App.model.get().minVersion) !== null && _a !== void 0 ? _a : '1.15'); })\n .reverse()\n .map(v => `\n
          {\n Tracker.setVersion(v.id);\n App.version.set(v.id);\n })}\">\n ${v.id}\n
          \n `).join('')}\n
          \n
          \n
          \n
          \n ${Octicon.kebab_horizontal}\n
          \n
          \n
          {\n Tracker.reset();\n model.reset(model.schema.default());\n })}\">\n ${Octicon.history}\n
          \n
          {\n el.addEventListener('click', () => {\n const value = !App.treeMinimized.get();\n App.treeMinimized.set(value);\n Tracker.toggleMinimize(value);\n });\n App.treeMinimized.watchRun(value => {\n view.mount(el, `${Octicon[value ? 'unfold' : 'fold']}`, false);\n });\n })}\">
          \n
          { Tracker.undo(); model.undo(); })}\">\n ${Octicon.arrow_left}\n
          \n
          { Tracker.redo(); model.redo(); })}\">\n ${Octicon.arrow_right}\n
          \n
          \n
          \n
          \n
          \n
          `;\n};\n","export const transformOutput = {\n base({}, _, value) {\n return value;\n },\n choice({ switchNode }, path, value) {\n return switchNode.hook(this, path, value);\n },\n list({ children }, path, value) {\n if (!Array.isArray(value))\n return value;\n return value.map((obj, index) => children.hook(this, path.push(index), obj));\n },\n map({ children }, path, value) {\n if (value === undefined)\n return undefined;\n let res = {};\n Object.keys(value).forEach(f => res[f] = children.hook(this, path.push(f), value[f]));\n return res;\n },\n object({ getActiveFields }, path, value) {\n if (value === undefined || value === null || typeof value !== 'object') {\n return value;\n }\n let res = {};\n const activeFields = getActiveFields(path);\n Object.keys(activeFields)\n .filter(k => activeFields[k].enabled(path))\n .forEach(f => {\n res[f] = activeFields[f].hook(this, path.push(f), value[f]);\n });\n return res;\n }\n};\n","import { ModelPath } from '@mcschema/core';\nimport { Tracker } from '../../Tracker';\nimport { transformOutput } from '../../hooks/transformOutput';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { App } from '../../App';\nexport const SourcePanel = (view, model) => {\n const updateContent = (el) => {\n const data = model.schema.hook(transformOutput, new ModelPath(model), model.data);\n App.jsonOutput.set(JSON.stringify(data, null, 2));\n el.value = App.jsonOutput.get();\n };\n const source = view.register(el => {\n updateContent(el);\n model.addListener({\n invalidated() {\n App.jsonError.set(null);\n updateContent(el);\n }\n });\n el.addEventListener('change', () => {\n const rawSource = el.value;\n try {\n model.reset(JSON.parse(rawSource));\n App.jsonError.set(null);\n }\n catch (err) {\n App.jsonError.set(err.message);\n }\n });\n });\n const copySource = (el) => {\n var _a;\n (_a = el.closest('.panel')) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('textarea')[0].select();\n document.execCommand('copy');\n Tracker.copy();\n };\n const downloadSource = (el) => {\n const fileContents = encodeURIComponent(App.jsonOutput.get() + '\\n');\n const downloadAnchor = el.lastElementChild;\n downloadAnchor.setAttribute('href', 'data:text/json;charset=utf-8,' + fileContents);\n downloadAnchor.setAttribute(\"download\", \"data.json\");\n downloadAnchor.click();\n Tracker.download();\n };\n const shareSource = (el) => {\n var _a;\n const shareInput = (_a = el.closest('.panel-controls')) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n const data = btoa(JSON.stringify(JSON.parse(App.jsonOutput.get())));\n const url = window.location.origin + window.location.pathname + '?q=' + data;\n shareInput.value = url;\n shareInput.style.display = 'inline-block';\n document.body.addEventListener('click', evt => {\n shareInput.style.display = 'none';\n }, { capture: true, once: true });\n shareInput.select();\n document.execCommand('copy');\n Tracker.share();\n };\n return `
          \n
          \n \n
          \n ${Octicon.clippy}\n \n
          \n
          \n
          \n ${Octicon.kebab_horizontal}\n
          \n
          \n
          \n ${Octicon.download}\n \n
          \n
          \n ${Octicon.link}\n
          \n
          \n
          \n
          \n \n
          `;\n};\n","import { App } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { Octicon } from '../Octicon';\nexport const PreviewPanel = (view, model) => {\n const panel = view.register(el => {\n const canvas = el.querySelector('canvas');\n const redraw = () => {\n const preview = App.preview.get();\n if (preview && preview.path && preview.path.withModel(model).get()) {\n const ctx = canvas.getContext('2d');\n const newState = preview.path.withModel(model).get();\n preview.state = JSON.parse(JSON.stringify(newState));\n const [width, height] = preview.getSize();\n canvas.width = width;\n canvas.height = height;\n const img = ctx.createImageData(width, height);\n preview.draw(model, img);\n ctx.putImageData(img, 0, 0);\n }\n else {\n App.preview.set(null);\n }\n };\n const updatePreview = () => {\n var _a, _b;\n redraw();\n view.mount(el.querySelector('.panel-controls'), `\n ${(_b = (_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.menu(view, redraw)) !== null && _b !== void 0 ? _b : ''}\n
          {\n Tracker.hidePreview();\n App.preview.set(null);\n })}\">\n ${Octicon.x}\n
          `, false);\n };\n model.addListener({\n invalidated: redraw\n });\n App.preview.watchRun((value) => {\n if (value) {\n value.redraw = redraw;\n updatePreview();\n }\n }, 'preview-panel');\n let dragStart;\n el.addEventListener('mousedown', evt => {\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mousemove', evt => {\n var _a, _b;\n if (dragStart === undefined)\n return;\n if ((_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.onDrag) {\n const [width, height] = App.preview.get().getSize();\n const dx = (evt.offsetX - dragStart[0]) * width / canvas.clientWidth;\n const dy = (evt.offsetY - dragStart[1]) * height / canvas.clientHeight;\n if (!(dx === 0 && dy === 0)) {\n (_b = App.preview.get()) === null || _b === void 0 ? void 0 : _b.onDrag(dx, dy);\n redraw();\n }\n }\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mouseup', evt => {\n dragStart = undefined;\n });\n });\n return `
          \n
          \n \n
          `;\n};\n","import { relativePath } from '@mcschema/core';\nimport { App } from '../App';\nimport { getFilterKey } from './getFilterKey';\nimport { walk } from './walk';\nexport const customValidation = walk({\n base() { },\n map({ config }, path, value) {\n var _a, _b, _c;\n if (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map') {\n const block = relativePath(path, config.validation.params.id).get();\n const errors = path.getModel().errors;\n const requiredProps = (_c = ((_b = App.blockStateRegistry[block]) !== null && _b !== void 0 ? _b : {}).properties) !== null && _c !== void 0 ? _c : {};\n const existingKeys = Object.keys(value !== null && value !== void 0 ? value : {});\n Object.keys(requiredProps).forEach(p => {\n if (!existingKeys.includes(p)) {\n if (path.last() === 'Properties') {\n errors.add(path, 'error.block_state.missing_property', p);\n }\n }\n else if (!requiredProps[p].includes(value[p])) {\n errors.add(path.push(p), 'error.invalid_enum_option', value[p]);\n }\n });\n }\n },\n object({ node, getActiveFields }, path, value) {\n let activeFields = getActiveFields(path);\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n const visibleKeys = Object.keys(activeFields)\n .filter(k => filterKey !== k)\n .filter(k => activeFields[k].enabled(path));\n if (visibleKeys.length === 1 && activeFields[visibleKeys[0]].type(path.push(visibleKeys[0])) === 'object') {\n if (activeFields[visibleKeys[0]].optional() && JSON.stringify(value[visibleKeys[0]]) === '{}') {\n path.push(visibleKeys[0]).set(undefined);\n }\n }\n }\n});\n","export const walk = (hook) => (Object.assign(Object.assign({}, hook), { choice(params, path, value, ...args) {\n var _a;\n ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n params.switchNode.hook(this, path, value, ...args);\n },\n list(params, path, value, ...args) {\n var _a;\n ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (!Array.isArray(value))\n return;\n value.forEach((e, i) => params.children.hook(this, path.push(i), e, ...args));\n },\n map(params, path, value, ...args) {\n var _a;\n ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (typeof value !== 'object')\n return;\n Object.keys(value).forEach(f => params.children.hook(this, path.push(f), value[f], ...args));\n },\n object(params, path, value, ...args) {\n var _a;\n ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (value === null || typeof value !== 'object')\n return;\n const activeFields = params.getActiveFields(path);\n Object.keys(activeFields)\n .filter(f => activeFields[f].enabled(path))\n .forEach(f => {\n activeFields[f].hook(this, path.push(f), value[f], ...args);\n });\n } }));\n","import { App, checkVersion, Models } from '../App';\nimport { Header } from '../components/Header';\nimport { SplitGroup } from '../components/SplitGroup';\nimport { Errors } from '../components/Errors';\nimport { TreePanel } from '../components/panels/TreePanel';\nimport { SourcePanel } from '../components/panels/SourcePanel';\nimport { PreviewPanel } from '../components/panels/PreviewPanel';\nimport { customValidation } from '../hooks/customValidation';\nimport { ModelPath, Path } from '@mcschema/core';\nexport const Generator = (view) => {\n const model = Models[App.model.get().id];\n model.listeners = [];\n const getSideContent = () => {\n return App.preview.get() ?\n SplitGroup(view, { direction: 'vertical', sizes: [60, 40] }, [\n SourcePanel(view, model),\n PreviewPanel(view, model)\n ])\n : SourcePanel(view, model);\n };\n const validatePreview = () => {\n var _a;\n const preview = App.preview.get();\n const path = (_a = preview === null || preview === void 0 ? void 0 : preview.path) === null || _a === void 0 ? void 0 : _a.withModel(model);\n if (!(path && path.get() && (preview === null || preview === void 0 ? void 0 : preview.active(path)))) {\n App.preview.set(null);\n }\n };\n model.addListener({\n invalidated: () => {\n validatePreview();\n model.schema.hook(customValidation, new ModelPath(model, new Path()), model.data, model.errors);\n }\n });\n App.schemasLoaded.watch((value) => {\n if (value) {\n model.validate();\n model.invalidate();\n validatePreview();\n }\n }, 'generator');\n App.localesLoaded.watch((value) => {\n if (value && App.schemasLoaded.get()) {\n model.invalidate();\n }\n }, 'generator');\n App.version.watchRun((value) => {\n const minVersion = App.model.get().minVersion;\n if (minVersion && !checkVersion(value, minVersion)) {\n App.version.set(minVersion);\n }\n }, 'generator');\n const sideContent = view.register(el => {\n App.preview.watch((value, oldValue) => {\n if (!value || !oldValue) {\n view.mount(el, getSideContent(), false);\n }\n }, 'generator');\n });\n const homeLink = typeof App.model.get().category === 'string' ? `/${App.model.get().category}/` : undefined;\n return `${Header(view, `${App.model.get().name} Generator`, homeLink)}\n
          \n ${SplitGroup(view, { direction: \"horizontal\", sizes: [66, 34] }, [\n TreePanel(view, model),\n `
          ${getSideContent()}
          `\n ])}\n
          \n ${Errors(view, model)}`;\n};\n","import { App } from '../App';\nimport { locale } from '../Locales';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { htmlEncode } from '../Utils';\nimport { Tracker } from '../Tracker';\nexport const Errors = (view, model) => {\n const getContent = () => {\n if (App.jsonError.get()) {\n return `
          \n
          \n ${htmlEncode(App.jsonError.get())}\n
          \n
          \n
          \n ${Octicon.issue_opened}\n
          `;\n }\n if (model.errors.count() === 0)\n return '';\n return `${App.errorsVisible.get() ? `\n
          \n ${model.errors.getAll().map(e => `\n
          \n ${e.path.toString()}\n -\n ${htmlEncode(locale(e.error, e.params))}\n
          \n `).join('')}\n
          \n ` : ''}\n ${Toggle(view, [[true, 'chevron_down'], [false, 'issue_opened']], App.errorsVisible, Tracker.toggleErrors)}`;\n };\n const errors = view.register(el => {\n model.addListener({\n errors() {\n view.mount(el, getContent(), false);\n }\n });\n App.jsonError.watch(() => {\n view.mount(el, getContent(), false);\n });\n App.errorsVisible.watch(() => {\n view.mount(el, getContent(), false);\n }, 'errors');\n });\n return `\n
          \n ${getContent()}\n
          `;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { App, checkVersion, Models } from './App';\nimport { View } from './views/View';\nimport { Home } from './views/Home';\nimport { NotFound } from './views/NotFound';\nimport { FieldSettings } from './views/FieldSettings';\nimport { Generator } from './views/Generator';\nimport { locale } from './Locales';\nimport { Tracker } from './Tracker';\nimport config from '../config.json';\nconst categories = config.models.filter(m => m.category === true);\nconst router = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n const urlParts = location.pathname.split('/').filter(e => e);\n const urlParams = new URLSearchParams(location.search);\n const target = document.getElementById('app');\n let title = locale('title.home');\n let renderer = (view) => '';\n let panel = 'home';\n if (urlParts.length === 0) {\n App.model.set({ id: '', name: 'Data Pack', category: true, minVersion: '1.15' });\n renderer = Home;\n }\n else if (urlParts[0] === 'settings' && urlParts[1] === 'fields') {\n panel = 'settings';\n renderer = FieldSettings;\n }\n else if (urlParts.length === 1 && categories.map(m => m.id).includes(urlParts[0])) {\n App.model.set(categories.find(m => m.id === urlParts[0]));\n renderer = Home;\n }\n else {\n panel = 'tree';\n const model = (_a = config.models.find(m => m.id === urlParts.join('/'))) !== null && _a !== void 0 ? _a : null;\n App.model.set(model);\n if (model) {\n if (urlParams.has('q')) {\n try {\n const data = atob((_b = urlParams.get('q')) !== null && _b !== void 0 ? _b : '');\n Models[model.id].reset(JSON.parse(data));\n }\n catch (e) { }\n }\n renderer = Generator;\n title = locale('title.generator', [locale(model.id)]);\n }\n else {\n renderer = NotFound;\n }\n }\n const versions = config.versions\n .filter(v => { var _a; return checkVersion(v.id, (_a = App.model.get()) === null || _a === void 0 ? void 0 : _a.minVersion); })\n .map(v => v.id).join(', ');\n document.title = `${title} Minecraft ${versions}`;\n App.mobilePanel.set(panel);\n const view = new View();\n view.mount(target, renderer(view), true);\n});\nwindow.addEventListener(\"popstate\", router);\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n document.body.addEventListener(\"click\", e => {\n if (e.target instanceof Element\n && e.target.hasAttribute('data-link')\n && e.target.hasAttribute('href')) {\n e.preventDefault();\n const target = e.target.getAttribute('href');\n Tracker.pageview(target);\n history.pushState(null, '', target);\n router();\n }\n });\n router();\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@mcschema/core/lib/index.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Node.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/seedrandom/index.js","webpack:///./node_modules/@mcschema/core/lib/model/Path.js","webpack:///./node_modules/@mcschema/core/lib/model/Errors.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ListNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/SwitchNode.js","webpack:///./node_modules/@mcschema/core/lib/utils.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.15/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.17/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.15/lib/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/index.js","webpack:///./node_modules/@mcschema/core/lib/model/DataModel.js","webpack:///./node_modules/@mcschema/core/lib/nodes/BooleanNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/MapNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/NumberNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ObjectNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Reference.js","webpack:///./node_modules/@mcschema/core/lib/nodes/StringNode.js","webpack:///./node_modules/@mcschema/core/lib/Hook.js","webpack:///./node_modules/@mcschema/core/lib/Registries.js","webpack:///./node_modules/@mcschema/core/lib/ValidationOption.js","webpack:///./node_modules/@mcschema/java-1.15/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","webpack:///./node_modules/seedrandom/lib/alea.js","webpack:///./node_modules/seedrandom/lib/xor128.js","webpack:///./node_modules/seedrandom/lib/xorwow.js","webpack:///./node_modules/seedrandom/lib/xorshift7.js","webpack:///./node_modules/seedrandom/lib/xor4096.js","webpack:///./node_modules/seedrandom/lib/tychei.js","webpack:///./node_modules/seedrandom/seedrandom.js","webpack:///./src/app/Utils.ts","webpack:///./src/app/state/Property.ts","webpack:///./src/app/state/LocalStorageProperty.ts","webpack:///./src/app/DataFetcher.ts","webpack:///./src/app/components/Octicon.ts","webpack:///./src/app/preview/noise/ImprovedNoise.ts","webpack:///./src/app/preview/noise/PerlinNoise.ts","webpack:///./src/app/preview/noise/NormalNoise.ts","webpack:///./src/app/preview/Preview.ts","webpack:///./src/app/preview/BiomeNoisePreview.ts","webpack:///./src/app/Locales.ts","webpack:///./src/app/views/View.ts","webpack:///./src/app/preview/noise/NoiseChunkGenerator.ts","webpack:///./src/app/preview/DecoratorPreview.ts","webpack:///./src/app/Tracker.ts","webpack:///./src/app/App.ts","webpack:///./src/app/preview/NoiseSettingsPreview.ts","webpack:///./src/app/Settings.ts","webpack:///./src/app/components/Dropdown.ts","webpack:///./src/app/components/Toggle.ts","webpack:///./src/app/components/Header.ts","webpack:///./src/app/views/Home.ts","webpack:///./src/app/views/NotFound.ts","webpack:///./src/app/views/FieldSettings.ts","webpack:///./node_modules/split.js/dist/split.es.js","webpack:///./src/app/components/SplitGroup.ts","webpack:///./src/app/hooks/suffixInjector.ts","webpack:///./src/app/hooks/getFilterKey.ts","webpack:///./src/app/hooks/canFlatten.ts","webpack:///./src/app/hooks/renderHtml.ts","webpack:///./src/app/components/panels/TreePanel.ts","webpack:///./src/app/hooks/transformOutput.ts","webpack:///./src/app/components/panels/SourcePanel.ts","webpack:///./src/app/components/panels/PreviewPanel.ts","webpack:///./src/app/hooks/customValidation.ts","webpack:///./src/app/hooks/walk.ts","webpack:///./src/app/views/Generator.ts","webpack:///./src/app/components/Errors.ts","webpack:///./src/app/Router.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__createBinding","this","k","k2","undefined","__exportStar","Error","initCommonSchemas","UniformInt","Range","NoiseSettingsPresets","DefaultNoiseSettings","DimensionTypePresets","DefaultDimensionType","ConditionCases","core_1","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","target","size","offset","bottom_slide","default_block","Name","default_fluid","Properties","level","schemas","collections","StringNode","Reference","register","Mod","ObjectNode","validator","params","pool","Opt","MapNode","validation","id","push","context","default","ListNode","NumberNode","integer","minLength","maxLength","config","ChoiceNode","forceRange","type","node","change","v","_a","_b","_c","min","max","priority","bounds","allowBinomial","enum","match","choiceContext","base","spread","maxSpread","terms","block","properties","predicate","entity","scores","term","inverse","BooleanNode","offsetX","offsetY","offsetZ","chance","looting_multiplier","enchantment","chances","period","raining","thundering","ObjectOrPreset","shrunk","fixed_time","effects","island_noise_override","amplified","FloatProvider","UniformFloat","FunctionCases","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","cases","defaultCase","keys","forEach","enabled","path","provider","hidden","Switch","Case","disableSwitchContext","choices","replace","length","score","scale","amount","isScoreHolder","source","Uniform","mean","deviation","plateau","entitySourceNode","range","conditions","copySourceNode","formula","parameters","bonusMultiplier","pop","extra","probability","ops","category","op","enchantments","levels","treasure","destination","decoration","zoom","search_radius","skip_existing_chunks","limit","count","modifiers","patterns","pattern","color","append","entries","add","damage","seed","lore","tag","registry","duration","res","f","Keep","Has","Base","keep","optional","pathPush","suggest","validate","_","validationOption","hook","args","canUpdate","update","mods","webpackPolyfill","deprecate","paths","children","__webpack_amd_options__","initProcessorListSchemas","Processors","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","mossiness","blocks","integrity","heightmap","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","axis","block_state","alea","xor128","xorwow","xorshift7","xor4096","tychei","sr","ModelPath","Path","relativePath","start","reduce","e","modelArr","contextArr","end","slice","element","modelPush","contextPush","copy","newElement","startsWith","model","other","every","map","join","fn","thisArg","super","set","shift","Errors","errors","error","exact","filter","equals","iterator","Node_1","Infinity","between","Array","index","nextIndex","getArray","navigate","parseInt","toString","options","loose","isArray","obj","list","SwitchNode","activeCase","concat","fallback","sorter","a","b","matchedCases","sort","escapeString","str","quoteString","initPredicatesSchemas","LocationFields","Common_1","StateChoice","item","durability","potion","nbt","state","fluid","position","x","y","z","biome","feature","dimension","light","stat","gamemode","advancements","recipes","stats","amplifier","ambient","visible","absolute","horizontal","allowTag","team","location","distance","flags","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","LootFunctions","LootConditions","LootCopySources","LootEntitySources","LootTableTypes","Map","requires","allows","initDecoratorSchemas","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","step","extra_count","extra_chance","noise_level","below_noise","above_noise","noise_to_count_ratio","noise_factor","noise_offset","outer","inner","baseline","above_bottom","below_top","bottom_inclusive","top_inclusive","BiasedRangeConfig","cutoff","surface","floor_to_ceiling_search_range","max_water_depth","__setModuleDefault","__importStar","mod","result","getSchemas","getCollections","lootContext","Collections_1","schemas_1","CollectionRegistry","initCollections","SchemaRegistry","initSchemas","DataModel","Path_1","Errors_1","schema","data","listeners","history","JSON","stringify","historyIndex","historyMax","listener","indexOf","splice","newHistory","silentInvalidate","invalidated","invalidate","silent","reset","isNaN","last","console","log","parse","withModel","clear","tempErrors","boolean","StringOrList","ObjectOrList","ListNode_1","SwitchNode_1","switchNode","choice","isValid","XOrList","presetNode","objectNode","presets","Number","isInteger","number","utils_1","fields","defaultFields","getActiveFields","switchValue","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","includes","pathElements","activeFields","existingKeys","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","constructor","transform","isEnum","isValidator","getValues","isDefinition","allowUnknown","additional","values","string","warn","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Predicates_1","Recipe_1","Tags_1","TextComponent_1","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","display","icon","title","description","background","frame","show_toast","announce_to_chat","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","num_bees_inside","partner","child","from","to","victims","villager","zombie","killing_blow","slots","empty","occupied","full","items","delta","unique_entity_types","entered","exited","recipe","condition","LootContext_1","functionsAndConditions","functions","compileSwitchNode","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","conditionSwtichNode","functionSwtichNode","entitySourceSwtichNode","copySourceSwtichNode","pools","rolls","bonus_rolls","weightMod","weight","quality","expand","attribute","operation","slot","pack","pack_format","group","ingredients","ingredient","cookingtime","addition","TagBase","required","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","leadingSlash","allowPartial","hoverEvent","translate","with","objective","selector","keybind","storage","interpret","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","EntityPredicate","loot_table","projectile","shooter","signal_strength","NoPreset","generator","biome_source","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","large_biomes","legacy_biome_init_layer","settings","lakes","features","layers","structures","Math","floor","random","altitude","temperature","humidity","weirdness","firstOctave","amplitudes","smokey","vehicle","targeted_entity","fishing_hook","in_open_water","font","contents","Biome_1","Carver_1","Decorator_1","Feature_1","NoiseSettings_1","ProcessorList_1","StructureFeature_1","SurfaceBuilder_1","TemplatePool_1","initBiomeSchemas","initCarverSchemas","initFeatureSchemas","initNoiseSettingsSchemas","initStructureFeatureSchemas","initSurfaceBuilderSchemas","initTemplatePoolSchemas","surface_builder","depth","downfall","precipitation","temperature_modifier","player_spawn_friendly","creature_spawn_probability","sky_color","fog_color","water_color","water_fog_color","grass_color","foliage_color","grass_color_modifier","ambient_sound","mood_sound","sound","tick_delay","block_search_extent","additions_sound","tick_chance","music","min_delay","max_delay","replace_current_music","particle","starts","spawners","minCount","maxCount","spawn_costs","energy_budget","charge","carvers","RandomPatchConfig","can_replace","project","need_water","xspread","yspread","zspread","tries","state_provider","block_placer","whitelist","blacklist","DiskConfig","radius","half_height","targets","HugeMushroomConfig","cap_provider","stem_provider","foliage_radius","OreConfig","Feature","reach","decorator","rim","rim_size","exit","crystal_invulnerable","crystal_beam_target","spikes","centerX","centerZ","guarded","hat_state","decor_state","stem_state","valid_base_block","planted","feature_false","feature_true","to_place","place_on","place_in","place_under","rock_count","hole_count","requires_block_below","valid_blocks","ignore_vines","minimum_size","trunk_provider","leaves_provider","trunk_placer","base_height","height_rand_a","height_rand_b","foliage_placer","crown_height","trunk_height","decorators","min_clipped_height","lower_size","upper_size","upper_limit","middle_size","min_size","extra_size","stronghold","spacing","separation","salt","templatePoolConfig","start_pool","biome_temp","large_probability","cluster_probability","portal_type","is_beached","top_material","under_material","underwater_material","snowy","elements","element_type","projection","generate_features","bonus_chest","dimensions","ItemModifier_1","initItemModifierSchemas","conditionIDSwtichNode","functionIDSwtichNode","_p","debug_settings","debug_mode","air_state","distanceFactor","vertical_rotation","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","discard_chance_on_air_exposure","VegetationPatchConfig","vertical_range","extra_bottom_block_chance","extra_edge_column_chance","vegetation_chance","xz_radius","replaceable","ground_state","vegetation_feature","max_stalagmite_stalactite_height_diff","height_deviation","dripstone_block_layer_thickness","density","wetness","wetness_mean","wetness_deviation","chance_of_dripstone_column_at_max_distance_from_center","max_distance_from_edge_affecting_chance_of_dripstone_column","max_distance_from_center_affecting_height_bias","max_empty_corners_allowed","fossil_structures","overlay_structures","fossil_processors","overlay_processors","filling_provider","inner_layer_provider","alternate_inner_layer_provider","middle_layer_provider","outer_layer_provider","inner_placements","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","min_outer_wall_distance","max_outer_wall_distance","min_distribution_points","max_distribution_points","min_point_offset","max_point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","direction","allow_water","height_distribution","body_provider","head_provider","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","root_replaceable","root_state_provider","hanging_root_state_provider","max_placements","empty_space_search_radius","max_offset_from_origin","chance_of_taller_dripstone","force_dirt","dirt_provider","foliage_provider","bend_length","min_height_for_leaves","foliage_height","leaf_placement_attempts","_d","global","define","Alea","me","mash","String","h","charCodeAt","next","s0","s1","s2","impl","opts","xg","prng","int32","double","quick","XorGen","strseed","w","X","j","init","Date","math","nodecrypto","startdenom","pow","significance","overflow","seedrandom","callback","shortseed","mixkey","flatten","prop","typ","entropy","tostring","out","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","navigator","plugins","screen","autoseed","arc4","ARC4","g","S","pass","is_math_call","keylen","width","smear","stringseed","fromCharCode","apply","ex","self","dec2hex","dec","substr","hexId","arr","window","htmlEncode","stringToColor","abs","imul","hashString","clamp","clampedLerp","lerp","lerp2","smoothstep","watchers","oldValue","watcher","watch","find","localStorage","getItem","setItem","__awaiter","_arguments","P","Promise","resolve","reject","fulfilled","rejected","done","then","removeItem","mcdataUrl","vanillaDatapackUrl","refs","hash","url","fetchData","versionId","version","versions","dynamic","all","matches","cache","caches","open","promises","request","delete","deleteMatching","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","registries","checkVersion","minVersion","maxVersion","mcdata_master","getData","states","App","blockStateRegistry","vanilla_datapack_summary","cacheResponse","ok","json","fetchResponse","fetch","responseData","put","Response","Octicon","archive","arrow_both","arrow_left","arrow_right","chevron_down","chevron_right","clippy","code","dash","download","eye","eye_closed","fold","gear","globe","info","issue_opened","kebab_horizontal","link","mark_github","moon","note","package","play","plus","plus_circle","search","square","square_fill","sun","trashcan","three_bars","unfold","xo","yo","zo","x2","y2","z2","x3","y3","z3","x4","y4","z4","x5","y5","z5","y6","sampleAndLerp","grad","GRADIENT","lerp3","gradDot","noiseLevels","lowestFreqInputFactor","lowestFreqValueFactor","fill","fixY","inputF","valueF","wrap","first","second","expectedDeviation","valueFactor","getValue","Preview","redraw","view","dx","dy","viewScale","biomeColors","endsWith","el","watchRun","textContent","toFixed","onClick","img","noiseMaps","biomeColorCache","getBiomeColor","xx","yy","closestBiome","minDist","minBiome","dist","fitness","assign","padStart","Locales","resolveLocaleParams","locale","language","en","segmentedLocale","segments","minDepth","prev","array","addEventListener","evt","stopPropagation","on","querySelectorAll","getAttribute","attributes","getNamedItem","html","innerHTML","mounted","toggleMenu","classList","hideMenu","document","body","closest","contains","remove","capture","once","chunkWidth","chunkHeight","chunkCountY","biomeDepth","biomeScale","noiseColumnCache","xOffset","minLimitPerlinNoise","fromRange","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","cx","ox","noise1","fillNoiseColumn","noise2","oy","cachedColumn","xzScale","yScale","xzFactor","yFactor","randomDensity","getRandomDensity","sampleAndClampNoise","getOctaveNoise","falloff","minLimitNoise","maxLimitNoise","mainNoise","terrain","featureColors","label","ga","Tracker","hotkey","minimized","theme","preview","Versions","Previews","debug","iterateNoiseColumn","reverse","getColor","Features","decorated","pos","getPositions","flatMap","getPlacements","random_boolean_selector","random_selector","simple_random_selector","nextInt","Decorators","sampleUniformInt","count_extra","count_multilayer","count_noise","biomeInfoNoise","count_noise_biased","factor","ceil","dark_oak_tree","depth_average","decorateY","emerald_ore","fire","glowstone","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","water_lake","perspective","usedFeatures","featureData","placements","filtered","useFeature","featureFn","decoratorFn","Models","models","jsonOutput","errorsVisible","treeMinimized","jsonError","getName","schemasLoaded","localesLoaded","loaded","mobilePanel","local_storage","save","updateSchemas","documentElement","setAttribute","hasFetchedEnglish","minVersionId","maxVersionId","findIndex","updateLocale","ctrlKey","undo","redo","Toggle","activeOcticon","Header","homeLink","panelTogglesId","getPanelToggles","panels","mount","Dropdown","GeneratorCard","arrow","active","cleanUrl","Home","filteredModels","NotFound","FieldSettings","fieldListId","fieldList","getFields","pathInput","nameInput","ssr","NOOP","calc","prefix","createElement","style","cssText","isString","elementOrSelector","ele","querySelector","getOption","propName","def","getGutterSize","gutterSize","isFirst","isLast","gutterAlign","defaultGutterFn","gutterDirection","gut","className","defaultElementStyleFn","dim","gutSize","defaultGutterStyleFn","idsOption","clientAxis","positionEnd","clientSize","ids","parentNode","parentStyle","getComputedStyle","parentFlexDirection","flexDirection","sizes","minSize","minSizes","expandToMin","snapOffset","dragInterval","cursor","gutter","elementStyle","gutterStyle","setElementSize","getSizes","getMousePosition","touches","adjust","percentage","drag","dragging","dragOffset","round","calculateSizes","aBounds","bBounds","trimToMin","sizesToTrim","parentSize","computedStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","innerSize","excessPixels","toSpare","pixelSizes","pixelSize","elementGutterSize","elementMinSize","newPixelSize","takenPixels","stopDragging","stop","move","userSelect","webkitUserSelect","MozUserSelect","pointerEvents","startDragging","button","preventDefault","pairs","adjustToMin","pair","temp","gutterElement","setGutterSize","insertBefore","computedSize","setSizes","newSizes","trimmed","newSize","collapse","destroy","preserveStyles","preserveGutter","removeChild","SplitGroup","suffixInjector","mounter","biome_noise","setPreview","noise_settings","biomePreview","onChange","setBiomeColor","getBiomeHex","getFilterKey","origin","canFlatten","filterKey","visibleEntries","nestedPath","keysModel","renderHtml","onFalse","onTrue","pathWithChoiceContext","suffix","pathLocale","onAdd","onAddBottom","childValue","removeId","childPath","cPrefix","cSuffix","cBody","help","contextMenu","keyPath","blockState","parsed","visibleKeys","field","getContext","fieldSettings","inputId","rawString","selectRaw","contextPath","datalistId","popupIcon","message","popup","getElementsByTagName","openMenu","helpMessage","insertAdjacentHTML","inputEl","appendChild","select","execCommand","timer","setTimeout","clearTimeout","TreePanel","getContent","rendered","tree","addListener","presetList","presetListId","getPresets","query","trim","split","vanilla_datapack_data","fetchPreset","toggle","parentElement","transformOutput","SourcePanel","updateContent","rawSource","err","fileContents","encodeURIComponent","downloadAnchor","lastElementChild","click","shareInput","btoa","pathname","PreviewPanel","canvas","ctx","newState","getSize","createImageData","draw","putImageData","dragStart","menu","onDrag","clientWidth","clientHeight","customValidation","requiredProps","Generator","getSideContent","validatePreview","sideContent","getAll","categories","router","urlParts","urlParams","URLSearchParams","getElementById","renderer","panel","has","atob","Element","hasAttribute","pushState"],"mappings":"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ACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,sBAEJH,EAAYG,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,iCAEJH,EAAYG,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,+BAEJH,EAAYG,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,YAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cAC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nB,EAAQub,qBAAkB,EAqgB1Bvb,EAAQub,gBApgBR,SAAyB7V,GACrBA,EAAYG,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,iBAAkB,CACnC,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,+BAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,YAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,4BAEJH,EAAYG,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,4BAEJH,EAAYG,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,8BAEJH,EAAYG,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QACA,UACA,QACA,QACA,YAEJH,EAAYG,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,qBAEJH,EAAYG,SAAS,kBAAmB,CACpC,MACA,WAEJH,EAAYG,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sB,6BCngBRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQyb,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxB/K,EAAW,EAAQ,GACnBgL,EAAc,EAAQ,IACtB2G,EAAc,EAAQ,IACtBC,EAAkB,EAAQ,IAC1B3G,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAC1BuG,EAAa,EAAQ,IACrBC,EAAkB,EAAQ,IAiBhCpnB,EAAQyb,YAhBR,SAAq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CA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,0BAA2B,CAC5C,sBACA,mBACA,gBACA,sBACA,kBACA,+BAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,SACA,gBACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,cAAe,CAChC,kBACA,kBACA,iBACA,UACA,WACA,QACA,iBACA,UACA,YACA,WACA,gBACA,aACA,mBACA,gBACA,YACA,aACA,YACA,YAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,8BAA+B,CAChD,mBACA,yBACA,8BACA,mBACA,yBACA,0BACA,4BACA,2BACA,2BACA,wBACA,uBACA,kBACA,6BACA,qBACA,wBACA,iCACA,kCACA,kCACA,iCACA,iCACA,yBACA,sCACA,kCACA,0BACA,yCACA,uCACA,qBACA,kBACA,wBACA,sBACA,wBACA,sBACA,gCACA,wBACA,iCACA,uBACA,sBACA,gCACA,+BACA,+BACA,sBACA,2BACA,0BACA,mCACA,yBACA,yBACA,wBACA,gCACA,4CACA,qCACA,wBACA,mBACA,6BACA,4BACA,sBACA,gCACA,8BACA,sBACA,sBACA,yBACA,2BACA,wBACA,gCACA,wBACA,sBACA,sBACA,sBACA,uBACA,iCACA,6BACA,sBACA,wBACA,yBACA,sCACA,2BACA,yBACA,0BACA,yBACA,yBACA,gBACA,yBACA,2BACA,qBACA,6BACA,6BACA,wBACA,wBACA,qBACA,wBACA,4BACA,2BACA,4BACA,qBACA,wBACA,8BACA,uBACA,yBACA,qBACA,sBACA,sBACA,8BACA,8BACA,yBACA,0BACA,6BACA,kCACA,+BACA,iCACA,mCACA,gCACA,yBACA,gCACA,8BACA,qCACA,4BACA,uBACA,iCACA,+BACA,+BACA,+BACA,8BACA,gCACA,gCACA,8BACA,6BACA,wBACA,0BACA,+BACA,4BACA,sCACA,oCACA,mCACA,6BACA,4BACA,8BACA,+BACA,6BACA,6BACA,qBACA,qBACA,uBACA,yBACA,sBACA,iBACA,6BACA,+BACA,gCACA,gCACA,+BACA,+BACA,uBACA,0BACA,+BACA,+BACA,0BACA,4BACA,2BACA,4BACA,2BACA,0BACA,iCACA,iCACA,0BACA,yBACA,+BACA,wBACA,wBACA,yBACA,yBACA,mBACA,kCACA,uBACA,6BACA,wBACA,+BACA,wBACA,8BACA,yBACA,gCACA,2BACA,0BACA,oCACA,wBACA,2BACA,kBACA,gCACA,kCACA,qCACA,iCACA,yBACA,4BAEJH,EAAYG,SAAS,wCAAyC,CAC1D,4BACA,4BACA,2BACA,qBACA,qBACA,kBACA,2BACA,oBACA,2BACA,sBACA,qBACA,0BACA,4BACA,4BACA,6BACA,iCACA,iCACA,mCACA,iCACA,gCACA,gCACA,0BACA,8BACA,sBACA,uBACA,sBACA,2BACA,2BACA,4BACA,0BACA,4BAEJH,EAAYG,SAAS,sCAAuC,CACxD,qBACA,0BACA,2BACA,mBACA,gBACA,4BACA,yBACA,sBACA,6BACA,kBACA,8BACA,uBACA,qBACA,qBACA,mBACA,iBACA,uBACA,8BACA,6BACA,kBACA,kBACA,0BACA,8BAEJH,EAAYG,SAAS,iBAAkB,CACnC,QACA,SACA,gBACA,SACA,MACA,SACA,OACA,WACA,SACA,OACA,QACA,SACA,QAC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","file":"js/bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 98);\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.FloatProvider = exports.UniformFloat = exports.UniformInt = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n const Uniform = (integer) => (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.UniformInt = Uniform(true);\r\n exports.UniformFloat = Uniform();\r\n exports.FloatProvider = (config) => ObjectWithType('worldgen/float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n base: core_1.NumberNode(config),\r\n spread: core_1.NumberNode({ min: 0 })\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:requirements': {\r\n terms: core_1.ListNode(Reference('condition')),\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ModelPath = exports.Path = exports.relativePath = void 0;\r\nfunction relativePath(start, relativePath) {\r\n return relativePath.reduce((path, e) => {\r\n if (e === 'pop') {\r\n return path.pop();\r\n }\r\n else {\r\n return path.push(e.push);\r\n }\r\n }, start);\r\n}\r\nexports.relativePath = relativePath;\r\n/**\r\n * Immutable helper class to represent a path in data\r\n */\r\nclass Path {\r\n /**\r\n * @param modelArr Initial array of path model elements. Empty if not given\r\n * @param contextArr Initial array of path context elements. Empty if not given\r\n */\r\n constructor(modelArr, contextArr) {\r\n this.modelArr = modelArr !== null && modelArr !== void 0 ? modelArr : [];\r\n this.contextArr = contextArr !== null && contextArr !== void 0 ? contextArr : [];\r\n }\r\n /**\r\n * The last model element of this path\r\n */\r\n last() {\r\n return this.modelArr[this.modelArr.length - 1];\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new Path(this.modelArr.slice(start, end), this.contextArr);\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new Path(this.modelArr.slice(1), this.contextArr);\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new Path(this.modelArr.slice(0, -1), this.contextArr);\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new Path([...this.modelArr, element], [...this.contextArr]);\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n if (typeof element === 'number')\r\n return this.copy();\r\n const newElement = element.startsWith('minecraft:') ? element.slice(10) : element;\r\n return new Path([...this.modelArr], [...this.contextArr, newElement]);\r\n }\r\n copy() {\r\n return new Path([...this.modelArr], [...this.contextArr]);\r\n }\r\n getArray() {\r\n return this.modelArr;\r\n }\r\n /**\r\n * Attaches a model to this path and all paths created from this\r\n * @param model\r\n */\r\n withModel(model) {\r\n return new ModelPath(model, this);\r\n }\r\n getContext() {\r\n return this.contextArr;\r\n }\r\n /**\r\n * Checks path equality\r\n * @param other path to compare\r\n */\r\n equals(other) {\r\n return other.modelArr.length === this.modelArr.length\r\n && other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path starts with another path\r\n * @param other path that this path should start with\r\n */\r\n startsWith(other) {\r\n if (this.modelArr.length < other.modelArr.length)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[i]);\r\n }\r\n /**\r\n * Checks if this path ends with another path\r\n * @param other parent path where this path should end with\r\n */\r\n endsWith(other) {\r\n const offset = this.modelArr.length - other.modelArr.length;\r\n if (offset < 0)\r\n return false;\r\n return other.modelArr.every((v, i) => v === this.modelArr[offset + i]);\r\n }\r\n toString() {\r\n return this.modelArr\r\n .map(e => (typeof e === 'string') ? `.${e}` : `[${e}]`)\r\n .join('')\r\n .replace(/^\\./, '');\r\n }\r\n forEach(fn, thisArg) {\r\n return this.modelArr.forEach(fn, thisArg);\r\n }\r\n}\r\nexports.Path = Path;\r\nclass ModelPath extends Path {\r\n constructor(model, path) {\r\n super(path === null || path === void 0 ? void 0 : path.modelArr, path === null || path === void 0 ? void 0 : path.contextArr);\r\n this.model = model;\r\n }\r\n getModel() {\r\n return this.model;\r\n }\r\n /**\r\n * Gets the data from the model if it was attached\r\n * @returns undefined, if no model was attached\r\n */\r\n get() {\r\n var _a;\r\n return (_a = this.model) === null || _a === void 0 ? void 0 : _a.get(this);\r\n }\r\n /**\r\n * Sets the value to the model if it was attached\r\n */\r\n set(value) {\r\n var _a;\r\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.set(this, value);\r\n }\r\n /**\r\n * A new path with the specific sliced module elements\r\n */\r\n slice(start, end) {\r\n return new ModelPath(this.model, super.slice(start, end));\r\n }\r\n /**\r\n * A new path with the first model element removed\r\n */\r\n shift() {\r\n return new ModelPath(this.model, super.shift());\r\n }\r\n /**\r\n * A new path with the last model element removed\r\n */\r\n pop() {\r\n return new ModelPath(this.model, super.pop());\r\n }\r\n /**\r\n * A new path with an element added at the end\r\n * @param element element to push at the end of the array\r\n */\r\n push(element) {\r\n return this.modelPush(element).contextPush(element);\r\n }\r\n /**\r\n * Push an element exclusivly to the model array\r\n * @param element\r\n */\r\n modelPush(element) {\r\n return new ModelPath(this.model, super.modelPush(element));\r\n }\r\n /**\r\n * Push an element exclusivly to the context array\r\n * @param element\r\n */\r\n contextPush(element) {\r\n return new ModelPath(this.model, super.contextPush(element));\r\n }\r\n copy() {\r\n return new ModelPath(this.model, super.copy());\r\n }\r\n}\r\nexports.ModelPath = ModelPath;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Errors = void 0;\r\n/**\r\n * Collects errors from data paths\r\n */\r\nclass Errors {\r\n constructor() {\r\n this.errors = [];\r\n }\r\n add(path, error, ...params) {\r\n this.errors.push({ path, error, params });\r\n return false;\r\n }\r\n get(path, exact = false) {\r\n return exact ? this.errors.filter(e => e.path.equals(path))\r\n : this.errors.filter(e => e.path.startsWith(path));\r\n }\r\n getAll() {\r\n return this.errors;\r\n }\r\n clear() {\r\n this.errors = [];\r\n }\r\n count() {\r\n return this.errors.length;\r\n }\r\n *[Symbol.iterator]() {\r\n for (const e of this.errors) {\r\n yield e;\r\n }\r\n }\r\n}\r\nexports.Errors = Errors;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n max_dist: core_1.NumberNode({ min: 0, max: 255, integer: true }),\r\n min_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n };\r\n schemas.register('pos_rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'pos_rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:axis_aligned_linear_pos': {\r\n axis: StringNode({ enum: ['x', 'y', 'z'] }),\r\n ...posTestFields\r\n },\r\n 'minecraft:linear_pos': posTestFields\r\n }\r\n }, { context: 'pos_rule_test', disableSwitchContext: true }));\r\n schemas.register('rule_test', core_1.ObjectNode({\r\n predicate_type: StringNode({ validator: 'resource', params: { pool: 'rule_test' } }),\r\n [core_1.Switch]: [{ push: 'predicate_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:blockstate_match': {\r\n block_state: Reference('block_state')\r\n },\r\n 'minecraft:random_block_match': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_blockstate_match': {\r\n block_state: Reference('block_state'),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:tag_match': {\r\n tag: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }\r\n }\r\n }, { context: 'rule_test', disableSwitchContext: true }));\r\n}\r\nexports.initProcessorListSchemas = initProcessorListSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ListNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.ListNode = (children, config) => {\r\n var _a, _b;\r\n const min = (_a = config === null || config === void 0 ? void 0 : config.minLength) !== null && _a !== void 0 ? _a : 0;\r\n const max = (_b = config === null || config === void 0 ? void 0 : config.maxLength) !== null && _b !== void 0 ? _b : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.minLength) && (config === null || config === void 0 ? void 0 : config.maxLength);\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'list',\r\n default: () => (config === null || config === void 0 ? void 0 : config.minLength) ? [...Array(min)].map(_ => children.default()) : [],\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, index) {\r\n return path.push(parseInt(index.toString())).contextPush('entry');\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && !Array.isArray(value)) {\r\n value = this.default();\r\n }\r\n if (!Array.isArray(value)) {\r\n errors.add(path, 'error.expected_list');\r\n return value;\r\n }\r\n else if (between && (value.length < min || value.length > max)) {\r\n if (min === max) {\r\n errors.add(path, 'error.invalid_list_range.exact', value.length, min);\r\n }\r\n else {\r\n errors.add(path, 'error.invalid_list_range.between', value.length, min, max);\r\n }\r\n }\r\n else if (value.length < min) {\r\n errors.add(path, 'error.invalid_list_range.smaller', value.length, min);\r\n }\r\n else if (value.length > max) {\r\n errors.add(path, 'error.invalid_list_range.larger', value.length, max);\r\n }\r\n return value.map((obj, index) => children.validate(path.push(index), obj, errors, options));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SwitchNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.SwitchNode = (cases) => {\r\n return {\r\n ...Node_1.Base,\r\n type(path) {\r\n return this.activeCase(path, true)\r\n .node.type(path);\r\n },\r\n category(path) {\r\n return this.activeCase(path, true)\r\n .node.category(path);\r\n },\r\n default: () => cases[0].node.default(),\r\n navigate(path, index) {\r\n var _a;\r\n const nextIndex = index + 1;\r\n return (_a = this.activeCase(path.slice(0, nextIndex))) === null || _a === void 0 ? void 0 : _a.node.navigate(path, index);\r\n },\r\n pathPush(path, key) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.pathPush(path, key)) !== null && _b !== void 0 ? _b : path;\r\n },\r\n suggest(path, value) {\r\n var _a, _b;\r\n return (_b = (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.suggest(path, value)) !== null && _b !== void 0 ? _b : cases\r\n .filter(c => c.match(path))\r\n .map(c => c.node.suggest(path, value))\r\n .reduce((p, c) => p.concat(c));\r\n },\r\n validate(path, value, errors, options) {\r\n let c = this.activeCase(path);\r\n if (c === undefined) {\r\n return value;\r\n }\r\n return c.node.validate(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = this.activeCase(path)) === null || _a === void 0 ? void 0 : _a.node.validationOption(path);\r\n },\r\n activeCase(path, fallback) {\r\n const sorter = (a, b) => { var _a, _b; return ((_a = b.priority) !== null && _a !== void 0 ? _a : 0) - ((_b = a.priority) !== null && _b !== void 0 ? _b : 0); };\r\n const matchedCases = cases.filter(c => c.match(path)).sort(sorter);\r\n if (fallback && matchedCases.length === 0) {\r\n return cases.sort(sorter)[0];\r\n }\r\n return (matchedCases.length > 0 ? matchedCases[0] : undefined);\r\n },\r\n hook(hook, path, ...args) {\r\n return this.activeCase(path, true)\r\n .node.hook(hook, path, ...args);\r\n },\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.quoteString = exports.escapeString = void 0;\r\nfunction escapeString(str) {\r\n return str.replace(/(\\\\|\")/g, '\\\\$1');\r\n}\r\nexports.escapeString = escapeString;\r\nfunction quoteString(str) {\r\n return `\"${escapeString(str)}\"`;\r\n}\r\nexports.quoteString = quoteString;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = exports.LocationFields = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n exports.LocationFields = {\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ enum: 'biome' })),\r\n feature: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n dimension: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n };\r\n schemas.register('location_predicate', core_1.ObjectNode(exports.LocationFields, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RangeConfig = {\r\n maximum: core_1.NumberNode({ integer: true }),\r\n bottom_offset: core_1.NumberNode({ integer: true }),\r\n top_offset: core_1.NumberNode({ integer: true })\r\n };\r\n const ChanceConfig = {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:chance': ChanceConfig,\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.NumberNode()\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n const RangeConfig = {\r\n bottom_inclusive: Reference('vertical_anchor'),\r\n top_inclusive: Reference('vertical_anchor')\r\n };\r\n const BiasedRangeConfig = {\r\n ...RangeConfig,\r\n cutoff: core_1.NumberNode({ integer: true })\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.NumberNode()\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: Reference('vertical_anchor'),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_with_water_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased_to_bottom': BiasedRangeConfig,\r\n 'minecraft:range_very_biased_to_bottom': BiasedRangeConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = exports.lootContext = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a;\r\n this.schema = schema;\r\n this.data = schema.default();\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n node = node[e];\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n node[e] = {};\r\n }\r\n node = node[e];\r\n });\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n let res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n res[k] = undefined;\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\r\n : () => []);\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = this.default() || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Common_1.Range(),\r\n duration: Common_1.Range()\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n }),\r\n ...conditions\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' })),\r\n ...conditions\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } })),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }))),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true }),\r\n ...conditions\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n ...conditions\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier')),\r\n ...conditions\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...conditions\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component')),\r\n ...conditions\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } }),\r\n ...conditions\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n }))),\r\n ...conditions\r\n }\r\n }\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:vanilla_layered': {\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings'))\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode({ min: -1, max: 1 }),\r\n temperature: core_1.NumberNode({ min: -1, max: 1 }),\r\n humidity: core_1.NumberNode({ min: -1, max: 1 }),\r\n weirdness: core_1.NumberNode({ min: -1, max: 1 }),\r\n offset: core_1.NumberNode({ min: -1, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }, { context: 'dimension_type' }), {\r\n default: () => Common_1.DefaultDimensionType\r\n }));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: (() => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true })\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true })\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true })\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n })()\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 6, max: 6 }), { default: () => 6 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 6,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 6,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: core_1.Opt(Common_1.Range())\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range())\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: core_1.Opt(Common_1.Range({ integer: true, min: 0, max: 15 }))\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Common_1.Range(),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: core_1.Opt(Common_1.Range()),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range()),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: core_1.Opt(Common_1.Range()),\r\n y: core_1.Opt(Common_1.Range()),\r\n z: core_1.Opt(Common_1.Range()),\r\n absolute: core_1.Opt(Common_1.Range()),\r\n horizontal: core_1.Opt(Common_1.Range())\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: core_1.Opt(Common_1.Range()),\r\n taken: core_1.Opt(Common_1.Range()),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.NumberNode({ integer: true })\r\n };\r\n const OreConfig = {\r\n state: Reference('block_state'),\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n target: Reference('rule_test')\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: Reference('block_pos')\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.BooleanNode(),\r\n crystal_beam_target: Reference('block_pos'),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.NumberNode({ integer: true }),\r\n centerZ: core_1.NumberNode({ integer: true }),\r\n radius: core_1.NumberNode({ integer: true }),\r\n height: core_1.NumberNode({ integer: true }),\r\n guarded: core_1.BooleanNode()\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.BooleanNode()\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:no_surface_ore': OreConfig,\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:spring_feature': {\r\n state: Reference('fluid_state'),\r\n rock_count: core_1.NumberNode({ integer: true }),\r\n hole_count: core_1.NumberNode({ integer: true }),\r\n requires_block_below: core_1.BooleanNode(),\r\n valid_blocks: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:tree': {\r\n max_water_depth: core_1.NumberNode({ integer: true }),\r\n ignore_vines: core_1.BooleanNode(),\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n minimum_size: Reference('feature_size'),\r\n trunk_provider: Reference('block_state_provider'),\r\n leaves_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 })\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n }\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n height: core_1.NumberNode({ integer: true }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), {\r\n default: () => Common_1.DefaultNoiseSettings\r\n }));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.BooleanNode()\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'killer',\r\n 'direct_killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n collections.register('banner_pattern', [\r\n 'base',\r\n 'square_bottom_left',\r\n 'square_bottom_right',\r\n 'square_top_left',\r\n 'square_top_right',\r\n 'stripe_bottom',\r\n 'stripe_top',\r\n 'stripe_left',\r\n 'stripe_right',\r\n 'stripe_center',\r\n 'stripe_middle',\r\n 'stripe_downright',\r\n 'stripe_downleft',\r\n 'small_stripes',\r\n 'cross',\r\n 'straight_cross',\r\n 'triangle_bottom',\r\n 'triangle_top',\r\n 'triangles_bottom',\r\n 'triangles_top',\r\n 'diagonal_left',\r\n 'diagonal_up_right',\r\n 'diagonal_up_left',\r\n 'diagonal_right',\r\n 'circle',\r\n 'rhombus',\r\n 'half_vertical',\r\n 'half_horizontal',\r\n 'half_vertical_right',\r\n 'half_horizontal_bottom',\r\n 'border',\r\n 'curly_border',\r\n 'gradient',\r\n 'gradient_up',\r\n 'bricks',\r\n 'globe',\r\n 'creeper',\r\n 'skull',\r\n 'flower',\r\n 'mojang',\r\n 'piglin'\r\n ]);\r\n collections.register('dye_color', [\r\n 'white',\r\n 'orange',\r\n 'magenta',\r\n 'light_blue',\r\n 'yellow',\r\n 'lime',\r\n 'pink',\r\n 'gray',\r\n 'light_gray',\r\n 'cyan',\r\n 'purple',\r\n 'blue',\r\n 'brown',\r\n 'green',\r\n 'red',\r\n 'black'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst ItemModifier_1 = require(\"./ItemModifier\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n ItemModifier_1.initItemModifierSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: Reference('int_bounds')\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds')\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: Reference('int_bounds'),\r\n occupied: Reference('int_bounds'),\r\n full: Reference('int_bounds')\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: Reference('int_bounds'),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: Reference('distance_predicate'),\r\n duration: Reference('int_bounds')\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: Reference('distance_predicate'),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: Reference('int_bounds')\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: Reference('float_bounds')\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases()\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\r\n seed: core_1.NumberNode({ integer: true }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:fixed': {\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })\r\n },\r\n 'minecraft:multi_noise': {\r\n preset: core_1.Opt(StringNode({ enum: ['nether'] })),\r\n altitude_noise: NoPreset(Reference('generator_biome_noise')),\r\n temperature_noise: NoPreset(Reference('generator_biome_noise')),\r\n humidity_noise: NoPreset(Reference('generator_biome_noise')),\r\n weirdness_noise: NoPreset(Reference('generator_biome_noise')),\r\n biomes: NoPreset(core_1.Mod(core_1.ListNode(Reference('generator_biome')), {\r\n default: () => [{\r\n biome: 'minecraft:plains'\r\n }]\r\n }))\r\n },\r\n 'minecraft:checkerboard': {\r\n scale: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 62 })),\r\n biomes: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }))\r\n },\r\n 'minecraft:vanilla_layered': {\r\n large_biomes: core_1.Opt(core_1.BooleanNode()),\r\n legacy_biome_init_layer: core_1.Opt(core_1.BooleanNode())\r\n }\r\n }\r\n }, { category: 'predicate', disableSwitchContext: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings'))\r\n },\r\n 'minecraft:flat': {\r\n settings: core_1.ObjectNode({\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n lakes: core_1.Opt(core_1.BooleanNode()),\r\n features: core_1.Opt(core_1.BooleanNode()),\r\n layers: core_1.ListNode(Reference('generator_layer')),\r\n structures: Reference('generator_structures')\r\n })\r\n }\r\n }\r\n }, { disableSwitchContext: true })\r\n }, { category: 'pool', context: 'dimension' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:fixed',\r\n seed,\r\n biome: 'minecraft:plains'\r\n },\r\n settings: 'minecraft:overworld'\r\n }\r\n };\r\n }\r\n }));\r\n schemas.register('generator_biome', core_1.Mod(core_1.ObjectNode({\r\n biome: StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } }),\r\n parameters: core_1.ObjectNode({\r\n altitude: core_1.NumberNode({ min: -1, max: 1 }),\r\n temperature: core_1.NumberNode({ min: -1, max: 1 }),\r\n humidity: core_1.NumberNode({ min: -1, max: 1 }),\r\n weirdness: core_1.NumberNode({ min: -1, max: 1 }),\r\n offset: core_1.NumberNode({ min: -1, max: 1 })\r\n })\r\n }, { context: 'generator_biome' }), {\r\n default: () => ({\r\n biome: 'minecraft:plains',\r\n parameters: {\r\n altitude: 0,\r\n temperature: 0,\r\n humidity: 0,\r\n weirdness: 0,\r\n offset: 0\r\n }\r\n })\r\n }));\r\n schemas.register('generator_biome_noise', core_1.Mod(core_1.ObjectNode({\r\n firstOctave: core_1.NumberNode({ integer: true }),\r\n amplitudes: core_1.ListNode(core_1.NumberNode())\r\n }, { context: 'generator_biome_noise' }), {\r\n default: () => ({\r\n firstOctave: -7,\r\n amplitudes: [1, 1]\r\n })\r\n }));\r\n}\r\nexports.initDimensionSchemas = initDimensionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionTypeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionTypeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('dimension_type', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$dimension_type', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n ultrawarm: core_1.BooleanNode(),\r\n natural: core_1.BooleanNode(),\r\n piglin_safe: core_1.BooleanNode(),\r\n respawn_anchor_works: core_1.BooleanNode(),\r\n bed_works: core_1.BooleanNode(),\r\n has_raids: core_1.BooleanNode(),\r\n has_skylight: core_1.BooleanNode(),\r\n has_ceiling: core_1.BooleanNode(),\r\n coordinate_scale: core_1.NumberNode({ min: 0.00001, max: 30000000 }),\r\n ambient_light: core_1.NumberNode(),\r\n fixed_time: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n logical_height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n effects: core_1.Opt(StringNode({ enum: ['minecraft:overworld', 'minecraft:the_nether', 'minecraft:the_end'] })),\r\n infiniburn: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 })\r\n }, { context: 'dimension_type' }), node => ({\r\n default: () => Common_1.DefaultDimensionType,\r\n validate: (path, value, errors, options) => {\r\n value = node.validate(path, value, errors, options);\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) + (value === null || value === void 0 ? void 0 : value.height) > 2047) {\r\n errors.add(path.push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.logical_height) > (value === null || value === void 0 ? void 0 : value.height)) {\r\n errors.add(path.push('logical_height'), 'error.logical_height');\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.height) % 16 !== 0) {\r\n errors.add(path.push('height'), 'error.height_multiple', 16);\r\n }\r\n if ((value === null || value === void 0 ? void 0 : value.min_y) % 16 !== 0) {\r\n errors.add(path.push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n}\r\nexports.initDimensionTypeSchemas = initDimensionTypeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initItemModifierSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initItemModifierSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('item_modifier', core_1.ObjectOrList(Reference('function'), { choiceContext: 'function' }));\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('condition')))\r\n };\r\n schemas.register('function', core_1.Mod(core_1.ObjectNode({\r\n function: StringNode({ validator: 'resource', params: { pool: 'loot_function_type' } }),\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => [{\r\n function: 'minecraft:set_count',\r\n count: 1\r\n }]\r\n }));\r\n}\r\nexports.initItemModifierSchemas = initItemModifierSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionIDSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionIDSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Reference('number_provider'),\r\n bonus_rolls: core_1.Opt(Reference('number_provider')),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: Common_1.FunctionCases(conditions, copySourceSwtichNode, entitySourceSwtichNode)\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionIDSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases(entitySourceSwtichNode)\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Reference('number_provider'),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst CURRENT_PACK_FORMAT = 7;\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: CURRENT_PACK_FORMAT, max: CURRENT_PACK_FORMAT }), {\r\n default: () => CURRENT_PACK_FORMAT,\r\n canUpdate: (_p, v) => v !== CURRENT_PACK_FORMAT,\r\n update: () => [{ name: 'pack_format', params: [CURRENT_PACK_FORMAT], newValue: CURRENT_PACK_FORMAT }]\r\n }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: CURRENT_PACK_FORMAT,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPredicatesSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPredicatesSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const StateChoice = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode(),\r\n change: v => (typeof v === 'boolean' || typeof v === 'number') ? v.toString() : ''\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => (typeof v === 'string') ? parseInt(v) : 0\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }),\r\n change: v => (typeof v === 'number') ? ({ min: v, max: v }) : ({})\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => v === 'true' || v === 1\r\n }\r\n ]);\r\n schemas.register('item_predicate', core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } })),\r\n count: Reference('int_bounds'),\r\n durability: Reference('int_bounds'),\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } })),\r\n enchantments: core_1.Opt(core_1.ListNode(Reference('enchantment_predicate')))\r\n }, { context: 'item' }));\r\n schemas.register('enchantment_predicate', core_1.ObjectNode({\r\n enchantment: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })),\r\n levels: Reference('int_bounds')\r\n }, { context: 'enchantment' }));\r\n schemas.register('block_predicate', core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block', id: ['pop', { push: 'block' }] } } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice, { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n }, { context: 'block' }));\r\n schemas.register('fluid_predicate', core_1.ObjectNode({\r\n fluid: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'fluid' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/fluid' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StateChoice))\r\n }, { context: 'fluid' }));\r\n schemas.register('location_predicate', core_1.ObjectNode({\r\n position: core_1.Opt(core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds')\r\n })),\r\n biome: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$worldgen/biome' } })),\r\n feature: core_1.Opt(StringNode({ enum: collections.get('worldgen/structure_feature').map(v => v.slice(10)) })),\r\n dimension: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n light: core_1.Opt(core_1.ObjectNode({\r\n light: Reference('int_bounds')\r\n })),\r\n smokey: core_1.Opt(core_1.BooleanNode()),\r\n block: core_1.Opt(Reference('block_predicate')),\r\n fluid: core_1.Opt(Reference('fluid_predicate'))\r\n }, { context: 'location' }));\r\n schemas.register('statistic_predicate', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'stat_type' } }),\r\n stat: StringNode(),\r\n value: Reference('int_bounds'),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:mined': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'block' } })\r\n },\r\n 'minecraft:crafted': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:used': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:broken': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:picked_up': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:dropped': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'item' } })\r\n },\r\n 'minecraft:killed': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:killed_by': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'entity_type' } })\r\n },\r\n 'minecraft:custom': {\r\n stat: StringNode({ validator: 'resource', params: { pool: 'custom_stat' } })\r\n }\r\n }\r\n }));\r\n schemas.register('player_predicate', core_1.ObjectNode({\r\n gamemode: core_1.Opt(StringNode({ enum: 'gamemode' })),\r\n level: Reference('int_bounds'),\r\n advancements: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$advancement' } }), core_1.ChoiceNode([\r\n { type: 'boolean', node: core_1.BooleanNode(), change: _ => true },\r\n {\r\n type: 'object', node: core_1.MapNode(StringNode(), core_1.BooleanNode())\r\n }\r\n ]))),\r\n recipes: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }), core_1.BooleanNode())),\r\n stats: core_1.Opt(core_1.ListNode(Reference('statistic_predicate')))\r\n }, { context: 'player' }));\r\n schemas.register('status_effect_predicate', core_1.ObjectNode({\r\n amplifier: Reference('int_bounds'),\r\n duration: Reference('int_bounds'),\r\n ambient: core_1.Opt(core_1.BooleanNode()),\r\n visible: core_1.Opt(core_1.BooleanNode())\r\n }, { context: 'status_effect' }));\r\n schemas.register('distance_predicate', core_1.ObjectNode({\r\n x: Reference('float_bounds'),\r\n y: Reference('float_bounds'),\r\n z: Reference('float_bounds'),\r\n absolute: Reference('float_bounds'),\r\n horizontal: Reference('float_bounds')\r\n }, { context: 'distance' }));\r\n schemas.register('entity_predicate', core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'entity_type', allowTag: true } })),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:entity', id: ['pop', { push: 'type' }] } } })),\r\n team: core_1.Opt(StringNode({ validator: 'team' })),\r\n location: core_1.Opt(Reference('location_predicate')),\r\n distance: core_1.Opt(Reference('distance_predicate')),\r\n flags: core_1.Opt(core_1.ObjectNode({\r\n is_on_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_sneaking: core_1.Opt(core_1.BooleanNode()),\r\n is_sprinting: core_1.Opt(core_1.BooleanNode()),\r\n is_swimming: core_1.Opt(core_1.BooleanNode()),\r\n is_baby: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n equipment: core_1.Opt(core_1.MapNode(StringNode({ enum: 'slot' }), Reference('item_predicate'))),\r\n vehicle: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n player: core_1.Opt(Reference('player_predicate')),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'water_ambient',\r\n 'ambient',\r\n 'misc',\r\n 'water_creature',\r\n 'creature',\r\n 'monster'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n debug_settings: core_1.Opt(core_1.ObjectNode({\r\n debug_mode: core_1.Opt(core_1.BooleanNode()),\r\n air_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': {\r\n bottom_inclusive: Reference('vertical_anchor'),\r\n top_inclusive: Reference('vertical_anchor'),\r\n y_scale: Common_1.UniformInt(),\r\n distanceFactor: Common_1.FloatProvider({ min: 0, max: 1 }),\r\n vertical_rotation: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode(),\r\n }\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.BooleanNode(),\r\n project: core_1.BooleanNode(),\r\n need_water: core_1.BooleanNode(),\r\n xspread: core_1.NumberNode({ integer: true }),\r\n yspread: core_1.NumberNode({ integer: true }),\r\n zspread: core_1.NumberNode({ integer: true }),\r\n tries: core_1.NumberNode({ integer: true }),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.UniformInt({ min: 0, max: 4, maxSpread: 4 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.NumberNode({ integer: true })\r\n };\r\n const OreConfig = {\r\n size: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n discard_chance_on_air_exposure: core_1.NumberNode({ min: 0, max: 1 }),\r\n targets: core_1.ListNode(core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\r\n }))\r\n };\r\n const CountConfig = {\r\n count: Common_1.UniformInt({ min: -10, max: 128, maxSpread: 128 })\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.UniformInt(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.UniformInt({ min: 0, max: 2, maxSpread: 1 }),\r\n height: Common_1.UniformInt({ min: 1, max: 5, maxSpread: 5 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n rim_size: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n radius: Common_1.UniformInt({ min: 1, max: 64, maxSpread: 64 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.UniformInt({ min: 0, max: 64, maxSpread: 64 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness_mean: core_1.NumberNode({ min: 0, max: 1 }),\r\n wetness_deviation: core_1.NumberNode({ min: 0, max: 1 }),\r\n chance_of_dripstone_column_at_max_distance_from_center: core_1.NumberNode({ min: 0, max: 1 }),\r\n max_distance_from_edge_affecting_chance_of_dripstone_column: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n max_distance_from_center_affecting_height_bias: core_1.NumberNode({ integer: true, min: 1, max: 64 })\r\n },\r\n 'minecraft:emerald_ore': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state')\r\n },\r\n 'minecraft:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: Reference('block_pos')\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.BooleanNode(),\r\n crystal_beam_target: Reference('block_pos'),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.NumberNode({ integer: true }),\r\n centerZ: core_1.NumberNode({ integer: true }),\r\n radius: core_1.NumberNode({ integer: true }),\r\n height: core_1.NumberNode({ integer: true }),\r\n guarded: core_1.BooleanNode()\r\n }))\r\n },\r\n 'minecraft:fill_layer': {\r\n state: Reference('block_state'),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 255 })\r\n },\r\n 'minecraft:flower': RandomPatchConfig,\r\n 'minecraft:forest_rock': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:fossil': {\r\n max_empty_corners_allowed: core_1.NumberNode({ integer: true, min: 0, max: 7 }),\r\n fossil_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n overlay_structures: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$structure' } })),\r\n fossil_processors: ProcessorList_1.Processors,\r\n overlay_processors: ProcessorList_1.Processors,\r\n },\r\n 'minecraft:geode': {\r\n blocks: core_1.ObjectNode({\r\n filling_provider: Reference('block_state_provider'),\r\n inner_layer_provider: Reference('block_state_provider'),\r\n alternate_inner_layer_provider: Reference('block_state_provider'),\r\n middle_layer_provider: Reference('block_state_provider'),\r\n outer_layer_provider: Reference('block_state_provider'),\r\n inner_placements: core_1.ListNode(Reference('block_state'))\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n min_outer_wall_distance: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_outer_wall_distance: core_1.Opt(core_1.NumberNode({ min: 1, max: 20, integer: true })),\r\n min_distribution_points: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_distribution_points: core_1.Opt(core_1.NumberNode({ min: 1, max: 20, integer: true })),\r\n min_point_offset: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n max_point_offset: core_1.Opt(core_1.NumberNode({ min: 1, max: 10, integer: true })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.UniformInt()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.BooleanNode()\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.UniformInt({ min: 1, max: 30, maxSpread: 30 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.UniformInt()\r\n },\r\n 'minecraft:ore': OreConfig,\r\n 'minecraft:random_patch': RandomPatchConfig,\r\n 'minecraft:random_boolean_selector': {\r\n feature_false: Feature,\r\n feature_true: Feature\r\n },\r\n 'minecraft:random_selector': {\r\n features: core_1.ListNode(core_1.ObjectNode({\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n feature: Feature\r\n })),\r\n default: Feature\r\n },\r\n 'minecraft:root_system': {\r\n required_vertical_space_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_placement_attempts: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n root_column_max_height: core_1.NumberNode({ integer: true, min: 1, max: 4096 }),\r\n hanging_root_radius: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n hanging_roots_vertical_span: core_1.NumberNode({ integer: true, min: 0, max: 16 }),\r\n hanging_root_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': CountConfig,\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_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.UniformInt({ min: 1, max: 32, maxSpread: 32 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n offset: Common_1.UniformInt({ min: 0, max: 8, maxSpread: 8 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.UniformInt({ min: 1, max: 256, maxSpread: 256 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.UniformInt({ min: 0, max: 16, maxSpread: 8 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.UniformInt(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n min_size: core_1.NumberNode({ integer: true }),\r\n extra_size: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const templatePoolConfig = {\r\n start_pool: StringNode({ validator: 'resource', params: { pool: '$worldgen/template_pool' } }),\r\n size: core_1.NumberNode({ integer: true })\r\n };\r\n schemas.register('configured_structure_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bastion_remnant': templatePoolConfig,\r\n 'minecraft:buried_treasure': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:mineshaft': {\r\n type: StringNode({ enum: ['normal', 'mesa'] }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:ocean_ruin': {\r\n biome_temp: StringNode({ enum: ['cold', 'warm'] }),\r\n large_probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n cluster_probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:pillager_outpost': templatePoolConfig,\r\n 'minecraft:ruined_portal': {\r\n portal_type: StringNode({ enum: ['standard', 'desert', 'jungle', 'mountain', 'nether', 'ocean', 'swamp'] })\r\n },\r\n 'minecraft:shipwreck': {\r\n is_beached: core_1.BooleanNode()\r\n },\r\n 'minecraft:village': templatePoolConfig\r\n }\r\n }, { context: 'structure_feature', disableSwitchContext: true })\r\n }, { context: 'structure_feature' }), {\r\n default: () => ({\r\n type: 'minecraft:bastion_remnant',\r\n config: {\r\n start_pool: 'minecraft:bastion/starts',\r\n size: 6\r\n }\r\n })\r\n }));\r\n}\r\nexports.initStructureFeatureSchemas = initStructureFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSurfaceBuilderSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initSurfaceBuilderSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('configured_surface_builder', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/surface_builder' } }),\r\n config: core_1.ObjectNode({\r\n top_material: Reference('block_state'),\r\n under_material: Reference('block_state'),\r\n underwater_material: Reference('block_state'),\r\n }, { context: 'surface_builder' })\r\n }, { context: 'surface_builder' }), {\r\n default: () => ({\r\n type: 'minecraft:default',\r\n config: {\r\n top_material: {\r\n Name: 'minecraft:grass_block',\r\n Properties: {\r\n snowy: 'false'\r\n }\r\n },\r\n under_material: {\r\n Name: 'minecraft:dirt'\r\n },\r\n underwater_material: {\r\n Name: 'minecraft:gravel'\r\n }\r\n }\r\n })\r\n }));\r\n}\r\nexports.initSurfaceBuilderSchemas = initSurfaceBuilderSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTemplatePoolSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initTemplatePoolSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('template_pool', core_1.Mod(core_1.ObjectNode({\r\n name: StringNode(),\r\n fallback: StringNode(),\r\n elements: core_1.ListNode(Reference('template_weighted_element'))\r\n }, { context: 'template_pool' }), {\r\n default: () => ({\r\n fallback: 'minecraft:empty',\r\n elements: [\r\n {\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n }\r\n ]\r\n })\r\n }));\r\n schemas.register('template_weighted_element', core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n element: Reference('template_element')\r\n }, { category: 'pool' }), {\r\n default: () => ({\r\n weight: 1,\r\n element: {\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n }\r\n })\r\n }));\r\n schemas.register('template_element', core_1.Mod(core_1.ObjectNode({\r\n element_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_pool_element' } }),\r\n projection: StringNode({ enum: ['rigid', 'terrain_matching'] }),\r\n [core_1.Switch]: [{ push: 'element_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:feature_pool_element': {\r\n feature: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:legacy_single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n },\r\n 'minecraft:list_pool_element': {\r\n elements: core_1.ListNode(Reference('template_element'))\r\n },\r\n 'minecraft:single_pool_element': {\r\n location: StringNode({ validator: 'resource', params: { pool: '$structure' } }),\r\n processors: ProcessorList_1.Processors\r\n }\r\n }\r\n }, { context: 'template_element', disableSwitchContext: true }), {\r\n default: () => ({\r\n element_type: 'minecraft:single_pool_element',\r\n projection: 'rigid',\r\n processors: 'minecraft:empty'\r\n })\r\n }));\r\n}\r\nexports.initTemplatePoolSchemas = initTemplatePoolSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initWorldSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('world_settings', core_1.Mod(core_1.ObjectNode({\r\n generate_features: core_1.BooleanNode(),\r\n bonus_chest: core_1.BooleanNode(),\r\n seed: core_1.NumberNode({ integer: true }),\r\n dimensions: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: '$dimension' } }), Reference('dimension'))\r\n }, { context: 'world_settings' }), {\r\n default: () => {\r\n const seed = Math.floor(Math.random() * (4294967296)) - 2147483648;\r\n return {\r\n generate_features: true,\r\n bonus_chest: false,\r\n seed,\r\n dimensions: {\r\n 'minecraft:overworld': {\r\n type: 'minecraft:overworld',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:vanilla_layered',\r\n seed\r\n },\r\n settings: 'minecraft:overworld',\r\n }\r\n },\r\n 'minecraft:the_nether': {\r\n type: 'minecraft:the_nether',\r\n generator: {\r\n type: 'minecraft:noise',\r\n seed,\r\n biome_source: {\r\n type: 'minecraft:multi_noise',\r\n seed,\r\n humidity_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n altitude_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n weirdness_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n temperature_noise: {\r\n firstOctave: -7,\r\n amplitudes: [1.0, 1.0]\r\n },\r\n biomes: [\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: 0.0 },\r\n biome: 'minecraft:nether_wastes'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.0, humidity: -0.5 },\r\n biome: 'minecraft:soul_sand_valley'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.0, temperature: 0.4, humidity: 0.0 },\r\n biome: 'minecraft:crimson_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.375, temperature: 0.0, humidity: 0.5 },\r\n biome: 'minecraft:warped_forest'\r\n },\r\n {\r\n parameters: { altitude: 0.0, weirdness: 0.0, offset: 0.175, temperature: -0.5, humidity: 0.0 },\r\n biome: 'minecraft:basalt_deltas'\r\n }\r\n ]\r\n },\r\n settings: 'minecraft:nether'\r\n }\r\n },\r\n 'minecraft:the_end': {\r\n type: \"minecraft:the_end\",\r\n generator: {\r\n type: \"minecraft:noise\",\r\n seed,\r\n biome_source: {\r\n type: \"minecraft:the_end\",\r\n seed\r\n },\r\n settings: \"minecraft:end\"\r\n }\r\n }\r\n }\r\n };\r\n }\r\n }));\r\n}\r\nexports.initWorldSettingsSchemas = initWorldSettingsSchemas;\r\n","// A port of an algorithm by Johannes Baagøe , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n","const dec2hex = (dec) => ('0' + dec.toString(16)).substr(-2);\nexport function hexId(length = 12) {\n var arr = new Uint8Array(length / 2);\n window.crypto.getRandomValues(arr);\n return Array.from(arr, dec2hex).join('');\n}\nexport function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>')\n .replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n}\nexport function hashString(s) {\n let h = 0;\n for (let i = 0; i < s.length; i++)\n h = Math.imul(31, h) + s.charCodeAt(i) | 0;\n return h;\n}\nexport function stringToColor(str) {\n const h = Math.abs(hashString(str));\n return [h % 256, (h >> 8) % 256, (h >> 16) % 256];\n}\nexport function clamp(a, b, c) {\n return Math.max(a, Math.min(b, c));\n}\nexport function clampedLerp(a, b, c) {\n if (c < 0) {\n return a;\n }\n else if (c > 1) {\n return b;\n }\n else {\n return lerp(c, a, b);\n }\n}\nexport function lerp(a, b, c) {\n return b + a * (c - b);\n}\nexport function lerp2(a, b, c, d, e, f) {\n return lerp(b, lerp(a, c, d), lerp(a, e, f));\n}\nexport function lerp3(a, b, c, d, e, f, g, h, i, j, k) {\n return lerp(c, lerp2(a, b, d, e, f, g), lerp2(a, b, h, i, j, k));\n}\nexport function smoothstep(x) {\n return x * x * x * (x * (x * 6 - 15) + 10);\n}\n","import { hexId } from \"../Utils\";\nexport class Property {\n constructor(value) {\n this.value = value;\n this.watchers = [];\n }\n set(value) {\n if (this.value === value)\n return;\n const oldValue = this.value;\n this.value = value;\n this.watchers.forEach(w => w.watcher(this.value, oldValue));\n }\n get() {\n return this.value;\n }\n watchRun(watcher, name) {\n watcher(this.value, null);\n return this.watch(watcher, name);\n }\n watch(watcher, name) {\n name = name !== null && name !== void 0 ? name : hexId();\n const w = this.watchers.find(w => w.name === name);\n if (w) {\n w.watcher = watcher;\n }\n else {\n this.watchers.push({ name, watcher });\n }\n return this;\n }\n}\n","import { Property } from './Property';\nexport class LocalStorageProperty extends Property {\n constructor(id, fallback) {\n var _a;\n super((_a = localStorage.getItem(id)) !== null && _a !== void 0 ? _a : fallback);\n this.id = id;\n }\n set(value) {\n super.set(value);\n localStorage.setItem(this.id, value);\n }\n get() {\n return this.value;\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { App, checkVersion } from './App';\nimport config from '../config.json';\n['1.15', '1.16', '1.17'].forEach(v => localStorage.removeItem(`cache_${v}`));\nconst CACHE_NAME = `misode-v1`;\nconst mcdataUrl = 'https://raw.githubusercontent.com/Arcensoth/mcdata';\nconst vanillaDatapackUrl = 'https://raw.githubusercontent.com/SPGoding/vanilla-datapack';\nconst refs = [\n {\n id: 'mcdata_master',\n hash: __MCDATA_MASTER_HASH__,\n url: mcdataUrl\n },\n {\n id: 'vanilla_datapack_summary',\n hash: __VANILLA_DATAPACK_SUMMARY_HASH__,\n url: vanillaDatapackUrl\n },\n];\nexport function fetchData(target, versionId) {\n return __awaiter(this, void 0, void 0, function* () {\n const version = config.versions.find(v => v.id === versionId);\n if (!version)\n return;\n if (version.dynamic) {\n yield Promise.all(refs\n .filter(r => localStorage.getItem(`cached_${r.id}`) !== r.hash)\n .map((r) => __awaiter(this, void 0, void 0, function* () {\n yield deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`));\n localStorage.setItem(`cached_${r.id}`, r.hash);\n })));\n }\n yield Promise.all([\n fetchRegistries(version, target),\n fetchBlockStateMap(version),\n fetchDynamicRegistries(version, target)\n ]);\n });\n}\nfunction fetchRegistries(version, target) {\n return __awaiter(this, void 0, void 0, function* () {\n const registries = config.registries\n .filter(r => !r.dynamic)\n .filter(r => checkVersion(version.id, r.minVersion, r.maxVersion));\n if (checkVersion(version.id, undefined, '1.15')) {\n const url = `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/registries.json`;\n try {\n const data = yield getData(url, (data) => {\n const res = {};\n Object.keys(data).forEach(k => {\n res[k.slice(10)] = Object.keys(data[k].entries);\n });\n return res;\n });\n registries.forEach(r => {\n var _a;\n target.register(r.id, (_a = data[r.id]) !== null && _a !== void 0 ? _a : []);\n });\n }\n catch (e) {\n console.warn(`Error occurred while fetching registries:`, e);\n }\n }\n else {\n return Promise.all(registries.map((r) => __awaiter(this, void 0, void 0, function* () {\n try {\n const url = r.path\n ? `${mcdataUrl}/${version.refs.mcdata_master}/${r.path}/data.min.json`\n : `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/registries/${r.id}/data.min.json`;\n target.register(r.id, yield getData(url, v => v.values));\n }\n catch (e) {\n console.warn(`Error occurred while registry ${r.id}:`, e);\n }\n })));\n }\n });\n}\nfunction fetchBlockStateMap(version) {\n return __awaiter(this, void 0, void 0, function* () {\n if (checkVersion(version.id, undefined, '1.16')) {\n const url = (checkVersion(version.id, undefined, '1.15'))\n ? `${mcdataUrl}/${version.refs.mcdata_master}/generated/reports/blocks.json`\n : `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/data.min.json`;\n try {\n const data = yield getData(url, (data) => {\n const res = {};\n Object.keys(data).forEach(b => {\n res[b] = {\n properties: data[b].properties,\n default: data[b].states.find((s) => s.default).properties\n };\n });\n return res;\n });\n App.blockStateRegistry = data;\n }\n catch (e) {\n console.warn(`Error occurred while fetching block state map:`, e);\n }\n }\n else {\n const url = `${mcdataUrl}/${version.refs.mcdata_master}/processed/reports/blocks/simplified/data.min.json`;\n try {\n App.blockStateRegistry = yield getData(url);\n }\n catch (e) {\n console.warn(`Error occurred while fetching block state map:`, e);\n }\n }\n });\n}\nfunction fetchDynamicRegistries(version, target) {\n return __awaiter(this, void 0, void 0, function* () {\n const registries = config.registries\n .filter(r => r.dynamic)\n .filter(r => checkVersion(version.id, r.minVersion, r.maxVersion));\n if (checkVersion(version.id, '1.16')) {\n const url = `${vanillaDatapackUrl}/${version.refs.vanilla_datapack_summary}/summary/flattened.min.json`;\n try {\n const data = yield getData(url);\n registries.forEach(r => {\n target.register(r.id, data[r.id]);\n });\n }\n catch (e) {\n console.warn(`Error occurred while fetching dynamic registries:`, e);\n }\n }\n });\n}\nexport function fetchPreset(version, registry, id) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const res = yield fetch(`${vanillaDatapackUrl}/${version.refs.vanilla_datapack_data}/data/minecraft/${registry}/${id}.json`);\n return yield res.json();\n }\n catch (e) {\n console.warn(`Error occurred while fetching ${registry} preset ${id}:`, e);\n }\n });\n}\nfunction getData(url, fn = (v) => v) {\n return __awaiter(this, void 0, void 0, function* () {\n const cache = yield caches.open(CACHE_NAME);\n const cacheResponse = yield cache.match(url);\n if (cacheResponse && cacheResponse.ok) {\n return yield cacheResponse.json();\n }\n const fetchResponse = yield fetch(url);\n const responseData = fn(yield fetchResponse.json());\n yield cache.put(url, new Response(JSON.stringify(responseData)));\n return responseData;\n });\n}\nfunction deleteMatching(matches) {\n return __awaiter(this, void 0, void 0, function* () {\n const cache = yield caches.open(CACHE_NAME);\n const promises = [];\n for (const request of yield cache.keys()) {\n if (matches(request.url)) {\n promises.push(cache.delete(request));\n }\n }\n return (yield Promise.all(promises)).length > 0;\n });\n}\n","export const Octicon = {\n archive: '',\n arrow_both: '',\n arrow_left: '',\n arrow_right: '',\n chevron_down: '',\n chevron_right: '',\n clippy: '',\n code: '',\n dash: '',\n download: '',\n eye: '',\n eye_closed: '',\n fold: '',\n gear: '',\n globe: '',\n history: '',\n info: '',\n issue_opened: '',\n kebab_horizontal: '',\n link: '',\n mark_github: '',\n moon: '',\n note: '',\n package: '',\n play: '',\n plus: '',\n plus_circle: '',\n search: '',\n square: '',\n square_fill: '',\n sun: '',\n tag: '',\n trashcan: '',\n three_bars: '',\n unfold: '',\n x: '',\n};\n","import { lerp3, smoothstep } from '../../Utils';\nexport class ImprovedNoise {\n constructor(random) {\n this.xo = random() * 256;\n this.yo = random() * 256;\n this.zo = random() * 256;\n this.p = Array(256);\n for (let i = 0; i < 256; i += 1) {\n this.p[i] = i;\n }\n for (let i = 0; i < 256; i += 1) {\n const n = random.int32() % (256 - i);\n const b = this.p[i];\n this.p[i] = this.p[i + n];\n this.p[i + n] = b;\n }\n }\n noise(x, y, z, a, b) {\n const x2 = x + this.xo;\n const y2 = y + this.yo;\n const z2 = z + this.zo;\n const x3 = Math.floor(x2);\n const y3 = Math.floor(y2);\n const z3 = Math.floor(z2);\n const x4 = x2 - x3;\n const y4 = y2 - y3;\n const z4 = z2 - z3;\n const x5 = smoothstep(x4);\n const y5 = smoothstep(y4);\n const z5 = smoothstep(z4);\n let y6 = 0;\n if (a !== 0) {\n y6 = Math.floor(Math.min(b, y4) / a) * a;\n }\n return this.sampleAndLerp(x3, y3, z3, x4, y4 - y6, z4, x5, y5, z5);\n }\n gradDot(a, b, c, d) {\n const grad = ImprovedNoise.GRADIENT[a & 15];\n return grad[0] * b + grad[1] * c + grad[2] * d;\n }\n P(i) {\n return this.p[i & 255] & 255;\n }\n sampleAndLerp(a, b, c, d, e, f, g, h, i) {\n const j = this.P(a) + b;\n const k = this.P(j) + c;\n const l = this.P(j + 1) + c;\n const m = this.P(a + 1) + b;\n const n = this.P(m) + c;\n const o = this.P(m + 1) + c;\n const p = this.gradDot(this.P(k), d, e, f);\n const q = this.gradDot(this.P(n), d - 1, e, f);\n const r = this.gradDot(this.P(l), d, e - 1, f);\n const s = this.gradDot(this.P(o), d - 1, e - 1, f);\n const t = this.gradDot(this.P(k + 1), d, e, f - 1);\n const u = this.gradDot(this.P(n + 1), d - 1, e, f - 1);\n const v = this.gradDot(this.P(l + 1), d, e - 1, f - 1);\n const w = this.gradDot(this.P(o + 1), d - 1, e - 1, f - 1);\n return lerp3(g, h, i, p, q, r, s, t, u, v, w);\n }\n}\nImprovedNoise.GRADIENT = [[1, 1, 0], [-1, 1, 0], [1, -1, 0], [-1, -1, 0], [1, 0, 1], [-1, 0, 1], [1, 0, -1], [-1, 0, -1], [0, 1, 1], [0, -1, 1], [0, 1, -1], [0, -1, -1], [1, 1, 0], [0, -1, 1], [-1, 1, 0], [0, -1, -1]];\n","import seedrandom from 'seedrandom';\nimport { ImprovedNoise } from \"./ImprovedNoise\";\nexport class PerlinNoise {\n constructor(seed, firstOctave, amplitudes) {\n this.amplitudes = amplitudes;\n this.noiseLevels = Array(this.amplitudes.length);\n for (let i = 0; i < this.amplitudes.length; i += 1) {\n this.noiseLevels[i] = new ImprovedNoise(seedrandom(seed));\n }\n this.lowestFreqInputFactor = Math.pow(2, firstOctave);\n this.lowestFreqValueFactor = Math.pow(2, (amplitudes.length - 1)) / (Math.pow(2, amplitudes.length) - 1);\n }\n static fromRange(seed, min, max) {\n return new PerlinNoise(seed, min, Array(max - min + 1).fill(1));\n }\n getValue(x, y, z, a = 0, b = 0, fixY = false) {\n let value = 0;\n let inputF = this.lowestFreqInputFactor;\n let valueF = this.lowestFreqValueFactor;\n for (let i = 0; i < this.noiseLevels.length; i += 1) {\n const noise = this.noiseLevels[i];\n if (noise) {\n value += this.amplitudes[i] * noise.noise(PerlinNoise.wrap(x * inputF), fixY ? -noise.yo : PerlinNoise.wrap(y * inputF), PerlinNoise.wrap(z * inputF), a * inputF, b * inputF) * valueF;\n }\n inputF *= 2;\n valueF /= 2;\n }\n return value;\n }\n getOctaveNoise(i) {\n return this.noiseLevels[this.noiseLevels.length - 1 - i];\n }\n static wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n","import { PerlinNoise } from './PerlinNoise';\nexport class NormalNoise {\n constructor(seed, firstOctave, amplitudes) {\n this.first = new PerlinNoise(seed, firstOctave, amplitudes);\n this.second = new PerlinNoise(seed + 'a', firstOctave, amplitudes);\n let min = +Infinity;\n let max = -Infinity;\n for (let i = 0; i < amplitudes.length; i += 1) {\n if (amplitudes[i] !== 0) {\n min = Math.min(min, i);\n max = Math.max(max, i);\n }\n }\n const expectedDeviation = 0.1 * (1 + 1 / (max - min + 1));\n this.valueFactor = (1 / 6) / expectedDeviation;\n }\n getValue(x, y, z) {\n const x2 = x * 1.0181268882175227;\n const y2 = y * 1.0181268882175227;\n const z2 = z * 1.0181268882175227;\n return (this.first.getValue(x, y, z) + this.second.getValue(x2, y2, z2)) * this.valueFactor;\n }\n wrap(value) {\n return value - Math.floor(value / 3.3554432E7 + 0.5) * 3.3554432E7;\n }\n}\n","export class Preview {\n constructor() {\n this.redraw = () => { };\n }\n dirty(path) {\n return JSON.stringify(this.state) !== JSON.stringify(path.get());\n }\n menu(view, redraw) {\n return '';\n }\n onDrag(dx, dy) { }\n}\n","import { Path } from \"@mcschema/core\";\nimport { Octicon } from \"../components/Octicon\";\nimport { Property } from \"../state/Property\";\nimport { hexId, stringToColor } from \"../Utils\";\nimport { NormalNoise } from './noise/NormalNoise';\nimport { Preview } from './Preview';\nconst LOCAL_STORAGE_BIOME_COLORS = 'biome_colors';\nexport class BiomeNoisePreview extends Preview {\n constructor() {\n var _a;\n super();\n this.offsetX = 0;\n this.offsetY = 0;\n this.seed = hexId();\n this.viewScale = new Property(0);\n this.biomeColors = new Property({});\n this.biomeColors.set(JSON.parse((_a = localStorage.getItem(LOCAL_STORAGE_BIOME_COLORS)) !== null && _a !== void 0 ? _a : '{}'));\n this.noise = [];\n this.biomeColors.watch(() => this.redraw());\n }\n getName() {\n return 'biome-noise';\n }\n active(path) {\n return path.endsWith(new Path(['generator', 'biome_source']))\n && path.push('type').get() === 'minecraft:multi_noise';\n }\n menu(view, redraw) {\n return `\n
          {\n this.viewScale.watchRun(value => {\n const blocks = (Math.pow(2, value)) * 200;\n el.textContent = blocks.toFixed();\n }, 'preview-controls');\n })}\">
          \n
          {\n this.viewScale.set(this.viewScale.get() - 0.5);\n redraw();\n })}\">\n ${Octicon.plus}\n
          \n
          {\n this.viewScale.set(this.viewScale.get() + 0.5);\n redraw();\n })}\">\n ${Octicon.dash}\n
          `;\n }\n getSize() {\n return [200, 100];\n }\n draw(model, img) {\n var _a;\n this.noise = BiomeNoisePreview.noiseMaps.map((id, i) => {\n const config = this.state[`${id}_noise`];\n return new NormalNoise(this.seed + i, config.firstOctave, config.amplitudes);\n });\n const biomeColorCache = {};\n this.state.biomes.forEach((b) => {\n biomeColorCache[b.biome] = this.getBiomeColor(b.biome);\n });\n const data = img.data;\n const s = (Math.pow(2, this.viewScale.get()));\n for (let x = 0; x < 200; x += 1) {\n for (let y = 0; y < 100; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const xx = (x - this.offsetX) * s - 100 * s;\n const yy = (y - this.offsetY) * s - 50 * s;\n const b = this.closestBiome(xx, yy);\n const color = (_a = biomeColorCache[b]) !== null && _a !== void 0 ? _a : [128, 128, 128];\n data[i] = color[0];\n data[i + 1] = color[1];\n data[i + 2] = color[2];\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX += dx;\n this.offsetY += dy;\n }\n closestBiome(x, y) {\n if (!this.state.biomes || this.state.biomes.length === 0)\n return '';\n const noise = this.noise.map(n => n.getValue(x, y, 0));\n let minDist = Infinity;\n let minBiome = '';\n for (const b of this.state.biomes) {\n const dist = this.fitness(b.parameters, { altitude: noise[0], temperature: noise[1], humidity: noise[2], weirdness: noise[3], offset: 0 });\n if (dist < minDist) {\n minDist = dist;\n minBiome = b.biome;\n }\n }\n return minBiome;\n }\n fitness(a, b) {\n return (a.altitude - b.altitude) * (a.altitude - b.altitude) + (a.temperature - b.temperature) * (a.temperature - b.temperature) + (a.humidity - b.humidity) * (a.humidity - b.humidity) + (a.weirdness - b.weirdness) * (a.weirdness - b.weirdness) + (a.offset - b.offset) * (a.offset - b.offset);\n }\n getBiomeColor(biome) {\n const color = this.biomeColors.get()[biome];\n if (color === undefined) {\n return stringToColor(biome);\n }\n return color;\n }\n setBiomeColor(biome, value) {\n const color = [parseInt(value.slice(1, 3), 16), parseInt(value.slice(3, 5), 16), parseInt(value.slice(5, 7), 16)];\n this.biomeColors.set(Object.assign(Object.assign({}, this.biomeColors.get()), { [biome]: color }));\n localStorage.setItem(LOCAL_STORAGE_BIOME_COLORS, JSON.stringify(this.biomeColors.get()));\n }\n getBiomeHex(biome) {\n return '#' + this.getBiomeColor(biome).map(e => e.toString(16).padStart(2, '0')).join('');\n }\n}\nBiomeNoisePreview.noiseMaps = ['altitude', 'temperature', 'humidity', 'weirdness'];\n","import English from '../locales/en.json';\nimport { App } from './App';\nexport const Locales = {\n 'en': English\n};\nexport function resolveLocaleParams(value, params) {\n return value === null || value === void 0 ? void 0 : value.replace(/%\\d+%/g, match => {\n const index = parseInt(match.slice(1, -1));\n return (params === null || params === void 0 ? void 0 : params[index]) !== undefined ? params[index] : match;\n });\n}\nexport function locale(key, params) {\n var _a, _b, _c;\n const value = (_b = (_a = Locales[App.language.get()]) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : Locales.en[key];\n return (_c = resolveLocaleParams(value, params)) !== null && _c !== void 0 ? _c : key;\n}\nexport function segmentedLocale(segments, params, depth = 5, minDepth = 1) {\n return [App.language.get(), 'en'].reduce((prev, code) => {\n var _a;\n if (prev !== undefined)\n return prev;\n const array = segments.slice(-depth);\n while (array.length >= minDepth) {\n const locale = resolveLocaleParams((_a = Locales[code]) === null || _a === void 0 ? void 0 : _a[array.join('.')], params);\n if (locale !== undefined)\n return locale;\n array.shift();\n }\n return undefined;\n }, undefined);\n}\n","import { locale } from \"../Locales\";\nimport { hexId } from \"../Utils\";\nexport class View {\n constructor() {\n this.registry = {};\n }\n render() {\n return '';\n }\n register(callback) {\n const id = hexId();\n this.registry[id] = callback;\n return id;\n }\n on(type, callback) {\n return this.register(el => {\n el.addEventListener(type, evt => {\n callback(el);\n evt.stopPropagation();\n });\n });\n }\n onChange(callback) {\n return this.on('change', callback);\n }\n onClick(callback) {\n return this.on('click', callback);\n }\n mounted(el, clear = true) {\n el.querySelectorAll('[data-id]').forEach(el => {\n var _a, _b;\n const id = el.getAttribute('data-id');\n (_b = (_a = this.registry)[id]) === null || _b === void 0 ? void 0 : _b.call(_a, el);\n });\n if (clear) {\n this.registry = {};\n }\n el.querySelectorAll('[data-i18n]').forEach(el => {\n el.textContent = locale(el.attributes.getNamedItem('data-i18n').value);\n });\n }\n mount(el, html, clear = true) {\n el.innerHTML = html;\n this.mounted(el, clear);\n }\n}\nexport const toggleMenu = (el) => {\n el.classList.add('active');\n const hideMenu = () => document.body.addEventListener('click', evt => {\n var _a;\n if (evt.target.matches('.btn.input') || ((_a = evt.target.closest('.btn')) === null || _a === void 0 ? void 0 : _a.classList.contains('input'))) {\n hideMenu();\n return;\n }\n el.classList.remove('active');\n }, { capture: true, once: true });\n hideMenu();\n};\n","import { PerlinNoise } from './PerlinNoise';\nimport { clampedLerp, hexId, lerp2 } from '../../Utils';\nexport class NoiseChunkGenerator {\n constructor() {\n this.settings = {};\n this.chunkWidth = 4;\n this.chunkHeight = 4;\n this.chunkCountY = 32;\n this.biomeDepth = 0.1;\n this.biomeScale = 0.2;\n this.noiseColumnCache = [];\n this.xOffset = 0;\n this.minLimitPerlinNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n this.maxLimitPerlinNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n this.mainPerlinNoise = PerlinNoise.fromRange(hexId(), -7, 0);\n this.depthNoise = PerlinNoise.fromRange(hexId(), -15, 0);\n }\n reset(settings, depth, scale, xOffset, width) {\n this.settings = settings;\n this.chunkWidth = settings.size_horizontal * 4;\n this.chunkHeight = settings.size_vertical * 4;\n this.chunkCountY = Math.floor(settings.height / this.chunkHeight);\n if (settings.amplified && depth > 0) {\n depth = 1 + depth * 2;\n scale = 1 + scale * 4;\n }\n this.biomeDepth = 0.265625 * (depth * 0.5 - 0.125);\n this.biomeScale = 96.0 / (scale * 0.9 + 0.1);\n this.noiseColumnCache = Array(width).fill(null);\n this.xOffset = xOffset;\n }\n iterateNoiseColumn(x) {\n const data = Array(this.chunkCountY * this.chunkHeight);\n const cx = Math.floor(x / this.chunkWidth);\n const ox = Math.floor(x % this.chunkWidth) / this.chunkWidth;\n const noise1 = this.fillNoiseColumn(cx);\n const noise2 = this.fillNoiseColumn(cx + 1);\n for (let y = this.chunkCountY - 1; y >= 0; y -= 1) {\n for (let yy = this.chunkHeight; yy >= 0; yy -= 1) {\n const oy = yy / this.chunkHeight;\n const i = y * this.chunkHeight + yy;\n data[i] = lerp2(oy, ox, noise1[y], noise1[y + 1], noise2[y], noise2[y + 1]);\n }\n }\n return data;\n }\n fillNoiseColumn(x) {\n const cachedColumn = this.noiseColumnCache[x - this.xOffset];\n if (cachedColumn)\n return cachedColumn;\n const data = Array(this.chunkCountY + 1);\n const xzScale = 684.412 * this.settings.sampling.xz_scale;\n const yScale = 684.412 * this.settings.sampling.y_scale;\n const xzFactor = xzScale / this.settings.sampling.xz_factor;\n const yFactor = yScale / this.settings.sampling.y_factor;\n const randomDensity = this.settings.random_density_offset ? this.getRandomDensity(x) : 0;\n for (let y = 0; y <= this.chunkCountY; y += 1) {\n let noise = this.sampleAndClampNoise(x, y, this.mainPerlinNoise.getOctaveNoise(0).zo, xzScale, yScale, xzFactor, yFactor);\n const yOffset = 1 - y * 2 / this.chunkCountY + randomDensity;\n const density = yOffset * this.settings.density_factor + this.settings.density_offset;\n const falloff = (density + this.biomeDepth) * this.biomeScale;\n noise += falloff * (falloff > 0 ? 4 : 1);\n if (this.settings.top_slide.size > 0) {\n noise = clampedLerp(this.settings.top_slide.target, noise, (this.chunkCountY - y - (this.settings.top_slide.offset)) / (this.settings.top_slide.size));\n }\n if (this.settings.bottom_slide.size > 0) {\n noise = clampedLerp(this.settings.bottom_slide.target, noise, (y - (this.settings.bottom_slide.offset)) / (this.settings.bottom_slide.size));\n }\n data[y] = noise;\n }\n this.noiseColumnCache[x - this.xOffset] = data;\n return data;\n }\n getRandomDensity(x) {\n const noise = this.depthNoise.getValue(x * 200, 10, this.depthNoise.getOctaveNoise(0).zo, 1, 0, true);\n const a = (noise < 0) ? -noise * 0.3 : noise;\n const b = a * 24.575625 - 2;\n return (b < 0) ? b * 0.009486607142857142 : Math.min(b, 1) * 0.006640625;\n }\n sampleAndClampNoise(x, y, z, xzScale, yScale, xzFactor, yFactor) {\n let a = 0;\n let b = 0;\n let c = 0;\n let d = 1;\n for (let i = 0; i < 16; i += 1) {\n const x2 = PerlinNoise.wrap(x * xzScale * d);\n const y2 = PerlinNoise.wrap(y * yScale * d);\n const z2 = PerlinNoise.wrap(z * xzScale * d);\n const e = yScale * d;\n const minLimitNoise = this.minLimitPerlinNoise.getOctaveNoise(i);\n if (minLimitNoise) {\n a += minLimitNoise.noise(x2, y2, z2, e, y * e) / d;\n }\n const maxLimitNoise = this.maxLimitPerlinNoise.getOctaveNoise(i);\n if (maxLimitNoise) {\n b += maxLimitNoise.noise(x2, y2, z2, e, y * e) / d;\n }\n if (i < 8) {\n const mainNoise = this.mainPerlinNoise.getOctaveNoise(i);\n if (mainNoise) {\n c += mainNoise.noise(PerlinNoise.wrap(x * xzFactor * d), PerlinNoise.wrap(y * yFactor * d), PerlinNoise.wrap(z * xzFactor * d), yFactor * d, y * yFactor * d) / d;\n }\n }\n d /= 2;\n }\n return clampedLerp(a / 512, b / 512, (c / 10 + 1) / 2);\n }\n}\n","import { Path } from \"@mcschema/core\";\nimport seedrandom from \"seedrandom\";\nimport { App } from \"../App\";\nimport { clamp, hexId, stringToColor } from \"../Utils\";\nimport { PerlinNoise } from \"./noise/PerlinNoise\";\nimport { Preview } from './Preview';\nimport { Octicon } from '../components/Octicon';\nconst terrain = [50, 50, 51, 51, 52, 52, 53, 54, 56, 57, 57, 58, 58, 59, 60, 60, 60, 59, 59, 59, 60, 61, 61, 62, 63, 63, 64, 64, 64, 65, 65, 66, 66, 65, 65, 66, 66, 67, 67, 67, 68, 69, 71, 73, 74, 76, 79, 80, 81, 81, 82, 83, 83, 82, 82, 81, 81, 80, 80, 80, 81, 81, 82, 82];\nconst seaLevel = 63;\nconst featureColors = [\n [255, 77, 54],\n [59, 118, 255],\n [91, 207, 25],\n [217, 32, 245],\n [255, 209, 41],\n [52, 204, 209],\n];\nexport class DecoratorPreview extends Preview {\n constructor() {\n super();\n this.Features = {\n decorated: (config, pos) => {\n const positions = this.getPositions(pos, config === null || config === void 0 ? void 0 : config.decorator);\n return positions.flatMap(p => this.getPlacements(p, config === null || config === void 0 ? void 0 : config.feature));\n },\n random_boolean_selector: (config, pos) => {\n const feature = this.random() < 0.5 ? config === null || config === void 0 ? void 0 : config.feature_true : config === null || config === void 0 ? void 0 : config.feature_false;\n return this.getPlacements(pos, feature);\n },\n random_selector: (config, pos) => {\n var _a, _b;\n for (const f of (_a = config === null || config === void 0 ? void 0 : config.features) !== null && _a !== void 0 ? _a : []) {\n if (this.random() < ((_b = f === null || f === void 0 ? void 0 : f.chance) !== null && _b !== void 0 ? _b : 0)) {\n return this.getPlacements(pos, f.feature);\n }\n }\n return this.getPlacements(pos, config === null || config === void 0 ? void 0 : config.default);\n },\n simple_random_selector: (config, pos) => {\n var _a, _b, _c;\n const feature = (_a = config === null || config === void 0 ? void 0 : config.features) === null || _a === void 0 ? void 0 : _a[this.nextInt((_c = (_b = config === null || config === void 0 ? void 0 : config.features) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0)];\n return this.getPlacements(pos, feature);\n }\n };\n this.Decorators = {\n chance: (config, pos) => {\n var _a;\n return this.random() < 1 / ((_a = config === null || config === void 0 ? void 0 : config.chance) !== null && _a !== void 0 ? _a : 1) ? [pos] : [];\n },\n count: (config, pos) => {\n var _a;\n return new Array(this.sampleUniformInt((_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1)).fill(pos);\n },\n count_extra: (config, pos) => {\n var _a, _b, _c;\n let count = (_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1;\n if ((_b = this.random() < config.extra_chance) !== null && _b !== void 0 ? _b : 0) {\n count += (_c = config.extra_count) !== null && _c !== void 0 ? _c : 0;\n }\n return new Array(count).fill(pos);\n },\n count_multilayer: (config, pos) => {\n var _a;\n return new Array(this.sampleUniformInt((_a = config === null || config === void 0 ? void 0 : config.count) !== null && _a !== void 0 ? _a : 1)).fill(pos)\n .map(p => [\n p[0] + this.nextInt(16),\n p[1],\n p[2] + this.nextInt(16)\n ]);\n },\n count_noise: (config, pos) => {\n const noise = this.biomeInfoNoise.getValue(pos[0] / 200, 0, pos[2] / 200);\n const count = noise < config.noise_level ? config.below_noise : config.above_noise;\n return new Array(count).fill(pos);\n },\n count_noise_biased: (config, pos) => {\n const factor = Math.max(1, config.noise_factor);\n const noise = this.biomeInfoNoise.getValue(pos[0] / factor, 0, pos[2] / factor);\n const count = Math.max(0, Math.ceil((noise + config.noise_offset) * config.noise_to_count_ratio));\n return new Array(count).fill(pos);\n },\n dark_oak_tree: (config, pos) => {\n return [...new Array(16)].map((e, i) => {\n const x = Math.floor(i / 4) * 4 + 1 + this.nextInt(3) + pos[0];\n const y = Math.max(seaLevel, terrain[clamp(0, 63, x)]);\n const z = Math.floor(i % 4) * 4 + 1 + this.nextInt(3) + pos[2];\n return [x, y, z];\n });\n },\n decorated: (config, pos) => {\n return this.getPositions(pos, config === null || config === void 0 ? void 0 : config.outer).flatMap(p => {\n return this.getPositions(p, config === null || config === void 0 ? void 0 : config.inner);\n });\n },\n depth_average: (config, pos) => {\n var _a, _b, _c, _d;\n const y = this.nextInt((_a = config === null || config === void 0 ? void 0 : config.spread) !== null && _a !== void 0 ? _a : 0) + this.nextInt((_b = config === null || config === void 0 ? void 0 : config.spread) !== null && _b !== void 0 ? _b : 0) - ((_c = config.spread) !== null && _c !== void 0 ? _c : 0) + ((_d = config === null || config === void 0 ? void 0 : config.baseline) !== null && _d !== void 0 ? _d : 0);\n return this.decorateY(pos, y);\n },\n emerald_ore: (config, pos) => {\n const count = 3 + this.nextInt(6);\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(28) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n fire: (config, pos) => {\n const count = this.nextInt(this.nextInt(this.sampleUniformInt(config === null || config === void 0 ? void 0 : config.count))) + 1;\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(120) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n glowstone: (config, pos) => {\n const count = this.nextInt(this.nextInt(this.sampleUniformInt(config === null || config === void 0 ? void 0 : config.count)) + 1);\n return [...new Array(count)].map(e => [\n this.nextInt(16) + pos[0],\n this.nextInt(120) + 4,\n this.nextInt(16) + pos[2]\n ]);\n },\n heightmap: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, y);\n },\n heightmap_spread_double: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, this.nextInt(y * 2));\n },\n heightmap_world_surface: (config, pos) => {\n const y = Math.max(seaLevel, terrain[clamp(0, 63, pos[0])]);\n return this.decorateY(pos, y);\n },\n iceberg: (config, pos) => {\n return [[\n this.nextInt(8) + 4 + pos[0],\n pos[1],\n this.nextInt(8) + 4 + pos[2]\n ]];\n },\n lava_lake: (config, pos) => {\n var _a, _b;\n if (this.nextInt(((_a = config.chance) !== null && _a !== void 0 ? _a : 1) / 10) === 0) {\n const y = this.nextInt(this.nextInt(256 - 8) + 8);\n if (y < seaLevel || this.nextInt(((_b = config === null || config === void 0 ? void 0 : config.chance) !== null && _b !== void 0 ? _b : 1) / 8) == 0) {\n const x = this.nextInt(16) + pos[0];\n const z = this.nextInt(16) + pos[2];\n return [[x, y, z]];\n }\n }\n return [];\n },\n nope: (config, pos) => {\n return [pos];\n },\n range: (config, pos) => {\n var _a, _b, _c;\n const y = this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0);\n return this.decorateY(pos, y);\n },\n range_biased: (config, pos) => {\n var _a, _b, _c;\n const y = this.nextInt(this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0));\n return this.decorateY(pos, y);\n },\n range_very_biased: (config, pos) => {\n var _a, _b, _c, _d;\n const y = this.nextInt(this.nextInt(this.nextInt(((_a = config === null || config === void 0 ? void 0 : config.maximum) !== null && _a !== void 0 ? _a : 1) - ((_b = config === null || config === void 0 ? void 0 : config.top_offset) !== null && _b !== void 0 ? _b : 0)) + ((_c = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _c !== void 0 ? _c : 0)) + ((_d = config === null || config === void 0 ? void 0 : config.bottom_offset) !== null && _d !== void 0 ? _d : 0));\n return this.decorateY(pos, y);\n },\n spread_32_above: (config, pos) => {\n const y = this.nextInt(pos[1] + 32);\n return this.decorateY(pos, y);\n },\n top_solid_heightmap: (config, pos) => {\n const y = terrain[clamp(0, 63, pos[0])];\n return this.decorateY(pos, y);\n },\n magma: (config, pos) => {\n const y = this.nextInt(pos[1] + 32);\n return this.decorateY(pos, y);\n },\n square: (config, pos) => {\n return [[\n pos[0] + this.nextInt(16),\n pos[1],\n pos[2] + this.nextInt(16)\n ]];\n },\n water_lake: (config, pos) => {\n var _a;\n if (this.nextInt((_a = config.chance) !== null && _a !== void 0 ? _a : 1) === 0) {\n return [[\n this.nextInt(16) + pos[0],\n this.nextInt(256),\n this.nextInt(16) + pos[2]\n ]];\n }\n return [];\n }\n };\n this.seed = hexId();\n this.perspective = 'top';\n this.size = [64, 128, 48];\n this.random = seedrandom(this.seed);\n this.biomeInfoNoise = new PerlinNoise(hexId(), 0, [1]);\n this.usedFeatures = [];\n }\n getName() {\n return 'decorator';\n }\n active(path) {\n var _a;\n return ((_a = App.model.get()) === null || _a === void 0 ? void 0 : _a.id) === 'worldgen/feature'\n && path.equals(new Path(['config', 'decorator']))\n && path.pop().pop().push('type').get() === 'minecraft:decorated';\n }\n menu(view, redraw) {\n return `\n
          {\n this.perspective = this.perspective === 'top' ? 'side' : 'top';\n redraw();\n })}\">\n ${Octicon.package}\n
          `;\n }\n getSize() {\n return this.perspective === 'top' ? [this.size[0], this.size[2]] : [this.size[0], this.size[1]];\n }\n draw(model, img) {\n const featureData = JSON.parse(JSON.stringify(model.data));\n this.random = seedrandom(this.seed);\n this.usedFeatures = [];\n let placements = [];\n for (let x = 0; x < this.size[0] / 16; x += 1) {\n for (let z = 0; z < (this.perspective === 'top' ? this.size[2] / 16 : 1); z += 1) {\n const chunkPlacements = this.getPlacements([x * 16, 0, z * 16], featureData);\n const filtered = chunkPlacements.filter(p => {\n return p.pos.every((n, i) => n >= 0 && n < this.size[i]);\n });\n placements = [...placements, ...filtered];\n }\n }\n const data = img.data;\n img.data.fill(255);\n if (this.perspective === 'side') {\n for (let x = 0; x < this.size[0]; x += 1) {\n for (let y = 0; y < terrain[clamp(0, 63, x)]; y += 1) {\n const i = ((this.size[1] - y - 1) * (img.width * 4)) + (x * 4);\n for (let j = 0; j < 3; j += 1) {\n data[i + j] = 30;\n }\n }\n for (let y = terrain[clamp(0, 63, x)]; y < seaLevel; y += 1) {\n const i = ((this.size[1] - y - 1) * (img.width * 4)) + (x * 4);\n data[i + 0] = 108;\n data[i + 1] = 205;\n data[i + 2] = 230;\n }\n }\n }\n for (let { pos, feature } of placements) {\n const i = this.perspective === 'top'\n ? (pos[2] * (img.width * 4)) + (pos[0] * 4)\n : ((this.size[1] - pos[1] - 1) * (img.width * 4)) + (pos[0] * 4);\n const color = feature < featureColors.length ? featureColors[feature] : stringToColor(this.usedFeatures[feature]);\n data.set(color.map(c => clamp(50, 205, c)), i);\n }\n for (let x = 0; x < this.size[0]; x += 1) {\n for (let y = 0; y < (this.perspective === 'top' ? this.size[2] : this.size[1]); y += 1) {\n if ((Math.floor(x / 16) + (this.perspective === 'top' ? Math.floor(y / 16) : 0)) % 2 === 0)\n continue;\n const i = (y * (img.width * 4)) + (x * 4);\n for (let j = 0; j < 3; j += 1) {\n data[i + j] = 0.85 * data[i + j];\n }\n }\n }\n }\n useFeature(s) {\n const i = this.usedFeatures.indexOf(s);\n if (i != -1)\n return i;\n this.usedFeatures.push(s);\n return this.usedFeatures.length - 1;\n }\n getPlacements(pos, feature) {\n var _a;\n if (typeof feature === 'string') {\n return [{ pos, feature: this.useFeature(feature) }];\n }\n const type = (_a = feature === null || feature === void 0 ? void 0 : feature.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, '');\n const featureFn = this.Features[type];\n if (!featureFn) {\n return [{ pos, feature: this.useFeature(JSON.stringify(feature)) }];\n }\n return featureFn(feature.config, pos);\n }\n getPositions(pos, decorator) {\n var _a;\n const type = (_a = decorator === null || decorator === void 0 ? void 0 : decorator.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, '');\n const decoratorFn = this.Decorators[type];\n if (!decoratorFn) {\n return [pos];\n }\n return decoratorFn(decorator === null || decorator === void 0 ? void 0 : decorator.config, pos);\n }\n decorateY(pos, y) {\n return [[pos[0], y, pos[2]]];\n }\n sampleUniformInt(value) {\n var _a, _b;\n if (typeof value === 'number') {\n return value;\n }\n else {\n return ((_a = value.base) !== null && _a !== void 0 ? _a : 1) + this.nextInt(1 + ((_b = value.spread) !== null && _b !== void 0 ? _b : 0));\n }\n }\n nextInt(max) {\n return Math.floor(this.random() * max);\n }\n}\n","const event = (category, action, label) => ga('send', 'event', category, action, label);\nconst dimension = (index, value) => ga('set', `dimension${index}`, value);\nexport const Tracker = {\n pageview: (target) => {\n ga('set', 'page', target);\n ga('send', 'pageview');\n },\n setTheme: (theme) => event('Generator', 'set-theme', theme),\n setVersion: (version) => event('Generator', 'set-version', version),\n setPreview: (name) => event('Preview', 'set-preview', name),\n setLanguage: (language) => event('Generator', 'set-language', language),\n reset: () => event('Generator', 'reset'),\n undo: (hotkey = false) => event('Generator', 'undo', hotkey ? 'Hotkey' : 'Menu'),\n redo: (hotkey = false) => event('Generator', 'redo', hotkey ? 'Hotkey' : 'Menu'),\n copy: () => event('JsonOutput', 'copy'),\n download: () => event('JsonOutput', 'download'),\n share: () => event('JsonOutput', 'share'),\n toggleErrors: (visible) => event('Errors', 'toggle', visible ? 'visible' : 'hidden'),\n hidePreview: () => event('Preview', 'hide-preview'),\n toggleMinimize: (minimized) => event('Generator', 'toggle-minimize', minimized ? 'minimized' : 'unminimized'),\n loadPreset: (preset) => event('Generator', 'load-preset', preset),\n dimTheme: (theme) => dimension(1, theme),\n dimVersion: (version) => dimension(3, version),\n dimLanguage: (language) => dimension(4, language),\n dimPreview: (preview) => dimension(5, preview),\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { DataModel, ObjectNode } from '@mcschema/core';\nimport * as java15 from '@mcschema/java-1.15';\nimport * as java16 from '@mcschema/java-1.16';\nimport * as java17 from '@mcschema/java-1.17';\nimport { LocalStorageProperty } from './state/LocalStorageProperty';\nimport { Property } from './state/Property';\nimport { fetchData } from './DataFetcher';\nimport { BiomeNoisePreview } from './preview/BiomeNoisePreview';\nimport { NoiseSettingsPreview } from './preview/NoiseSettingsPreview';\nimport { DecoratorPreview } from './preview/DecoratorPreview';\nimport config from '../config.json';\nimport { locale, Locales } from './Locales';\nimport { Tracker } from './Tracker';\nimport { Settings } from './Settings';\nexport const Versions = {\n '1.15': java15,\n '1.16': java16,\n '1.17': java17\n};\nexport const Previews = {\n 'biome_noise': new BiomeNoisePreview(),\n 'noise_settings': new NoiseSettingsPreview(),\n 'decorator': new DecoratorPreview(),\n};\nexport const Models = {};\nconfig.models.filter(m => m.schema)\n .forEach(m => Models[m.id] = new DataModel(ObjectNode({})));\nexport const App = {\n version: new LocalStorageProperty('schema_version', config.versions[config.versions.length - 1].id)\n .watch(Tracker.dimVersion),\n theme: new LocalStorageProperty('theme', 'dark')\n .watch(Tracker.dimTheme),\n language: new LocalStorageProperty('language', 'en')\n .watch(Tracker.dimLanguage),\n model: new Property(null),\n collections: new Property(null),\n jsonOutput: new Property(''),\n errorsVisible: new Property(false),\n treeMinimized: new Property(false),\n jsonError: new Property(null),\n preview: new Property(null)\n .watch(p => { var _a; return Tracker.dimPreview((_a = p === null || p === void 0 ? void 0 : p.getName()) !== null && _a !== void 0 ? _a : 'none'); }),\n schemasLoaded: new Property(false),\n localesLoaded: new Property(false),\n loaded: new Property(false),\n mobilePanel: new Property('tree'),\n settings: new Settings('generator_settings'),\n blockStateRegistry: {}\n};\nApp.version.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n App.schemasLoaded.set(false);\n yield updateSchemas(value);\n App.schemasLoaded.set(true);\n}));\nApp.theme.watchRun((value) => document.documentElement.setAttribute('data-theme', value));\nlet hasFetchedEnglish = false;\nApp.language.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n App.localesLoaded.set(false);\n yield updateLocale(value);\n App.localesLoaded.set(true);\n}));\nApp.localesLoaded.watch((value) => {\n if (value) {\n document.querySelectorAll('[data-i18n]').forEach(el => {\n el.textContent = locale(el.attributes.getNamedItem('data-i18n').value);\n });\n }\n App.loaded.set(value && App.schemasLoaded.get());\n});\nApp.schemasLoaded.watch((value) => {\n App.loaded.set(value && App.localesLoaded.get());\n});\nApp.mobilePanel.watchRun((value) => {\n document.body.setAttribute('data-panel', value);\n});\nfunction updateSchemas(version) {\n return __awaiter(this, void 0, void 0, function* () {\n App.blockStateRegistry = {};\n const collections = Versions[version].getCollections();\n App.collections.set(collections);\n yield fetchData(collections, version);\n const schemas = Versions[version].getSchemas(collections);\n config.models\n .filter(m => m.schema)\n .filter(m => checkVersion(App.version.get(), m.minVersion))\n .forEach(m => {\n const model = Models[m.id];\n const schema = schemas.get(m.schema);\n if (schema) {\n model.schema = schema;\n if (JSON.stringify(model.data) === '{}') {\n model.reset(schema.default(), true);\n model.history = [JSON.stringify(model.data)];\n model.historyIndex = 0;\n }\n }\n });\n });\n}\nfunction updateLocale(language) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Locales[language] && (hasFetchedEnglish || language !== 'en'))\n return;\n const data = yield (yield fetch(`/locales/${language}.json`)).json();\n if (language === 'en')\n hasFetchedEnglish = true;\n Locales[language] = data;\n });\n}\nexport function checkVersion(versionId, minVersionId, maxVersionId) {\n const version = config.versions.findIndex(v => v.id === versionId);\n const minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0;\n const maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1;\n return minVersion <= version && version <= maxVersion;\n}\ndocument.addEventListener('keyup', (evt) => {\n if (evt.ctrlKey && evt.key === 'z') {\n Tracker.undo(true);\n Models[App.model.get().id].undo();\n }\n else if (evt.ctrlKey && evt.key === 'y') {\n Tracker.redo(true);\n Models[App.model.get().id].redo();\n }\n});\n","import { Path } from \"@mcschema/core\";\nimport { Preview } from './Preview';\nimport { toggleMenu } from '../views/View';\nimport { Octicon } from '../components/Octicon';\nimport { NoiseChunkGenerator } from './noise/NoiseChunkGenerator';\nexport class NoiseSettingsPreview extends Preview {\n constructor() {\n super();\n this.width = 256;\n this.depth = 0.1;\n this.scale = 0.2;\n this.offsetX = 0;\n this.debug = false;\n this.generator = new NoiseChunkGenerator();\n }\n getName() {\n return 'noise-settings';\n }\n active(path) {\n return path.endsWith(new Path(['noise']));\n }\n menu(view, redraw) {\n return `
          \n
          \n ${Octicon.kebab_horizontal}\n
          \n
          \n
          \n ${Octicon.gear}\n \n {\n el.value = this.depth.toString();\n el.addEventListener('change', () => {\n this.depth = parseFloat(el.value);\n redraw();\n });\n })}\">\n
          \n
          \n ${Octicon.gear}\n \n {\n el.value = this.scale.toString();\n el.addEventListener('change', () => {\n this.scale = parseFloat(el.value);\n redraw();\n });\n })}\">\n
          \n
          \n ${Octicon.arrow_both}\n \n {\n el.value = this.width.toString();\n el.addEventListener('change', () => {\n this.width = parseFloat(el.value);\n redraw();\n });\n })}\">\n
          \n
          { this.debug = !this.debug; redraw(); })}\">\n ${Octicon.square}\n \n
          \n
          \n
          `;\n }\n getSize() {\n return [this.width, this.state.height];\n }\n draw(model, img) {\n this.generator.reset(this.state, this.depth, this.scale, this.offsetX, this.width);\n const data = img.data;\n for (let x = 0; x < this.width; x += 1) {\n const noise = this.generator.iterateNoiseColumn(x + this.offsetX).reverse();\n for (let y = 0; y < this.state.height; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const color = this.getColor(noise, y);\n data[i] = (this.debug && noise[y] > 0) ? 255 : color;\n data[i + 1] = color;\n data[i + 2] = color;\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX -= dx;\n }\n getColor(noise, y) {\n if (this.debug) {\n return -noise[y] / 2 + 128;\n }\n if (noise[y] > 0) {\n return 0;\n }\n if (noise[y + 1] > 0) {\n return 150;\n }\n return 255;\n }\n}\n","export class Settings {\n constructor(local_storage) {\n var _a;\n this.local_storage = local_storage;\n const settings = JSON.parse((_a = localStorage.getItem(local_storage)) !== null && _a !== void 0 ? _a : '{}');\n if (!Array.isArray(settings.fields))\n settings.fields = [];\n this.fields = settings.fields;\n this.save();\n }\n save() {\n const settings = JSON.stringify({ fields: this.fields });\n localStorage.setItem(this.local_storage, settings);\n this.fields = [...this.fields.filter(v => v === null || v === void 0 ? void 0 : v.path), {}];\n }\n}\n","import { Octicon } from './Octicon';\nexport const Dropdown = (view, icon, entries, state, watcher) => {\n const dropdown = view.register(el => {\n el.addEventListener('change', () => {\n state.set(el.value);\n });\n state.watchRun(v => el.value = v, 'dropdown');\n });\n return `\n
          \n \n ${Octicon[icon]}\n
          `;\n};\n","import { Octicon } from './Octicon';\nexport const Toggle = (view, entries, state, watcher) => {\n const activeOcticon = () => { var _a; return Octicon[((_a = entries.find(e => e[0] === state.get())) !== null && _a !== void 0 ? _a : entries[0])[1]]; };\n const toggle = view.register(el => {\n el.addEventListener('click', () => {\n const i = entries.findIndex(e => e[0] === state.get());\n state.set(entries[(i + 1) % entries.length][0]);\n });\n state.watch(_ => el.innerHTML = activeOcticon(), 'toggle');\n });\n return `
          ${activeOcticon()}
          `;\n};\n","import { App } from '../App';\nimport { Dropdown } from './Dropdown';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { languages } from '../../config.json';\nimport { Tracker } from '../Tracker';\nimport { locale } from '../Locales';\nexport const Header = (view, title, homeLink = '/') => {\n const panelTogglesId = view.register(el => {\n const getPanelToggles = () => {\n const panels = [['preview', 'play'], ['tree', 'note'], ['source', 'code']];\n if (!panels.map(e => e[0]).includes(App.mobilePanel.get()))\n return '';\n return panels\n .filter(e => e[0] !== App.mobilePanel.get())\n .filter(e => e[0] !== 'preview' || App.preview.get() !== null)\n .map(e => `
          App.mobilePanel.set(e[0]))}\">\n ${Octicon[e[1]]}\n
          `).join('');\n };\n App.mobilePanel.watchRun(() => {\n view.mount(el, getPanelToggles(), false);\n });\n App.preview.watchRun((value, oldValue) => {\n if (value === null && App.mobilePanel.get() === 'preview') {\n App.mobilePanel.set('tree');\n }\n if (value === null || oldValue === null) {\n view.mount(el, getPanelToggles(), false);\n }\n });\n });\n return `
          \n
          \n ${Octicon.three_bars}\n

          ${title}

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

          404

          \n

          ${locale('not_found.description')}

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

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

          \n
            \n
            `;\n};\n","// The programming goals of Split.js are to deliver readable, understandable and\n// maintainable code, while at the same time manually optimizing for tiny minified file size,\n// browser compatibility without additional requirements\n// and very few assumptions about the user's page layout.\nvar global = typeof window !== 'undefined' ? window : null;\nvar ssr = global === null;\nvar document = !ssr ? global.document : undefined;\n\n// Save a couple long function names that are used frequently.\n// This optimization saves around 400 bytes.\nvar addEventListener = 'addEventListener';\nvar removeEventListener = 'removeEventListener';\nvar getBoundingClientRect = 'getBoundingClientRect';\nvar gutterStartDragging = '_a';\nvar aGutterSize = '_b';\nvar bGutterSize = '_c';\nvar HORIZONTAL = 'horizontal';\nvar NOOP = function () { return false; };\n\n// Helper function determines which prefixes of CSS calc we need.\n// We only need to do this once on startup, when this anonymous function is called.\n//\n// Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:\n// http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167\nvar calc = ssr\n ? 'calc'\n : ((['', '-webkit-', '-moz-', '-o-']\n .filter(function (prefix) {\n var el = document.createElement('div');\n el.style.cssText = \"width:\" + prefix + \"calc(9px)\";\n\n return !!el.style.length\n })\n .shift()) + \"calc\");\n\n// Helper function checks if its argument is a string-like type\nvar isString = function (v) { return typeof v === 'string' || v instanceof String; };\n\n// Helper function allows elements and string selectors to be used\n// interchangeably. In either case an element is returned. This allows us to\n// do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.\nvar elementOrSelector = function (el) {\n if (isString(el)) {\n var ele = document.querySelector(el);\n if (!ele) {\n throw new Error((\"Selector \" + el + \" did not match a DOM element\"))\n }\n return ele\n }\n\n return el\n};\n\n// Helper function gets a property from the properties object, with a default fallback\nvar getOption = function (options, propName, def) {\n var value = options[propName];\n if (value !== undefined) {\n return value\n }\n return def\n};\n\nvar getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) {\n if (isFirst) {\n if (gutterAlign === 'end') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n } else if (isLast) {\n if (gutterAlign === 'start') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n }\n\n return gutterSize\n};\n\n// Default options\nvar defaultGutterFn = function (i, gutterDirection) {\n var gut = document.createElement('div');\n gut.className = \"gutter gutter-\" + gutterDirection;\n return gut\n};\n\nvar defaultElementStyleFn = function (dim, size, gutSize) {\n var style = {};\n\n if (!isString(size)) {\n style[dim] = calc + \"(\" + size + \"% - \" + gutSize + \"px)\";\n } else {\n style[dim] = size;\n }\n\n return style\n};\n\nvar defaultGutterStyleFn = function (dim, gutSize) {\n var obj;\n\n return (( obj = {}, obj[dim] = (gutSize + \"px\"), obj ));\n};\n\n// The main function to initialize a split. Split.js thinks about each pair\n// of elements as an independant pair. Dragging the gutter between two elements\n// only changes the dimensions of elements in that pair. This is key to understanding\n// how the following functions operate, since each function is bound to a pair.\n//\n// A pair object is shaped like this:\n//\n// {\n// a: DOM element,\n// b: DOM element,\n// aMin: Number,\n// bMin: Number,\n// dragging: Boolean,\n// parent: DOM element,\n// direction: 'horizontal' | 'vertical'\n// }\n//\n// The basic sequence:\n//\n// 1. Set defaults to something sane. `options` doesn't have to be passed at all.\n// 2. Initialize a bunch of strings based on the direction we're splitting.\n// A lot of the behavior in the rest of the library is paramatized down to\n// rely on CSS strings and classes.\n// 3. Define the dragging helper functions, and a few helpers to go with them.\n// 4. Loop through the elements while pairing them off. Every pair gets an\n// `pair` object and a gutter.\n// 5. Actually size the pair elements, insert gutters and attach event listeners.\nvar Split = function (idsOption, options) {\n if ( options === void 0 ) options = {};\n\n if (ssr) { return {} }\n\n var ids = idsOption;\n var dimension;\n var clientAxis;\n var position;\n var positionEnd;\n var clientSize;\n var elements;\n\n // Allow HTMLCollection to be used as an argument when supported\n if (Array.from) {\n ids = Array.from(ids);\n }\n\n // All DOM elements in the split should have a common parent. We can grab\n // the first elements parent and hope users read the docs because the\n // behavior will be whacky otherwise.\n var firstElement = elementOrSelector(ids[0]);\n var parent = firstElement.parentNode;\n var parentStyle = getComputedStyle ? getComputedStyle(parent) : null;\n var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null;\n\n // Set default options.sizes to equal percentages of the parent element.\n var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; });\n\n // Standardize minSize to an array if it isn't already. This allows minSize\n // to be passed as a number.\n var minSize = getOption(options, 'minSize', 100);\n var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; });\n\n // Get other options\n var expandToMin = getOption(options, 'expandToMin', false);\n var gutterSize = getOption(options, 'gutterSize', 10);\n var gutterAlign = getOption(options, 'gutterAlign', 'center');\n var snapOffset = getOption(options, 'snapOffset', 30);\n var dragInterval = getOption(options, 'dragInterval', 1);\n var direction = getOption(options, 'direction', HORIZONTAL);\n var cursor = getOption(\n options,\n 'cursor',\n direction === HORIZONTAL ? 'col-resize' : 'row-resize'\n );\n var gutter = getOption(options, 'gutter', defaultGutterFn);\n var elementStyle = getOption(\n options,\n 'elementStyle',\n defaultElementStyleFn\n );\n var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn);\n\n // 2. Initialize a bunch of strings based on the direction we're splitting.\n // A lot of the behavior in the rest of the library is paramatized down to\n // rely on CSS strings and classes.\n if (direction === HORIZONTAL) {\n dimension = 'width';\n clientAxis = 'clientX';\n position = 'left';\n positionEnd = 'right';\n clientSize = 'clientWidth';\n } else if (direction === 'vertical') {\n dimension = 'height';\n clientAxis = 'clientY';\n position = 'top';\n positionEnd = 'bottom';\n clientSize = 'clientHeight';\n }\n\n // 3. Define the dragging helper functions, and a few helpers to go with them.\n // Each helper is bound to a pair object that contains its metadata. This\n // also makes it easy to store references to listeners that that will be\n // added and removed.\n //\n // Even though there are no other functions contained in them, aliasing\n // this to self saves 50 bytes or so since it's used so frequently.\n //\n // The pair object saves metadata like dragging state, position and\n // event listener references.\n\n function setElementSize(el, size, gutSize, i) {\n // Split.js allows setting sizes via numbers (ideally), or if you must,\n // by string, like '300px'. This is less than ideal, because it breaks\n // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,\n // make sure you calculate the gutter size by hand.\n var style = elementStyle(dimension, size, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n el.style[prop] = style[prop];\n });\n }\n\n function setGutterSize(gutterElement, gutSize, i) {\n var style = gutterStyle(dimension, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n gutterElement.style[prop] = style[prop];\n });\n }\n\n function getSizes() {\n return elements.map(function (element) { return element.size; })\n }\n\n // Supports touch events, but not multitouch, so only the first\n // finger `touches[0]` is counted.\n function getMousePosition(e) {\n if ('touches' in e) { return e.touches[0][clientAxis] }\n return e[clientAxis]\n }\n\n // Actually adjust the size of elements `a` and `b` to `offset` while dragging.\n // calc is used to allow calc(percentage + gutterpx) on the whole split instance,\n // which allows the viewport to be resized without additional logic.\n // Element a's size is the same as offset. b's size is total size - a size.\n // Both sizes are calculated from the initial parent percentage,\n // then the gutter size is subtracted.\n function adjust(offset) {\n var a = elements[this.a];\n var b = elements[this.b];\n var percentage = a.size + b.size;\n\n a.size = (offset / this.size) * percentage;\n b.size = percentage - (offset / this.size) * percentage;\n\n setElementSize(a.element, a.size, this[aGutterSize], a.i);\n setElementSize(b.element, b.size, this[bGutterSize], b.i);\n }\n\n // drag, where all the magic happens. The logic is really quite simple:\n //\n // 1. Ignore if the pair is not dragging.\n // 2. Get the offset of the event.\n // 3. Snap offset to min if within snappable range (within min + snapOffset).\n // 4. Actually adjust each element in the pair to offset.\n //\n // ---------------------------------------------------------------------\n // | | <- a.minSize || b.minSize -> | |\n // | | | <- this.snapOffset || this.snapOffset -> | | |\n // | | | || | | |\n // | | | || | | |\n // ---------------------------------------------------------------------\n // | <- this.start this.size -> |\n function drag(e) {\n var offset;\n var a = elements[this.a];\n var b = elements[this.b];\n\n if (!this.dragging) { return }\n\n // Get the offset of the event from the first side of the\n // pair `this.start`. Then offset by the initial position of the\n // mouse compared to the gutter size.\n offset =\n getMousePosition(e) -\n this.start +\n (this[aGutterSize] - this.dragOffset);\n\n if (dragInterval > 1) {\n offset = Math.round(offset / dragInterval) * dragInterval;\n }\n\n // If within snapOffset of min or max, set offset to min or max.\n // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.\n // Include the appropriate gutter sizes to prevent overflows.\n if (offset <= a.minSize + snapOffset + this[aGutterSize]) {\n offset = a.minSize + this[aGutterSize];\n } else if (\n offset >=\n this.size - (b.minSize + snapOffset + this[bGutterSize])\n ) {\n offset = this.size - (b.minSize + this[bGutterSize]);\n }\n\n // Actually adjust the size.\n adjust.call(this, offset);\n\n // Call the drag callback continously. Don't do anything too intensive\n // in this callback.\n getOption(options, 'onDrag', NOOP)(getSizes());\n }\n\n // Cache some important sizes when drag starts, so we don't have to do that\n // continously:\n //\n // `size`: The total size of the pair. First + second + first gutter + second gutter.\n // `start`: The leading side of the first element.\n //\n // ------------------------------------------------\n // | aGutterSize -> ||| |\n // | ||| |\n // | ||| |\n // | ||| <- bGutterSize |\n // ------------------------------------------------\n // | <- start size -> |\n function calculateSizes() {\n // Figure out the parent size minus padding.\n var a = elements[this.a].element;\n var b = elements[this.b].element;\n\n var aBounds = a[getBoundingClientRect]();\n var bBounds = b[getBoundingClientRect]();\n\n this.size =\n aBounds[dimension] +\n bBounds[dimension] +\n this[aGutterSize] +\n this[bGutterSize];\n this.start = aBounds[position];\n this.end = aBounds[positionEnd];\n }\n\n function innerSize(element) {\n // Return nothing if getComputedStyle is not supported (< IE9)\n // Or if parent element has no layout yet\n if (!getComputedStyle) { return null }\n\n var computedStyle = getComputedStyle(element);\n\n if (!computedStyle) { return null }\n\n var size = element[clientSize];\n\n if (size === 0) { return null }\n\n if (direction === HORIZONTAL) {\n size -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n } else {\n size -=\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n }\n\n return size\n }\n\n // When specifying percentage sizes that are less than the computed\n // size of the element minus the gutter, the lesser percentages must be increased\n // (and decreased from the other elements) to make space for the pixels\n // subtracted by the gutters.\n function trimToMin(sizesToTrim) {\n // Try to get inner size of parent element.\n // If it's no supported, return original sizes.\n var parentSize = innerSize(parent);\n if (parentSize === null) {\n return sizesToTrim\n }\n\n if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) {\n return sizesToTrim\n }\n\n // Keep track of the excess pixels, the amount of pixels over the desired percentage\n // Also keep track of the elements with pixels to spare, to decrease after if needed\n var excessPixels = 0;\n var toSpare = [];\n\n var pixelSizes = sizesToTrim.map(function (size, i) {\n // Convert requested percentages to pixel sizes\n var pixelSize = (parentSize * size) / 100;\n var elementGutterSize = getGutterSize(\n gutterSize,\n i === 0,\n i === sizesToTrim.length - 1,\n gutterAlign\n );\n var elementMinSize = minSizes[i] + elementGutterSize;\n\n // If element is too smal, increase excess pixels by the difference\n // and mark that it has no pixels to spare\n if (pixelSize < elementMinSize) {\n excessPixels += elementMinSize - pixelSize;\n toSpare.push(0);\n return elementMinSize\n }\n\n // Otherwise, mark the pixels it has to spare and return it's original size\n toSpare.push(pixelSize - elementMinSize);\n return pixelSize\n });\n\n // If nothing was adjusted, return the original sizes\n if (excessPixels === 0) {\n return sizesToTrim\n }\n\n return pixelSizes.map(function (pixelSize, i) {\n var newPixelSize = pixelSize;\n\n // While there's still pixels to take, and there's enough pixels to spare,\n // take as many as possible up to the total excess pixels\n if (excessPixels > 0 && toSpare[i] - excessPixels > 0) {\n var takenPixels = Math.min(\n excessPixels,\n toSpare[i] - excessPixels\n );\n\n // Subtract the amount taken for the next iteration\n excessPixels -= takenPixels;\n newPixelSize = pixelSize - takenPixels;\n }\n\n // Return the pixel size adjusted as a percentage\n return (newPixelSize / parentSize) * 100\n })\n }\n\n // stopDragging is very similar to startDragging in reverse.\n function stopDragging() {\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n if (self.dragging) {\n getOption(options, 'onDragEnd', NOOP)(getSizes());\n }\n\n self.dragging = false;\n\n // Remove the stored event listeners. This is why we store them.\n global[removeEventListener]('mouseup', self.stop);\n global[removeEventListener]('touchend', self.stop);\n global[removeEventListener]('touchcancel', self.stop);\n global[removeEventListener]('mousemove', self.move);\n global[removeEventListener]('touchmove', self.move);\n\n // Clear bound function references\n self.stop = null;\n self.move = null;\n\n a[removeEventListener]('selectstart', NOOP);\n a[removeEventListener]('dragstart', NOOP);\n b[removeEventListener]('selectstart', NOOP);\n b[removeEventListener]('dragstart', NOOP);\n\n a.style.userSelect = '';\n a.style.webkitUserSelect = '';\n a.style.MozUserSelect = '';\n a.style.pointerEvents = '';\n\n b.style.userSelect = '';\n b.style.webkitUserSelect = '';\n b.style.MozUserSelect = '';\n b.style.pointerEvents = '';\n\n self.gutter.style.cursor = '';\n self.parent.style.cursor = '';\n document.body.style.cursor = '';\n }\n\n // startDragging calls `calculateSizes` to store the inital size in the pair object.\n // It also adds event listeners for mouse/touch events,\n // and prevents selection while dragging so avoid the selecting text.\n function startDragging(e) {\n // Right-clicking can't start dragging.\n if ('button' in e && e.button !== 0) {\n return\n }\n\n // Alias frequently used variables to save space. 200 bytes.\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n // Call the onDragStart callback.\n if (!self.dragging) {\n getOption(options, 'onDragStart', NOOP)(getSizes());\n }\n\n // Don't actually drag the element. We emulate that in the drag function.\n e.preventDefault();\n\n // Set the dragging property of the pair object.\n self.dragging = true;\n\n // Create two event listeners bound to the same pair object and store\n // them in the pair object.\n self.move = drag.bind(self);\n self.stop = stopDragging.bind(self);\n\n // All the binding. `window` gets the stop events in case we drag out of the elements.\n global[addEventListener]('mouseup', self.stop);\n global[addEventListener]('touchend', self.stop);\n global[addEventListener]('touchcancel', self.stop);\n global[addEventListener]('mousemove', self.move);\n global[addEventListener]('touchmove', self.move);\n\n // Disable selection. Disable!\n a[addEventListener]('selectstart', NOOP);\n a[addEventListener]('dragstart', NOOP);\n b[addEventListener]('selectstart', NOOP);\n b[addEventListener]('dragstart', NOOP);\n\n a.style.userSelect = 'none';\n a.style.webkitUserSelect = 'none';\n a.style.MozUserSelect = 'none';\n a.style.pointerEvents = 'none';\n\n b.style.userSelect = 'none';\n b.style.webkitUserSelect = 'none';\n b.style.MozUserSelect = 'none';\n b.style.pointerEvents = 'none';\n\n // Set the cursor at multiple levels\n self.gutter.style.cursor = cursor;\n self.parent.style.cursor = cursor;\n document.body.style.cursor = cursor;\n\n // Cache the initial sizes of the pair.\n calculateSizes.call(self);\n\n // Determine the position of the mouse compared to the gutter\n self.dragOffset = getMousePosition(e) - self.end;\n }\n\n // adjust sizes to ensure percentage is within min size and gutter.\n sizes = trimToMin(sizes);\n\n // 5. Create pair and element objects. Each pair has an index reference to\n // elements `a` and `b` of the pair (first and second elements).\n // Loop through the elements while pairing them off. Every pair gets a\n // `pair` object and a gutter.\n //\n // Basic logic:\n //\n // - Starting with the second element `i > 0`, create `pair` objects with\n // `a = i - 1` and `b = i`\n // - Set gutter sizes based on the _pair_ being first/last. The first and last\n // pair have gutterSize / 2, since they only have one half gutter, and not two.\n // - Create gutter elements and add event listeners.\n // - Set the size of the elements, minus the gutter sizes.\n //\n // -----------------------------------------------------------------------\n // | i=0 | i=1 | i=2 | i=3 |\n // | | | | |\n // | pair 0 pair 1 pair 2 |\n // | | | | |\n // -----------------------------------------------------------------------\n var pairs = [];\n elements = ids.map(function (id, i) {\n // Create the element object.\n var element = {\n element: elementOrSelector(id),\n size: sizes[i],\n minSize: minSizes[i],\n i: i,\n };\n\n var pair;\n\n if (i > 0) {\n // Create the pair object with its metadata.\n pair = {\n a: i - 1,\n b: i,\n dragging: false,\n direction: direction,\n parent: parent,\n };\n\n pair[aGutterSize] = getGutterSize(\n gutterSize,\n i - 1 === 0,\n false,\n gutterAlign\n );\n pair[bGutterSize] = getGutterSize(\n gutterSize,\n false,\n i === ids.length - 1,\n gutterAlign\n );\n\n // if the parent has a reverse flex-direction, switch the pair elements.\n if (\n parentFlexDirection === 'row-reverse' ||\n parentFlexDirection === 'column-reverse'\n ) {\n var temp = pair.a;\n pair.a = pair.b;\n pair.b = temp;\n }\n }\n\n // Determine the size of the current element. IE8 is supported by\n // staticly assigning sizes without draggable gutters. Assigns a string\n // to `size`.\n //\n // Create gutter elements for each pair.\n if (i > 0) {\n var gutterElement = gutter(i, direction, element.element);\n setGutterSize(gutterElement, gutterSize, i);\n\n // Save bound event listener for removal later\n pair[gutterStartDragging] = startDragging.bind(pair);\n\n // Attach bound event listener\n gutterElement[addEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n gutterElement[addEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n\n parent.insertBefore(gutterElement, element.element);\n\n pair.gutter = gutterElement;\n }\n\n setElementSize(\n element.element,\n element.size,\n getGutterSize(\n gutterSize,\n i === 0,\n i === ids.length - 1,\n gutterAlign\n ),\n i\n );\n\n // After the first iteration, and we have a pair object, append it to the\n // list of pairs.\n if (i > 0) {\n pairs.push(pair);\n }\n\n return element\n });\n\n function adjustToMin(element) {\n var isLast = element.i === pairs.length;\n var pair = isLast ? pairs[element.i - 1] : pairs[element.i];\n\n calculateSizes.call(pair);\n\n var size = isLast\n ? pair.size - element.minSize - pair[bGutterSize]\n : element.minSize + pair[aGutterSize];\n\n adjust.call(pair, size);\n }\n\n elements.forEach(function (element) {\n var computedSize = element.element[getBoundingClientRect]()[dimension];\n\n if (computedSize < element.minSize) {\n if (expandToMin) {\n adjustToMin(element);\n } else {\n // eslint-disable-next-line no-param-reassign\n element.minSize = computedSize;\n }\n }\n });\n\n function setSizes(newSizes) {\n var trimmed = trimToMin(newSizes);\n trimmed.forEach(function (newSize, i) {\n if (i > 0) {\n var pair = pairs[i - 1];\n\n var a = elements[pair.a];\n var b = elements[pair.b];\n\n a.size = trimmed[i - 1];\n b.size = newSize;\n\n setElementSize(a.element, a.size, pair[aGutterSize], a.i);\n setElementSize(b.element, b.size, pair[bGutterSize], b.i);\n }\n });\n }\n\n function destroy(preserveStyles, preserveGutter) {\n pairs.forEach(function (pair) {\n if (preserveGutter !== true) {\n pair.parent.removeChild(pair.gutter);\n } else {\n pair.gutter[removeEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n pair.gutter[removeEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n }\n\n if (preserveStyles !== true) {\n var style = elementStyle(\n dimension,\n pair.a.size,\n pair[aGutterSize]\n );\n\n Object.keys(style).forEach(function (prop) {\n elements[pair.a].element.style[prop] = '';\n elements[pair.b].element.style[prop] = '';\n });\n }\n });\n }\n\n return {\n setSizes: setSizes,\n getSizes: getSizes,\n collapse: function collapse(i) {\n adjustToMin(elements[i]);\n },\n destroy: destroy,\n parent: parent,\n pairs: pairs,\n }\n};\n\nexport default Split;\n","import Split from 'split.js';\nexport const SplitGroup = (view, options, entries) => {\n var _a;\n return `\n
            {\n Split([].slice.call(el.children), Object.assign({ snapOffset: 0 }, options));\n })}>\n ${entries.join('')}\n
            \n`;\n};\n","import { Path } from '@mcschema/core';\nimport { App, Previews } from '../App';\nimport { Octicon } from '../components/Octicon';\nimport { locale } from '../Locales';\nimport { Tracker } from '../Tracker';\nexport const suffixInjector = {\n base() { },\n choice({ switchNode }, path, mounter) {\n return switchNode.hook(this, path, mounter);\n },\n object({}, path, mounter) {\n if (Previews.biome_noise.active(path)) {\n return setPreview(Previews.biome_noise, path, mounter);\n }\n if (Previews.noise_settings.active(path)) {\n return setPreview(Previews.noise_settings, path, mounter);\n }\n if (Previews.decorator.active(path)) {\n return setPreview(Previews.decorator, path, mounter);\n }\n },\n string({}, path, mounter) {\n if (path.endsWith(new Path(['biome']))\n && path.pop().pop().endsWith(new Path(['generator', 'biome_source', 'biomes']))) {\n const biomePreview = Previews.biome_noise;\n const biome = path.get();\n const id = mounter.onChange(el => {\n biomePreview.setBiomeColor(biome, el.value);\n });\n return ``;\n }\n }\n};\nfunction setPreview(preview, path, mounter) {\n const id = mounter.onClick(() => {\n Tracker.setPreview(preview.getName());\n preview.path = path;\n App.preview.set(preview);\n });\n return ``;\n}\n","import { relativePath } from '@mcschema/core';\nexport const getFilterKey = {\n base: () => null,\n object({ filter, getActiveFields }, path, origin, depth = 0) {\n if (depth > 2)\n return null;\n if (filter) {\n const filtered = relativePath(path, filter);\n if (filtered && filtered.pop().equals(origin))\n return filtered.last();\n }\n const activeFields = getActiveFields(path);\n for (const k of Object.keys(activeFields)) {\n const filtered = activeFields[k].hook(this, path.push(k), origin, depth += 1);\n if (filtered)\n return filtered;\n }\n return null;\n }\n};\n","import { getFilterKey } from './getFilterKey';\nexport const canFlatten = {\n base: () => false,\n object({ node, getActiveFields }, path) {\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n const visibleEntries = Object.entries(getActiveFields(path))\n .filter(([k, v]) => filterKey !== k && v.enabled(path));\n if (visibleEntries.length !== 1)\n return false;\n const nestedPath = path.push(visibleEntries[0][0]);\n if (visibleEntries[0][1].type(nestedPath) !== 'object')\n return false;\n return visibleEntries[0][1].hook(getFilterKey, nestedPath, nestedPath) === null;\n }\n};\n","import { ModelPath, Path, DataModel, MapNode, StringNode, relativePath } from '@mcschema/core';\nimport { locale, segmentedLocale } from '../Locales';\nimport { hexId, htmlEncode } from '../Utils';\nimport { suffixInjector } from './suffixInjector';\nimport { Octicon } from '../components/Octicon';\nimport { App } from '../App';\nimport { getFilterKey } from './getFilterKey';\nimport { canFlatten } from './canFlatten';\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(StringNode(), StringNode()), { historyMax: 0 });\n/**\n * Renders the node and handles events to update the model\n * @returns string HTML representation of this node using the given data\n */\nexport const renderHtml = {\n base() {\n return ['', '', ''];\n },\n boolean({ node }, path, value, mounter) {\n const onFalse = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === false ? undefined : false);\n });\n const onTrue = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === true ? undefined : true);\n });\n return ['', `${htmlEncode(locale('false'))}\n ${htmlEncode(locale('true'))}`, ''];\n },\n choice({ choices, config, switchNode }, path, value, mounter) {\n const choice = switchNode.activeCase(path, true);\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path;\n const pathWithChoiceContext = (config === null || config === void 0 ? void 0 : config.choiceContext) ? new Path([], [config.choiceContext]) : (config === null || config === void 0 ? void 0 : config.context) ? new Path([], [config.context]) : path;\n const [prefix, suffix, body] = choice.node.hook(this, pathWithContext, value, mounter);\n if (choices.length === 1) {\n return [prefix, suffix, body];\n }\n const inputId = mounter.register(el => {\n el.value = choice.type;\n el.addEventListener('change', () => {\n var _a;\n const c = (_a = choices.find(c => c.type === el.value)) !== null && _a !== void 0 ? _a : choice;\n path.model.set(path, c.change ? c.change(value) : c.node.default());\n });\n });\n const inject = ``;\n return [prefix, inject + suffix, body];\n },\n list({ children }, path, value, mounter) {\n const onAdd = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [children.default(), ...value]);\n });\n const onAddBottom = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [...value, children.default()]);\n });\n const suffix = ``;\n let body = '';\n if (Array.isArray(value)) {\n body = value.map((childValue, index) => {\n const removeId = mounter.onClick(el => path.model.set(path.push(index), undefined));\n const childPath = path.push(index).contextPush('entry');\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = children.hook(this, childPath, childValue, mounter);\n return `
            \n
            \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
            \n ${cBody ? `
            ${cBody}
            ` : ''}\n
            `;\n }).join('');\n if (value.length > 2) {\n body += `
            \n
            \n \n
            \n
            `;\n }\n }\n return ['', suffix, body];\n },\n map({ keys, children, config }, path, value, mounter) {\n var _a, _b, _c;\n const keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]));\n const onAdd = mounter.onClick(el => {\n const key = keyPath.get();\n path.model.set(path.push(key), children.default());\n });\n let suffix = '';\n const blockState = (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map' ? App.blockStateRegistry[relativePath(path, config.validation.params.id).get()] : null);\n if (!blockState || blockState.properties) {\n const keyRendered = (blockState\n ? StringNode(null, { enum: Object.keys((_b = blockState.properties) !== null && _b !== void 0 ? _b : {}) })\n : keys).hook(this, keyPath, (_c = keyPath.get()) !== null && _c !== void 0 ? _c : '', mounter);\n suffix = keyRendered[1] + ``;\n }\n let body = '';\n if (typeof value === 'object' && value !== undefined) {\n body = Object.keys(value)\n .map(key => {\n const removeId = mounter.onClick(el => path.model.set(path.push(key), undefined));\n const childPath = path.modelPush(key);\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = (blockState\n ? StringNode(null, blockState.properties && { enum: blockState.properties[key] })\n : children).hook(this, childPath, value[key], mounter);\n return `
            \n
            \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
            \n ${cBody ? `
            ${cBody}
            ` : ''}\n
            `;\n })\n .join('');\n }\n return ['', suffix, body];\n },\n number({ integer, config }, path, value, mounter) {\n var _a;\n const onChange = mounter.onChange(el => {\n const value = el.value;\n let parsed = (config === null || config === void 0 ? void 0 : config.color) ? parseInt(value.slice(1), 16)\n : integer ? parseInt(value) : parseFloat(value);\n path.model.set(path, parsed);\n });\n if (config === null || config === void 0 ? void 0 : config.color) {\n const hex = ((_a = value === null || value === void 0 ? void 0 : value.toString(16).padStart(6, '0')) !== null && _a !== void 0 ? _a : '000000');\n return ['', ``, ''];\n }\n return ['', ``, ''];\n },\n object({ node, getActiveFields, getChildModelPath }, path, value, mounter) {\n var _a;\n let prefix = '';\n if (node.optional()) {\n if (value === undefined) {\n prefix = ``;\n }\n else {\n prefix = ``;\n }\n }\n let suffix = '';\n let body = '';\n if (typeof value === 'object' && value !== undefined && (!(node.optional() && value === undefined))) {\n const activeFields = getActiveFields(path);\n const activeKeys = Object.keys(activeFields);\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n if (filterKey && !(activeFields[filterKey].hidden && activeFields[filterKey].hidden())) {\n prefix += error(path.push(filterKey), mounter);\n prefix += help(path.push(filterKey), mounter);\n suffix += activeFields[filterKey].hook(this, path.push(filterKey), value[filterKey], mounter)[1];\n }\n const visibleKeys = (App.treeMinimized.get()\n ? activeKeys.filter(k => value[k] !== undefined)\n : activeKeys)\n .filter(k => filterKey !== k)\n .filter(k => activeFields[k].enabled(path));\n if (node.hook(canFlatten, path)) {\n const newValue = (_a = value[visibleKeys[0]]) !== null && _a !== void 0 ? _a : {};\n body = activeFields[visibleKeys[0]].hook(this, path.push(visibleKeys[0]), newValue, mounter)[2];\n }\n else {\n body = visibleKeys.map(k => {\n var _a;\n const field = activeFields[k];\n const childPath = getChildModelPath(path, k);\n const context = childPath.getContext().join('.');\n const fieldSettings = App.settings.fields.find(f => (f === null || f === void 0 ? void 0 : f.path) && context.endsWith(f.path));\n if ((field.hidden && field.hidden()) || (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.hidden))\n return '';\n const category = field.category(childPath);\n const [cPrefix, cSuffix, cBody] = field.hook(this, childPath, value[k], mounter);\n if (k === 'Properties' && cSuffix === '')\n return '';\n return `
            \n
            \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n ${cPrefix}\n \n ${cSuffix}\n
            \n ${cBody ? `
            ${cBody}
            ` : ''}\n
            `;\n })\n .join('');\n }\n }\n suffix += node.hook(suffixInjector, path, mounter) || '';\n return ['', prefix + suffix, body];\n },\n string(params, path, value, mounter) {\n const inputId = mounter.register(el => {\n el.value = value !== null && value !== void 0 ? value : '';\n el.addEventListener('change', evt => {\n const newValue = el.value;\n path.model.set(path, newValue.length === 0 ? undefined : newValue);\n evt.stopPropagation();\n });\n });\n const suffix = params.node.hook(suffixInjector, path, mounter) || '';\n return ['', rawString(params, path, inputId) + suffix, ''];\n }\n};\nfunction isEnum(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\n}\nfunction isValidator(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\n}\nfunction rawString({ node, getValues, config }, path, inputId) {\n const values = getValues();\n if (isEnum(config) && !config.additional) {\n const contextPath = typeof config.enum === 'string' ?\n new Path(path.getArray(), [config.enum]) : path;\n return selectRaw(node, contextPath, values, inputId);\n }\n if (config && isValidator(config)\n && config.validator === 'resource'\n && typeof config.params.pool === 'string'\n && values.length > 0) {\n const contextPath = new Path(path.getArray(), [config.params.pool]);\n if (segmentedLocale(contextPath.contextPush(values[0]).getContext())) {\n return selectRaw(node, contextPath, values, inputId);\n }\n }\n const datalistId = hexId();\n return `\n ${values.length === 0 ? '' :\n `\n ${values.map(v => ``}`;\n}\nfunction selectRaw(node, contextPath, values, inputId) {\n return ``;\n}\nfunction hashString(str) {\n var hash = 0, i, chr;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0;\n }\n return hash;\n}\nfunction pathLocale(path, params) {\n var _a, _b;\n return (_b = (_a = segmentedLocale(path.getContext(), params)) !== null && _a !== void 0 ? _a : path.getContext()[path.getContext().length - 1]) !== null && _b !== void 0 ? _b : '';\n}\nfunction error(p, mounter) {\n const errors = p.model.errors.get(p, true);\n if (errors.length === 0)\n return '';\n return popupIcon('node-error', 'issue_opened', htmlEncode(locale(errors[0].error, errors[0].params)), mounter);\n}\nfunction help(path, mounter) {\n const message = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (message === undefined)\n return '';\n return popupIcon('node-help', 'info', htmlEncode(message), mounter);\n}\nconst popupIcon = (type, icon, popup, mounter) => {\n const onClick = mounter.onClick(el => {\n el.getElementsByTagName('span')[0].classList.add('show');\n document.body.addEventListener('click', () => {\n el.getElementsByTagName('span')[0].classList.remove('show');\n }, { capture: true, once: true });\n });\n return `
            \n ${popup}${Octicon[icon]}\n
            `;\n};\nconst contextMenu = (path, mounter) => {\n const id = mounter.register(el => {\n const openMenu = () => {\n var _a;\n const popup = document.createElement('div');\n popup.classList.add('node-menu');\n const helpMessage = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (helpMessage)\n popup.insertAdjacentHTML('beforeend', `${helpMessage}`);\n const context = path.getContext().join('.');\n popup.insertAdjacentHTML('beforeend', `\n
            \n ${Octicon.clippy}\n Context: \n ${context}\n
            `);\n (_a = popup.querySelector('.menu-item .btn')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {\n const inputEl = document.createElement('input');\n inputEl.value = context;\n el.appendChild(inputEl);\n inputEl.select();\n document.execCommand('copy');\n el.removeChild(inputEl);\n });\n el.appendChild(popup);\n document.body.addEventListener('click', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n document.body.addEventListener('contextmenu', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n };\n el.addEventListener('contextmenu', evt => {\n openMenu();\n evt.preventDefault();\n });\n let timer = null;\n el.addEventListener('touchstart', () => {\n timer = setTimeout(() => {\n openMenu();\n timer = null;\n }, 800);\n });\n el.addEventListener('touchend', () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n });\n });\n return `data-id=\"${id}\"`;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ModelPath } from '@mcschema/core';\nimport { App, checkVersion, Previews } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { renderHtml } from '../../hooks/renderHtml';\nimport config from '../../../config.json';\nimport { fetchPreset } from '../../DataFetcher';\nexport const TreePanel = (view, model) => {\n const getContent = () => {\n if (App.loaded.get()) {\n const path = new ModelPath(model);\n const rendered = model.schema.hook(renderHtml, path, model.data, view);\n const category = model.schema.category(path);\n if (rendered[1]) {\n return `
            \n
            ${rendered[1]}
            \n
            ${rendered[2]}
            \n
            `;\n }\n return rendered[2];\n }\n return '
            ';\n };\n const tree = view.register(el => {\n App.loaded.watchRun((value) => {\n if (!value) {\n // If loading is taking more than 100 ms, show spinner\n new Promise(r => setTimeout(r, 100)).then(() => {\n if (!App.loaded.get()) {\n view.mount(el, getContent(), false);\n }\n });\n }\n else {\n view.mount(el, getContent(), false);\n }\n });\n App.treeMinimized.watch(() => {\n view.mount(el, getContent(), false);\n });\n model.addListener({\n invalidated() {\n view.mount(el, getContent(), false);\n }\n });\n Previews.biome_noise.biomeColors.watch(() => {\n view.mount(el, getContent(), false);\n }, 'tree-panel');\n });\n const m = App.model.get();\n const registry = ((m === null || m === void 0 ? void 0 : m.category) ? (m === null || m === void 0 ? void 0 : m.category) + '/' : '') + (m === null || m === void 0 ? void 0 : m.schema);\n let presetList;\n const presetListId = view.register(el => presetList = el);\n const getPresets = (query) => {\n var _a, _b;\n const terms = (query !== null && query !== void 0 ? query : '').trim().split(' ');\n const results = ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : [])\n .map(r => r.slice(10))\n .filter(e => terms.every(t => e.includes(t)));\n return results.map(r => `
            __awaiter(void 0, void 0, void 0, function* () {\n App.schemasLoaded.set(false);\n const preset = yield fetchPreset(config.versions.find(v => v.id === App.version.get()), m === null || m === void 0 ? void 0 : m.path, r);\n model.reset(preset);\n App.schemasLoaded.set(true);\n Tracker.loadPreset((m === null || m === void 0 ? void 0 : m.path) + '/' + r);\n }))}\">${r}
            `).join('');\n };\n const presetControl = view.register(el => {\n App.schemasLoaded.watch(v => {\n var _a, _b;\n if (!v)\n return;\n const enabled = ((m === null || m === void 0 ? void 0 : m.path) && checkVersion(App.version.get(), '1.16'));\n el.classList.toggle('disabled', !enabled || ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : []).length === 0);\n if (enabled) {\n view.mount(presetList, getPresets(), false);\n }\n }, 'tree-panel');\n });\n return `
            \n
            \n
            \n
            {\n var _a, _b;\n toggleMenu(el);\n (_b = (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.select();\n })}\">\n ${Octicon.archive}\n
            \n
            \n
            \n ${Octicon.search} {\n view.mount(presetList, getPresets(el.value), false);\n })}\">\n
            \n
            \n
            \n
            \n
            \n
            \n ${Octicon.tag}\n App.version.watch(v => el.textContent = v, 'tree-controls'))}\">\n ${App.version.get()}\n \n
            \n
            \n ${config.versions\n .filter(v => { var _a; return checkVersion(v.id, (_a = App.model.get().minVersion) !== null && _a !== void 0 ? _a : '1.15'); })\n .reverse()\n .map(v => `\n
            {\n Tracker.setVersion(v.id);\n App.version.set(v.id);\n })}\">\n ${v.id}\n
            \n `).join('')}\n
            \n
            \n
            \n
            \n ${Octicon.kebab_horizontal}\n
            \n
            \n
            {\n Tracker.reset();\n model.reset(model.schema.default());\n })}\">\n ${Octicon.history}\n
            \n
            {\n el.addEventListener('click', () => {\n const value = !App.treeMinimized.get();\n App.treeMinimized.set(value);\n Tracker.toggleMinimize(value);\n });\n App.treeMinimized.watchRun(value => {\n view.mount(el, `${Octicon[value ? 'unfold' : 'fold']}`, false);\n });\n })}\">
            \n
            { Tracker.undo(); model.undo(); })}\">\n ${Octicon.arrow_left}\n
            \n
            { Tracker.redo(); model.redo(); })}\">\n ${Octicon.arrow_right}\n
            \n
            \n
            \n
            \n
            \n
            `;\n};\n","export const transformOutput = {\n base({}, _, value) {\n return value;\n },\n choice({ switchNode }, path, value) {\n return switchNode.hook(this, path, value);\n },\n list({ children }, path, value) {\n if (!Array.isArray(value))\n return value;\n return value.map((obj, index) => children.hook(this, path.push(index), obj));\n },\n map({ children }, path, value) {\n if (value === undefined)\n return undefined;\n let res = {};\n Object.keys(value).forEach(f => res[f] = children.hook(this, path.push(f), value[f]));\n return res;\n },\n object({ getActiveFields }, path, value) {\n if (value === undefined || value === null || typeof value !== 'object') {\n return value;\n }\n let res = {};\n const activeFields = getActiveFields(path);\n Object.keys(activeFields)\n .filter(k => activeFields[k].enabled(path))\n .forEach(f => {\n res[f] = activeFields[f].hook(this, path.push(f), value[f]);\n });\n return res;\n }\n};\n","import { ModelPath } from '@mcschema/core';\nimport { Tracker } from '../../Tracker';\nimport { transformOutput } from '../../hooks/transformOutput';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { App } from '../../App';\nexport const SourcePanel = (view, model) => {\n const updateContent = (el) => {\n const data = model.schema.hook(transformOutput, new ModelPath(model), model.data);\n App.jsonOutput.set(JSON.stringify(data, null, 2));\n el.value = App.jsonOutput.get();\n };\n const source = view.register(el => {\n updateContent(el);\n model.addListener({\n invalidated() {\n App.jsonError.set(null);\n updateContent(el);\n }\n });\n el.addEventListener('change', () => {\n const rawSource = el.value;\n try {\n model.reset(JSON.parse(rawSource));\n App.jsonError.set(null);\n }\n catch (err) {\n App.jsonError.set(err.message);\n }\n });\n });\n const copySource = (el) => {\n var _a;\n (_a = el.closest('.panel')) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('textarea')[0].select();\n document.execCommand('copy');\n Tracker.copy();\n };\n const downloadSource = (el) => {\n const fileContents = encodeURIComponent(App.jsonOutput.get() + '\\n');\n const downloadAnchor = el.lastElementChild;\n downloadAnchor.setAttribute('href', 'data:text/json;charset=utf-8,' + fileContents);\n downloadAnchor.setAttribute(\"download\", \"data.json\");\n downloadAnchor.click();\n Tracker.download();\n };\n const shareSource = (el) => {\n var _a;\n const shareInput = (_a = el.closest('.panel-controls')) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n const data = btoa(JSON.stringify(JSON.parse(App.jsonOutput.get())));\n const url = window.location.origin + window.location.pathname + '?q=' + data;\n shareInput.value = url;\n shareInput.style.display = 'inline-block';\n document.body.addEventListener('click', evt => {\n shareInput.style.display = 'none';\n }, { capture: true, once: true });\n shareInput.select();\n document.execCommand('copy');\n Tracker.share();\n };\n return `
            \n
            \n \n
            \n ${Octicon.clippy}\n \n
            \n
            \n
            \n ${Octicon.kebab_horizontal}\n
            \n
            \n
            \n ${Octicon.download}\n \n
            \n
            \n ${Octicon.link}\n
            \n
            \n
            \n
            \n \n
            `;\n};\n","import { App } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { Octicon } from '../Octicon';\nexport const PreviewPanel = (view, model) => {\n const panel = view.register(el => {\n const canvas = el.querySelector('canvas');\n const redraw = () => {\n const preview = App.preview.get();\n if (preview && preview.path && preview.path.withModel(model).get()) {\n const ctx = canvas.getContext('2d');\n const newState = preview.path.withModel(model).get();\n preview.state = JSON.parse(JSON.stringify(newState));\n const [width, height] = preview.getSize();\n canvas.width = width;\n canvas.height = height;\n const img = ctx.createImageData(width, height);\n preview.draw(model, img);\n ctx.putImageData(img, 0, 0);\n }\n else {\n App.preview.set(null);\n }\n };\n const updatePreview = () => {\n var _a, _b;\n redraw();\n view.mount(el.querySelector('.panel-controls'), `\n ${(_b = (_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.menu(view, redraw)) !== null && _b !== void 0 ? _b : ''}\n
            {\n Tracker.hidePreview();\n App.preview.set(null);\n })}\">\n ${Octicon.x}\n
            `, false);\n };\n model.addListener({\n invalidated: redraw\n });\n App.preview.watchRun((value) => {\n if (value) {\n value.redraw = redraw;\n updatePreview();\n }\n }, 'preview-panel');\n let dragStart;\n el.addEventListener('mousedown', evt => {\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mousemove', evt => {\n var _a, _b;\n if (dragStart === undefined)\n return;\n if ((_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.onDrag) {\n const [width, height] = App.preview.get().getSize();\n const dx = (evt.offsetX - dragStart[0]) * width / canvas.clientWidth;\n const dy = (evt.offsetY - dragStart[1]) * height / canvas.clientHeight;\n if (!(dx === 0 && dy === 0)) {\n (_b = App.preview.get()) === null || _b === void 0 ? void 0 : _b.onDrag(dx, dy);\n redraw();\n }\n }\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mouseup', evt => {\n dragStart = undefined;\n });\n });\n return `
            \n
            \n \n
            `;\n};\n","import { relativePath } from '@mcschema/core';\nimport { App } from '../App';\nimport { getFilterKey } from './getFilterKey';\nimport { walk } from './walk';\nexport const customValidation = walk({\n base() { },\n map({ config }, path, value) {\n var _a, _b, _c;\n if (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map') {\n const block = relativePath(path, config.validation.params.id).get();\n const errors = path.getModel().errors;\n const requiredProps = (_c = ((_b = App.blockStateRegistry[block]) !== null && _b !== void 0 ? _b : {}).properties) !== null && _c !== void 0 ? _c : {};\n const existingKeys = Object.keys(value !== null && value !== void 0 ? value : {});\n Object.keys(requiredProps).forEach(p => {\n if (!existingKeys.includes(p)) {\n if (path.last() === 'Properties') {\n errors.add(path, 'error.block_state.missing_property', p);\n }\n }\n else if (!requiredProps[p].includes(value[p])) {\n errors.add(path.push(p), 'error.invalid_enum_option', value[p]);\n }\n });\n }\n },\n object({ node, getActiveFields }, path, value) {\n let activeFields = getActiveFields(path);\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n const visibleKeys = Object.keys(activeFields)\n .filter(k => filterKey !== k)\n .filter(k => activeFields[k].enabled(path));\n if (visibleKeys.length === 1 && activeFields[visibleKeys[0]].type(path.push(visibleKeys[0])) === 'object') {\n if (activeFields[visibleKeys[0]].optional() && JSON.stringify(value[visibleKeys[0]]) === '{}') {\n path.push(visibleKeys[0]).set(undefined);\n }\n }\n }\n});\n","export const walk = (hook) => (Object.assign(Object.assign({}, hook), { choice(params, path, value, ...args) {\n var _a;\n ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n params.switchNode.hook(this, path, value, ...args);\n },\n list(params, path, value, ...args) {\n var _a;\n ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (!Array.isArray(value))\n return;\n value.forEach((e, i) => params.children.hook(this, path.push(i), e, ...args));\n },\n map(params, path, value, ...args) {\n var _a;\n ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (typeof value !== 'object')\n return;\n Object.keys(value).forEach(f => params.children.hook(this, path.push(f), value[f], ...args));\n },\n object(params, path, value, ...args) {\n var _a;\n ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (value === null || typeof value !== 'object')\n return;\n const activeFields = params.getActiveFields(path);\n Object.keys(activeFields)\n .filter(f => activeFields[f].enabled(path))\n .forEach(f => {\n activeFields[f].hook(this, path.push(f), value[f], ...args);\n });\n } }));\n","import { App, checkVersion, Models } from '../App';\nimport { Header } from '../components/Header';\nimport { SplitGroup } from '../components/SplitGroup';\nimport { Errors } from '../components/Errors';\nimport { TreePanel } from '../components/panels/TreePanel';\nimport { SourcePanel } from '../components/panels/SourcePanel';\nimport { PreviewPanel } from '../components/panels/PreviewPanel';\nimport { customValidation } from '../hooks/customValidation';\nimport { ModelPath, Path } from '@mcschema/core';\nexport const Generator = (view) => {\n const model = Models[App.model.get().id];\n model.listeners = [];\n const getSideContent = () => {\n return App.preview.get() ?\n SplitGroup(view, { direction: 'vertical', sizes: [60, 40] }, [\n SourcePanel(view, model),\n PreviewPanel(view, model)\n ])\n : SourcePanel(view, model);\n };\n const validatePreview = () => {\n var _a;\n const preview = App.preview.get();\n const path = (_a = preview === null || preview === void 0 ? void 0 : preview.path) === null || _a === void 0 ? void 0 : _a.withModel(model);\n if (!(path && path.get() && (preview === null || preview === void 0 ? void 0 : preview.active(path)))) {\n App.preview.set(null);\n }\n };\n model.addListener({\n invalidated: () => {\n validatePreview();\n model.schema.hook(customValidation, new ModelPath(model, new Path()), model.data, model.errors);\n }\n });\n App.schemasLoaded.watch((value) => {\n if (value) {\n model.validate();\n model.invalidate();\n validatePreview();\n }\n }, 'generator');\n App.localesLoaded.watch((value) => {\n if (value && App.schemasLoaded.get()) {\n model.invalidate();\n }\n }, 'generator');\n App.version.watchRun((value) => {\n const minVersion = App.model.get().minVersion;\n if (minVersion && !checkVersion(value, minVersion)) {\n App.version.set(minVersion);\n }\n }, 'generator');\n const sideContent = view.register(el => {\n App.preview.watch((value, oldValue) => {\n if (!value || !oldValue) {\n view.mount(el, getSideContent(), false);\n }\n }, 'generator');\n });\n const homeLink = typeof App.model.get().category === 'string' ? `/${App.model.get().category}/` : undefined;\n return `${Header(view, `${App.model.get().name} Generator`, homeLink)}\n
            \n ${SplitGroup(view, { direction: \"horizontal\", sizes: [66, 34] }, [\n TreePanel(view, model),\n `
            ${getSideContent()}
            `\n ])}\n
            \n ${Errors(view, model)}`;\n};\n","import { App } from '../App';\nimport { locale } from '../Locales';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { htmlEncode } from '../Utils';\nimport { Tracker } from '../Tracker';\nexport const Errors = (view, model) => {\n const getContent = () => {\n if (App.jsonError.get()) {\n return `
            \n
            \n ${htmlEncode(App.jsonError.get())}\n
            \n
            \n
            \n ${Octicon.issue_opened}\n
            `;\n }\n if (model.errors.count() === 0)\n return '';\n return `${App.errorsVisible.get() ? `\n
            \n ${model.errors.getAll().map(e => `\n
            \n ${e.path.toString()}\n -\n ${htmlEncode(locale(e.error, e.params))}\n
            \n `).join('')}\n
            \n ` : ''}\n ${Toggle(view, [[true, 'chevron_down'], [false, 'issue_opened']], App.errorsVisible, Tracker.toggleErrors)}`;\n };\n const errors = view.register(el => {\n model.addListener({\n errors() {\n view.mount(el, getContent(), false);\n }\n });\n App.jsonError.watch(() => {\n view.mount(el, getContent(), false);\n });\n App.errorsVisible.watch(() => {\n view.mount(el, getContent(), false);\n }, 'errors');\n });\n return `\n
            \n ${getContent()}\n
            `;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { App, checkVersion, Models } from './App';\nimport { View } from './views/View';\nimport { Home } from './views/Home';\nimport { NotFound } from './views/NotFound';\nimport { FieldSettings } from './views/FieldSettings';\nimport { Generator } from './views/Generator';\nimport { locale } from './Locales';\nimport { Tracker } from './Tracker';\nimport config from '../config.json';\nconst categories = config.models.filter(m => m.category === true);\nconst router = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n const urlParts = location.pathname.split('/').filter(e => e);\n const urlParams = new URLSearchParams(location.search);\n const target = document.getElementById('app');\n let title = locale('title.home');\n let renderer = (view) => '';\n let panel = 'home';\n if (urlParts.length === 0) {\n App.model.set({ id: '', name: 'Data Pack', category: true, minVersion: '1.15' });\n renderer = Home;\n }\n else if (urlParts[0] === 'settings' && urlParts[1] === 'fields') {\n panel = 'settings';\n renderer = FieldSettings;\n }\n else if (urlParts.length === 1 && categories.map(m => m.id).includes(urlParts[0])) {\n App.model.set(categories.find(m => m.id === urlParts[0]));\n renderer = Home;\n }\n else {\n panel = 'tree';\n const model = (_a = config.models.find(m => m.id === urlParts.join('/'))) !== null && _a !== void 0 ? _a : null;\n App.model.set(model);\n if (model) {\n if (urlParams.has('q')) {\n try {\n const data = atob((_b = urlParams.get('q')) !== null && _b !== void 0 ? _b : '');\n Models[model.id].reset(JSON.parse(data));\n }\n catch (e) { }\n }\n renderer = Generator;\n title = locale('title.generator', [locale(model.id)]);\n }\n else {\n renderer = NotFound;\n }\n }\n const versions = config.versions\n .filter(v => { var _a; return checkVersion(v.id, (_a = App.model.get()) === null || _a === void 0 ? void 0 : _a.minVersion); })\n .map(v => v.id).join(', ');\n document.title = `${title} Minecraft ${versions}`;\n App.mobilePanel.set(panel);\n const view = new View();\n view.mount(target, renderer(view), true);\n});\nwindow.addEventListener(\"popstate\", router);\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n document.body.addEventListener(\"click\", e => {\n if (e.target instanceof Element\n && e.target.hasAttribute('data-link')\n && e.target.hasAttribute('href')) {\n e.preventDefault();\n const target = e.target.getAttribute('href');\n Tracker.pageview(target);\n history.pushState(null, '', target);\n router();\n }\n });\n router();\n});\n"],"sourceRoot":""} \ No newline at end of file