diff --git a/js/bundle.js b/js/bundle.js index 9e661973..22f423cc 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":"sk","name":"Slovenčina"},{"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.IntProvider=t.FloatProvider=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"})}})),t.FloatProvider=e=>s("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:o.NumberNode(e)},"minecraft:uniform":{value:o.ObjectNode({min_inclusive:o.NumberNode(e),max_exclusive:o.NumberNode(e)})},"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()})}}),e.register("float_provider",t.FloatProvider()),t.IntProvider=e=>s("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:o.NumberNode({integer:!0,...e})},"minecraft:uniform":{value:o.ObjectNode({min_inclusive:o.NumberNode({integer:!0,...e}),max_inclusive:o.NumberNode({integer:!0,...e})})},"minecraft:biased_to_bottom":{value:o.ObjectNode({min_inclusive:o.NumberNode({integer:!0,...e}),max_inclusive:o.NumberNode({integer:!0,...e})})},"minecraft:clamped":{value:o.ObjectNode({min_inclusive:o.NumberNode({integer:!0,...e}),max_inclusive:o.NumberNode({integer:!0,...e}),source:n("int_provider")})}}),e.register("int_provider",t.IntProvider()),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"})),e.register("height_provider",s("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:o.Opt(o.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:o.Opt(o.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:o.Opt(o.NumberNode({integer:!0}))}})),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.Opt(o.NumberNode({min:0,max:255,integer:!0})),max_dist:o.Opt(o.NumberNode({min:0,max:255,integer:!0})),min_chance:o.Opt(o.NumberNode({min:0,max:1})),max_chance:o.Opt(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.Opt(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),a={count:r.IntProvider({min:0,max:256})};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":a,"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":a,"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.Opt(o.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:o.NumberNode({integer:!0,min:0})},"minecraft:range":{height:i("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:o.NumberNode({integer:!0})}}},{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"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{seed:o.NumberNode({integer:!0}),settings:r.NoiseSettingsPresets(i("noise_settings")),biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:o.NumberNode({integer:!0}),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:the_end":{seed:o.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:o.NumberNode({integer:!0}),large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"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(),temperature:o.NumberNode(),humidity:o.NumberNode(),weirdness:o.NumberNode(),offset:o.NumberNode()})},{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.Opt(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: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:o.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:o.Opt(o.BooleanNode()),crystal_beam_target:o.Opt(i("block_pos")),spikes:o.ListNode(o.ObjectNode({centerX:o.Opt(o.NumberNode({integer:!0})),centerZ:o.Opt(o.NumberNode({integer:!0})),radius:o.Opt(o.NumberNode({integer:!0})),height:o.Opt(o.NumberNode({integer:!0})),guarded:o.Opt(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.Opt(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_bonemeal_flower":a,"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.Opt(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"}})},"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:lightning_strike","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:started_riding","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:using_item","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")}))),source:o.Opt(n)},"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:lightning_strike":{lightning:n,bystander:n},"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:using_item":{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"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{seed:o.NumberNode({integer:!0}),settings:r.NoiseSettingsPresets(i("noise_settings")),biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:o.NumberNode({integer:!0}),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:the_end":{seed:o.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:o.NumberNode({integer:!0}),large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"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(),temperature:o.NumberNode(),humidity:o.NumberNode(),weirdness:o.NumberNode(),offset:o.NumberNode()})},{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({items:o.Opt(o.ListNode(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({blocks:o.Opt(o.ListNode(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")),stepping_on: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"))),player:o.Opt(i("player_predicate")),vehicle:o.Opt(i("entity_predicate")),passenger:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),lightning_bolt:o.Opt(o.ObjectNode({blocks_set_on_fire:o.Opt(i("int_bounds")),entity_struck:o.Opt(i("entity_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"}}),separator:o.Opt(i("text_component")),...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:"multiple",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),separator:o.Opt(i("text_component")),...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:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),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),a={vertical_rotation:r.FloatProvider(),shape:o.ObjectNode({distance_factor: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()})},s={horizontal_radius_multiplier:r.FloatProvider(),vertical_radius_multiplier:r.FloatProvider(),floor_level:r.FloatProvider({min:-1,max:1})};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}),y:i("height_provider"),yScale:r.FloatProvider(),lava_level:i("vertical_anchor"),aquifers_enabled:o.BooleanNode(),debug_settings:o.Opt(o.ObjectNode({debug_mode:o.Opt(o.BooleanNode()),air_state:o.Opt(i("block_state")),water_state:o.Opt(i("block_state")),lava_state:o.Opt(i("block_state")),barrier_state:o.Opt(i("block_state"))})),[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:canyon":a,"minecraft:cave":s,"minecraft:nether_cave":s}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const 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.Opt(o.BooleanNode()),project:o.Opt(o.BooleanNode()),need_water:o.Opt(o.BooleanNode()),xspread:o.Opt(o.NumberNode({integer:!0,min:0})),yspread:o.Opt(o.NumberNode({integer:!0,min:0})),zspread:o.Opt(o.NumberNode({integer:!0,min:0})),tries:o.Opt(o.NumberNode({integer:!0,min:1})),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.IntProvider({min:0,max:8}),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.Opt(o.NumberNode({integer:!0}))},l=o.ObjectNode({target:i("rule_test"),state:i("block_state")}),m={size:o.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:o.NumberNode({min:0,max:1}),targets:o.ListNode(l)},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.IntProvider({min:1,max:128}),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.IntProvider(),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.IntProvider({min:0,max:3}),height:r.IntProvider({min:1,max:10})},"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.IntProvider({min:0,max:16}),rim_size:r.IntProvider({min:0,max:16})},"minecraft:disk":c,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:o.NumberNode({integer:!0,min:1,max:512}),height:r.IntProvider({min:0,max:128}),radius:r.IntProvider({min:0,max:128}),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.IntProvider({min:0,max:128}),density:r.FloatProvider({min:0,max:2}),wetness:r.FloatProvider({min:0,max:2}),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:end_gateway":{exact:o.BooleanNode(),exit:o.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:o.Opt(o.BooleanNode()),crystal_beam_target:o.Opt(i("block_pos")),spikes:o.ListNode(o.ObjectNode({centerX:o.Opt(o.NumberNode({integer:!0})),centerZ:o.Opt(o.NumberNode({integer:!0})),radius:o.Opt(o.NumberNode({integer:!0})),height:o.Opt(o.NumberNode({integer:!0})),guarded:o.Opt(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")),cannot_replace:a({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:a({validator:"resource",params:{pool:"$tag/block"}})}),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()),outer_wall_distance:o.Opt(r.IntProvider({min:1,max:20})),distribution_points:o.Opt(r.IntProvider({min:1,max:20})),point_offset:o.Opt(r.IntProvider({min:0,max:10})),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.IntProvider()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":d,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.Opt(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.IntProvider({min:0,max:60}),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.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":s,"minecraft:ore":m,"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:replace_single_block":{targets:o.ListNode(l)},"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}),allowed_vertical_water_for_tree:o.NumberNode({integer:!0,min:1,max:64}),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":m,"minecraft:sea_pickle":{count:r.IntProvider({min:0,max:256})},"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.Opt(o.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:o.Opt(o.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:o.Opt(o.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:o.Opt(o.NumberNode({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"),sapling_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.IntProvider({min:1,max:64}),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.IntProvider({min:0,max:16}),offset:r.IntProvider({min:0,max:16}),[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.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:r.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:r.IntProvider({min:1,max:512}),leaf_placement_attempts:o.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:r.IntProvider({min:0,max:24})}}},{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:underwater_magma":{floor_search_range:o.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:o.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:o.NumberNode({min:0,max:1})},"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.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries: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":{size:r.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const 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}),min_surface_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),noise_caves_enabled:o.BooleanNode(),noodle_caves_enabled:o.BooleanNode(),aquifers_enabled:o.BooleanNode(),deepslate_enabled:o.BooleanNode(),ore_veins_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,min:0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0,min: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=o.Reference.bind(void 0,e),n={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":n,"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:nether_fossil":{height:r("height_provider")},"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":n,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.Opt(o.BooleanNode())},"minecraft:village":n}},{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"}})},"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:"6f1d8ccebbbabcea35ea2f867df910ef8f5f6fc8",url:y},{id:"vanilla_datapack_summary",hash:"2f0bb68f9a983633a36f5809680ce1cd3504a117",url:N}];function O(e,t){return v(this,void 0,void 0,(function*(){const i=b.versions.find(e=>e.id===t);i?(console.debug("[fetchData] "+JSON.stringify(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*(){console.debug(`[deleteMatching] ${e.id} '${localStorage.getItem("cached_"+e.id)}' < '${e.hash}' ${e.url}/${i.refs[e.id]}`),yield function(e){return v(this,void 0,void 0,(function*(){try{const t=yield caches.open("misode-v1");console.debug("[deleteMatching] Opened cache misode-v1");const i=[];for(const o of yield t.keys())e(o.url)&&i.push(t.delete(o));console.debug(`[deleteMatching] Removing ${i.length} cache objects...`),yield Promise.all(i)}catch(e){console.warn("[deleteMatching] Failed to open cache misode-v1: "+e.message)}}))}(t=>t.startsWith(`${e.url}/${i.refs[e.id]}`)),console.debug(`[deleteMatching] Done! ${e.id} ${e.hash} '${localStorage.getItem("cached_"+e.id)}'`),localStorage.setItem("cached_"+e.id,e.hash),console.debug(`[deleteMatching] Set! ${e.id} ${e.hash} '${localStorage.getItem("cached_"+e.id)}'`)}))))),yield Promise.all([k(i,e),x(i),j(i,e)])):console.error(`[fetchData] Unknown version ${i} in ${JSON.stringify(b.versions)}`)}))}function k(e,t){return v(this,void 0,void 0,(function*(){console.debug("[fetchRegistries] "+e.id);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 fetching 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(console.debug("[fetchBlockStateMap] "+e.id),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*(){console.debug("[fetchDynamicRegistries] "+e.id);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*(){try{const i=yield caches.open("misode-v1");console.debug("[getData] Opened cache misode-v1 "+e);const o=yield i.match(e);if(o&&o.ok)return console.debug("[getData] Retrieving cached data "+e),yield o.json();console.debug("[getData] fetching data "+e);const r=yield fetch(e),n=t(yield r.json());return yield i.put(e,new Response(JSON.stringify(n))),n}catch(i){console.warn("[getData] Failed to open cache misode-v1: "+i.message),console.debug("[getData] fetching data "+e);const o=yield fetch(e);return t(yield o.json())}}))}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 D(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 q{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){console.debug(`[View.mount] ${t.replace(/\n/g,"").slice(0,40)}...`),e.innerHTML=t,this.mounted(e,i)}}const T=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],H=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];const U=(e,t,i)=>ga("send","event",e,t,i),W=(e,t)=>ga("set","dimension"+e,t),J=e=>{ga("set","page",e),ga("send","pageview")},Y=e=>U("Generator","set-version",e),G=e=>U("Preview","set-preview",e),X=()=>U("Generator","reset"),K=(e=!1)=>U("Generator","undo",e?"Hotkey":"Menu"),Z=(e=!1)=>U("Generator","redo",e?"Hotkey":"Menu"),Q=()=>U("JsonOutput","copy"),ee=()=>U("JsonOutput","download"),te=()=>U("JsonOutput","share"),ie=()=>U("Preview","hide-preview"),oe=e=>U("Generator","toggle-minimize",e?"minimized":"unminimized"),re=e=>U("Generator","load-preset",e),ne=e=>W(1,e),ae=e=>W(3,e),se=e=>W(4,e),ce=e=>W(5,e);var de=function(e,t,i,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:{}};console.debug(`[App] LocalStorage=${"localStorage"in window} Caches=${"caches"in window}`),ue.version.watchRun(e=>de(void 0,void 0,void 0,(function*(){console.debug("[App.version.watchRun] "+e),ue.schemasLoaded.set(!1),yield function(e){return de(this,void 0,void 0,(function*(){console.debug("[updateSchemas] "+e),ue.blockStateRegistry={};const t=le[e].getCollections();console.debug("[updateSchemas] Done getting collections! "+Object.keys(t.registry).length),ue.collections.set(t),yield O(t,e),console.debug("[updateSchemas] Done fetching data!");const i=le[e].getSchemas(t);console.debug("[updateSchemas] Done getting schemas! "+Object.keys(i.registry).length),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))}),console.debug("[updateSchemas] Done!")}))}(e),ue.schemasLoaded.set(!0),console.debug("[App.version.watchRun] Done! "+e)}))),ue.theme.watchRun(e=>{console.debug("[App.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*(){console.debug("[App.language.watchRun] "+e),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),console.debug("[App.language.watchRun] Done! "+e)}))),ue.localesLoaded.watch(e=>{console.debug("[App.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=>{console.debug("[App.schemasLoaded.watch] "+e),ue.loaded.set(e&&ue.localesLoaded.get())}),ue.mobilePanel.watchRun(e=>{console.debug("[App.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}},De=new o.DataModel(Object(o.MapNode)(Object(o.StringNode)(),Object(o.StringNode)()),{historyMax:0}),qe={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 ${Ue(a,o)}\n ${We(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(De,new o.Path([Ve(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 ${Ue(s,a)}\n ${We(s,a)}\n \n ${l}\n \n ${m}\n
      \n ${p?`
      ${p}
      `:""}\n
      `}).join("")),["",u,f]},number({integer:e,config:t},i,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){let a="";e.optional()&&(a=void 0===r?``:``);let s="",c="";if("object"==typeof r&&void 0!==r&&(!e.optional()||void 0!==r)){const l=t(o),m=Object.keys(l),p=0===o.modelArr.length?null:e.hook(Ee,o,o);!p||l[p].hidden&&l[p].hidden()||(a+=Ue(o.push(p),n),a+=We(o.push(p),n),s+=l[p].hook(this,o.push(p),r[p],n)[1]);c=(ue.treeMinimized.get()?m.filter(e=>void 0!==r[e]):m).filter(e=>p!==e).filter(e=>l[e].enabled(o)).map(e=>{var t;const a=l[e],s=i(o,e),c=s.getContext().join("."),m=ue.settings.fields.find(e=>(null==e?void 0:e.path)&&c.endsWith(e.path));if(a.hidden&&a.hidden()||(null==m?void 0:m.hidden))return"";const p=a.category(s),[u,_,f]=a.hook(this,s,r[e],n);return"Properties"===e&&""===_?"":`
      \n
      \n ${Ue(s,n)}\n ${We(s,n)}\n ${u}\n \n ${_}\n
      \n ${f?`
      ${f}
      `:""}\n
      `}).join("")}return s+=e.hook(Re,o,n)||"",["",a+s,c]},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["",Te(e,t,r)+n,""]}};function Te({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 Fe(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(D(t.contextPush(a[0]).getContext()))return Fe(e,t,a,n)}const l=c();return`\n ${0===a.length?"":`\n ${a.map(e=>``}`}function Fe(e,t,i,o){return``}function Ve(e){var t,i=0;for(t=0;t`
      {e.getElementsByTagName("span")[0].classList.remove("show")},{capture:!0,once:!0})})}">\n ${i}${M[t]}\n
      `,Ye=(e,t)=>`data-id="${t.register(t=>{const i=()=>{var i;const o=document.createElement("div");o.classList.add("node-menu");const r=D(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 Ge=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 Xe=(e,t)=>{const i=()=>{if(ue.loaded.get()){const i=new o.ModelPath(t),r=t.schema.hook(qe,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
      `},Ke={base:({},e,t)=>t,choice({switchNode:e},t,i){return e.hook(this,t,i)},list({children:e},t,i){return Array.isArray(i)?i.map((i,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}},Ze=(e,t)=>{const i=e=>{const i=t.schema.hook(Ke,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
      `},Qe=(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
      `,et=(tt={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.assign(Object.assign({},tt),{choice(e,t,i,...o){var r;(null!==(r=tt.choice)&&void 0!==r?r:tt.base)(e,t,i,...o),e.switchNode.hook(this,t,i,...o)},list(e,t,i,...o){var r;(null!==(r=tt.list)&&void 0!==r?r:tt.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=tt.map)&&void 0!==r?r:tt.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=tt.object)&&void 0!==r?r:tt.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 tt;const it=e=>{const t=pe[ue.model.get().id];t.listeners=[];const i=()=>ue.preview.get()?Ae(e,{direction:"vertical",sizes:[60,40]},[Ze(e,t),Qe(e,t)]):Ze(e,t),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(et,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]},[Xe(e,t),`
      ${i()}
      `])}\n
      \n ${((e,t)=>{const i=()=>ue.jsonError.get()?`
      \n
      \n ${d(ue.jsonError.get())}\n
      \n
      \n
      \n ${M.issue_opened}\n
      `:0===t.errors.count()?"":`${ue.errorsVisible.get()?`\n
      \n ${t.errors.getAll().map(e=>`\n
      \n ${e.path.toString()}\n -\n ${d(E(e.error,e.params))}\n
      \n `).join("")}\n
      \n `:""}\n ${ge(e,[[!0,"chevron_down"],[!1,"issue_opened"]],ue.errorsVisible)}`;return`\n
      \n ${i()}\n
      `})(e,t)}`};var ot=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 rt=b.models.filter(e=>!0===e.category),nt=()=>ot(void 0,void 0,void 0,(function*(){var e,t;localStorage.length;const i=location.pathname.split("/").filter(e=>e),o=new URLSearchParams(location.search);console.debug("[router] "+i.join("/"));const 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&&rt.map(e=>e.id).includes(i[0]))ue.model.set(rt.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=it,n=E("title.generator",[E(r.id)])}else a=ye}console.debug("[router] Renderer="+a.name);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}`,console.debug(`[router] Title=${n} Versions=${c}`),ue.mobilePanel.set(s);const d=new q;d.mount(r,a(d),!0),console.debug("[router] Done!")}));window.addEventListener("popstate",nt),document.addEventListener("DOMContentLoaded",()=>{console.debug(`[DOMContentLoaded] LocalStorage=${"localStorage"in window} Caches=${"caches"in window}`),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");console.debug("[data-link] "+t),J(t),history.pushState(null,"",t),nt()}}),nt()})}]); +!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":"sk","name":"Slovenčina"},{"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.IntProvider=t.FloatProvider=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 l={};a&&Object.keys(c[a]).forEach(e=>{l[e]=o.Mod(c[a][e],{enabled:e=>void 0===e.push("type").get()})});const d=o.ObjectNode({type:o.Mod(o.Opt(r({validator:"resource",params:{pool:e}})),{hidden:()=>!0}),[o.Switch]:[{push:"type"}],[o.Case]:c,...l},{context:s,disableSwitchContext:!0}),m=[{type:t,node:c[n][i]}];return a&&m.push({type:"object",priority:-1,node:d}),Object.keys(c).forEach(e=>{m.push({type:e,match:t=>{var i;if("minecraft:"+(null===(i=null==t?void 0:t.type)||void 0===i?void 0:i.replace(/^minecraft:/,""))===e)return!0;const 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:d,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"})}})),t.FloatProvider=e=>s("float_provider_type","number","value","minecraft:constant",null,"float_provider",{"minecraft:constant":{value:o.NumberNode(e)},"minecraft:uniform":{value:o.ObjectNode({min_inclusive:o.NumberNode(e),max_exclusive:o.NumberNode(e)})},"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()})}}),e.register("float_provider",t.FloatProvider()),t.IntProvider=e=>s("int_provider_type","number","value","minecraft:constant",null,"int_provider",{"minecraft:constant":{value:o.NumberNode({integer:!0,...e})},"minecraft:uniform":{value:o.ObjectNode({min_inclusive:o.NumberNode({integer:!0,...e}),max_inclusive:o.NumberNode({integer:!0,...e})})},"minecraft:biased_to_bottom":{value:o.ObjectNode({min_inclusive:o.NumberNode({integer:!0,...e}),max_inclusive:o.NumberNode({integer:!0,...e})})},"minecraft:clamped":{value:o.ObjectNode({min_inclusive:o.NumberNode({integer:!0,...e}),max_inclusive:o.NumberNode({integer:!0,...e}),source:n("int_provider")})}}),e.register("int_provider",t.IntProvider()),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"})),e.register("height_provider",s("height_provider_type","number","value","minecraft:constant",null,"height_provider",{"minecraft:constant":{value:n("vertical_anchor")},"minecraft:uniform":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor")},"minecraft:biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:o.Opt(o.NumberNode({integer:!0,min:1}))},"minecraft:very_biased_to_bottom":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),inner:o.Opt(o.NumberNode({integer:!0,min:1}))},"minecraft:trapezoid":{min_inclusive:n("vertical_anchor"),max_inclusive:n("vertical_anchor"),plateau:o.Opt(o.NumberNode({integer:!0}))}})),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:protected_blocks":{value:n({validator:"resource",params:{pool:"$tag/block"}})},"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.Opt(o.NumberNode({min:0,max:255,integer:!0})),max_dist:o.Opt(o.NumberNode({min:0,max:255,integer:!0})),min_chance:o.Opt(o.NumberNode({min:0,max:1})),max_chance:o.Opt(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),l=i(96);l.alea=o,l.xor128=r,l.xorwow=n,l.xorshift7=a,l.xor4096=s,l.tychei=c,e.exports=l},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModelPath=t.Path=t.relativePath=void 0,t.relativePath=function(e,t){return t.reduce((e,t)=>"pop"===t?e.pop():e.push(t.push),e)};class 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.Opt(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),a={count:r.IntProvider({min:0,max:256})};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":a,"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":a,"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.Opt(o.NumberNode())},"minecraft:decorated":{outer:i("configured_decorator"),inner:i("configured_decorator")},"minecraft:heightmap":{heightmap:n({enum:"heightmap_type"})},"minecraft:heightmap_spread_double":{heightmap:n({enum:"heightmap_type"})},"minecraft:lava_lake":{chance:o.NumberNode({integer:!0,min:0})},"minecraft:range":{height:i("height_provider")},"minecraft:water_depth_threshold":{max_water_depth:o.NumberNode({integer:!0})}}},{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,...l}=e,d=e=>{if(void 0===s)return l;const t=r.relativePath(e,s).get(),i=c[t];return{...l,...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:{},l=Object.keys(a),d=(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&&l.includes(t)?d.contextPush(n):d).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=d(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=d(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=l;if(s){const i=r.relativePath(e,s);let d=i.get();if(e.equals(i.pop())){const r=i.last();d=l[r].validate(e.push(r),t[r],new n.Errors,o)}a={...a,...c[d]}}const d=Object.keys(a),m=d.filter(e=>!a[e].optional()),p=new Set([...m,...Object.keys(t)]);let u={};return p.forEach(r=>{if(d.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:l,filter:s,cases:c,getActiveFields:d,getChildModelPath:m},t,...i)}}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Reference=void 0,t.Reference=(e,t)=>({type(i){return e.get(t).type.bind(this)(i)},category(i){return e.get(t).category.bind(this)(i)},default(){return e.get(t).default.bind(this)()},transform:(i,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),l=i(44),d=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),l.initRecipeSchemas(e,t),d.initTagsSchemas(e,t),m.initTextComponentSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const 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 l(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 d=l(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=l(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=l(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=l(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:d,[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),l=i(54),d=i(55),m=i(56),p=i(57),u=i(58),_=i(59),f=i(67);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initLootTableSchemas(e,t),l.initPackMcmetaSchemas(e,t),d.initPredicatesSchemas(e,t),m.initRecipeSchemas(e,t),p.initTagsSchemas(e,t),u.initTextComponentSchemas(e,t),_.initWorldgenSchemas(e,t),f.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const 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"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{seed:o.NumberNode({integer:!0}),settings:r.NoiseSettingsPresets(i("noise_settings")),biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:o.NumberNode({integer:!0}),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:the_end":{seed:o.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:o.NumberNode({integer:!0}),large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"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(),temperature:o.NumberNode(),humidity:o.NumberNode(),weirdness:o.NumberNode(),offset:o.NumberNode()})},{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 l(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 d=l(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=l(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=l(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=l(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:d,[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),l=i(64),d=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),l.initStructureFeatureSchemas(e,t),d.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const 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.Opt(o.NumberNode({integer:!0}))},l={state:i("block_state"),size:o.NumberNode({integer:!0,min:0,max:64}),target:i("rule_test")},d={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: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:o.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:o.Opt(o.BooleanNode()),crystal_beam_target:o.Opt(i("block_pos")),spikes:o.ListNode(o.ObjectNode({centerX:o.Opt(o.NumberNode({integer:!0})),centerZ:o.Opt(o.NumberNode({integer:!0})),radius:o.Opt(o.NumberNode({integer:!0})),height:o.Opt(o.NumberNode({integer:!0})),guarded:o.Opt(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.Opt(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_bonemeal_flower":a,"minecraft:no_surface_ore":l,"minecraft:ore":l,"minecraft:random_patch":a,"minecraft:random_boolean_selector":{feature_false:m,feature_true:m},"minecraft:random_selector":{features:o.ListNode(o.ObjectNode({chance:o.NumberNode({min:0,max:1}),feature:m})),default:m},"minecraft:sea_pickle":d,"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.Opt(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"}})},"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:lightning_strike","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:started_riding","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:using_item","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),l=i(75),d=i(76),m=i(77),p=i(78),u=i(79),_=i(80),f=i(81),g=i(89);t.initSchemas=function(e,t){r.initCommonSchemas(e,t),o.initAdvancementSchemas(e,t),n.initConditionSchemas(e,t),s.initDimensionTypeSchemas(e,t),a.initDimensionSchemas(e,t),c.initItemModifierSchemas(e,t),l.initLootTableSchemas(e,t),d.initPackMcmetaSchemas(e,t),m.initPredicatesSchemas(e,t),p.initRecipeSchemas(e,t),u.initTagsSchemas(e,t),_.initTextComponentSchemas(e,t),f.initWorldgenSchemas(e,t),g.initWorldSettingsSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initAdvancementSchemas=void 0;const 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")}))),source:o.Opt(n)},"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:lightning_strike":{lightning:n,bystander:n},"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:using_item":{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"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:noise":{seed:o.NumberNode({integer:!0}),settings:r.NoiseSettingsPresets(i("noise_settings")),biome_source:o.ObjectNode({type:n({validator:"resource",params:{pool:"worldgen/biome_source"}}),[o.Switch]:[{push:"type"}],[o.Case]:{"minecraft:fixed":{biome:n({validator:"resource",params:{pool:"$worldgen/biome"}})},"minecraft:multi_noise":{seed:o.NumberNode({integer:!0}),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:the_end":{seed:o.NumberNode({integer:!0})},"minecraft:vanilla_layered":{seed:o.NumberNode({integer:!0}),large_biomes:o.Opt(o.BooleanNode()),legacy_biome_init_layer:o.Opt(o.BooleanNode())}}},{category:"predicate",disableSwitchContext:!0})},"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(),temperature:o.NumberNode(),humidity:o.NumberNode(),weirdness:o.NumberNode(),offset:o.NumberNode()})},{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 l(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 d=l(r.LootConditions,"loot_condition_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_condition_type"}})),m=l(r.LootFunctions,"loot_function_type",e=>a({validator:"resource",params:{pool:e instanceof Array?e:"loot_function_type"}})),p=l(r.LootEntitySources,"entity_source",e=>a({enum:e})),u=l(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:d,[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({items:o.Opt(o.ListNode(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({blocks:o.Opt(o.ListNode(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"))),looking_at:o.Opt(i("entity_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")),stepping_on: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"))),player:o.Opt(i("player_predicate")),vehicle:o.Opt(i("entity_predicate")),passenger:o.Opt(i("entity_predicate")),targeted_entity:o.Opt(i("entity_predicate")),lightning_bolt:o.Opt(o.ObjectNode({blocks_set_on_fire:o.Opt(i("int_bounds")),entity_struck:o.Opt(i("entity_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"}}),separator:o.Opt(i("text_component")),...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:"multiple",type:"entities"}})),storage:o.Opt(r({validator:"resource",params:{pool:"$storage"}})),interpret:o.Opt(o.BooleanNode()),separator:o.Opt(i("text_component")),...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),l=i(86),d=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),l.initStructureFeatureSchemas(e,t),d.initSurfaceBuilderSchemas(e,t),m.initTemplatePoolSchemas(e,t)}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initBiomeSchemas=void 0;const 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:["monster","creature","ambient","underground_water_creature","water_creature","water_ambient","misc"]}),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),a={vertical_rotation:r.FloatProvider(),shape:o.ObjectNode({distance_factor: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()})},s={horizontal_radius_multiplier:r.FloatProvider(),vertical_radius_multiplier:r.FloatProvider(),floor_level:r.FloatProvider({min:-1,max:1})};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}),y:i("height_provider"),yScale:r.FloatProvider(),lava_level:i("vertical_anchor"),aquifers_enabled:o.BooleanNode(),debug_settings:o.Opt(o.ObjectNode({debug_mode:o.Opt(o.BooleanNode()),air_state:o.Opt(i("block_state")),water_state:o.Opt(i("block_state")),lava_state:o.Opt(i("block_state")),barrier_state:o.Opt(i("block_state"))})),[o.Switch]:["pop",{push:"type"}],[o.Case]:{"minecraft:canyon":a,"minecraft:cave":s,"minecraft:nether_cave":s}})},{context:"carver"}),{default:()=>({type:"minecraft:cave",config:{probability:.1}})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initFeatureSchemas=void 0;const 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.Opt(o.BooleanNode()),project:o.Opt(o.BooleanNode()),need_water:o.Opt(o.BooleanNode()),xspread:o.Opt(o.NumberNode({integer:!0,min:0})),yspread:o.Opt(o.NumberNode({integer:!0,min:0})),zspread:o.Opt(o.NumberNode({integer:!0,min:0})),tries:o.Opt(o.NumberNode({integer:!0,min:1})),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.IntProvider({min:0,max:8}),half_height:o.NumberNode({integer:!0,min:0,max:4}),targets:o.ListNode(i("block_state"))},l={cap_provider:i("block_state_provider"),stem_provider:i("block_state_provider"),foliage_radius:o.Opt(o.NumberNode({integer:!0}))},d=o.ObjectNode({target:i("rule_test"),state:i("block_state")}),m={size:o.NumberNode({integer:!0,min:0,max:64}),discard_chance_on_air_exposure:o.NumberNode({min:0,max:1}),targets:o.ListNode(d)},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.IntProvider({min:1,max:128}),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.IntProvider(),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.IntProvider({min:0,max:3}),height:r.IntProvider({min:1,max:10})},"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.IntProvider({min:0,max:16}),rim_size:r.IntProvider({min:0,max:16})},"minecraft:disk":c,"minecraft:dripstone_cluster":{floor_to_ceiling_search_range:o.NumberNode({integer:!0,min:1,max:512}),height:r.IntProvider({min:0,max:128}),radius:r.IntProvider({min:0,max:128}),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.IntProvider({min:0,max:128}),density:r.FloatProvider({min:0,max:2}),wetness:r.FloatProvider({min:0,max:2}),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:end_gateway":{exact:o.BooleanNode(),exit:o.Opt(i("block_pos"))},"minecraft:end_spike":{crystal_invulnerable:o.Opt(o.BooleanNode()),crystal_beam_target:o.Opt(i("block_pos")),spikes:o.ListNode(o.ObjectNode({centerX:o.Opt(o.NumberNode({integer:!0})),centerZ:o.Opt(o.NumberNode({integer:!0})),radius:o.Opt(o.NumberNode({integer:!0})),height:o.Opt(o.NumberNode({integer:!0})),guarded:o.Opt(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")),cannot_replace:a({validator:"resource",params:{pool:"$tag/block"}}),invalid_blocks:a({validator:"resource",params:{pool:"$tag/block"}})}),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()),outer_wall_distance:o.Opt(r.IntProvider({min:1,max:20})),distribution_points:o.Opt(r.IntProvider({min:1,max:20})),point_offset:o.Opt(r.IntProvider({min:0,max:10})),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.IntProvider()})),body_provider:i("block_state_provider"),head_provider:i("block_state_provider")},"minecraft:huge_brown_mushroom":l,"minecraft:huge_fungus":{hat_state:i("block_state"),decor_state:i("block_state"),stem_state:i("block_state"),valid_base_block:i("block_state"),planted:o.Opt(o.BooleanNode())},"minecraft:huge_red_mushroom":l,"minecraft:ice_patch":c,"minecraft:iceberg":{state:i("block_state")},"minecraft:lake":{state:i("block_state")},"minecraft:large_dripstone":{floor_to_ceiling_search_range:o.Opt(o.NumberNode({integer:!0,min:1,max:512})),column_radius:r.IntProvider({min:0,max:60}),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.IntProvider({min:0,max:12})},"minecraft:no_bonemeal_flower":s,"minecraft:ore":m,"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:replace_single_block":{targets:o.ListNode(d)},"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}),allowed_vertical_water_for_tree:o.NumberNode({integer:!0,min:1,max:64}),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":m,"minecraft:sea_pickle":{count:r.IntProvider({min:0,max:256})},"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.Opt(o.NumberNode({integer:!0,min:0,max:100})),empty_space_search_radius:o.Opt(o.NumberNode({integer:!0,min:0,max:20})),max_offset_from_origin:o.Opt(o.NumberNode({integer:!0,min:0,max:20})),chance_of_taller_dripstone:o.Opt(o.NumberNode({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"),sapling_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.IntProvider({min:1,max:64}),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.IntProvider({min:0,max:16}),offset:r.IntProvider({min:0,max:16}),[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.IntProvider({min:0,max:24})},"minecraft:pine_foliage_placer":{height:r.IntProvider({min:0,max:24})},"minecraft:random_spread_foliage_placer":{foliage_height:r.IntProvider({min:1,max:512}),leaf_placement_attempts:o.NumberNode({integer:!0,min:0,max:256})},"minecraft:spruce_foliage_placer":{trunk_height:r.IntProvider({min:0,max:24})}}},{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:underwater_magma":{floor_search_range:o.NumberNode({integer:!0,min:0,max:512}),placement_radius_around_floor:o.NumberNode({integer:!0,min:0,max:64}),placement_probability_per_valid_position:o.NumberNode({min:0,max:1})},"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.IntProvider(),source:i("block_state_provider")},"minecraft:rotated_block_provider":{state:i("block_state")},"minecraft:simple_state_provider":{state:i("block_state")},"minecraft:weighted_state_provider":{entries: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":{size:r.IntProvider({min:0})}}},{context:"block_placer"}),{default:()=>({type:"minecraft:simple_block_placer"})}))}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initNoiseSettingsSchemas=void 0;const 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}),min_surface_level:o.NumberNode({integer:!0}),disable_mob_generation:o.BooleanNode(),noise_caves_enabled:o.BooleanNode(),noodle_caves_enabled:o.BooleanNode(),aquifers_enabled:o.BooleanNode(),deepslate_enabled:o.BooleanNode(),ore_veins_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,min:0}),offset:o.NumberNode({integer:!0})}),top_slide:o.ObjectNode({target:o.NumberNode({integer:!0}),size:o.NumberNode({integer:!0,min: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=o.Reference.bind(void 0,e),n={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":n,"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:nether_fossil":{height:r("height_provider")},"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":n,"minecraft:ruined_portal":{portal_type:i({enum:["standard","desert","jungle","mountain","nether","ocean","swamp"]})},"minecraft:shipwreck":{is_beached:o.Opt(o.BooleanNode())},"minecraft:village":n}},{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"}})},"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),l=a.pow(2,52),d=2*l;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=d;)e/=2,t/=2,i>>>=1;return(e+i)/t};return h.int32=function(){return 0|g.g(4)},h.quick=function(){return g.g(4)/4294967296},h.double=h,_(f(g.S),n),(t.pass||i||function(e,t,i,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 l(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function d(e){const t=Math.abs(function(e){let t=0;for(let i=0;i>8)%256,(t>>16)%256]}function m(e,t,i){return Math.max(e,Math.min(t,i))}function p(e,t,i){return i<0?e:i>1?t:u(i,e,t)}function u(e,t,i){return t+e*(i-t)}function _(e,t,i,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:"becf26d42869098efba34e91eea3cc6663160d35",url:y},{id:"vanilla_datapack_summary",hash:"8a2f8022eb88840e6871ff6a72f63d6e64afc323",url:N}];function O(e,t){return v(this,void 0,void 0,(function*(){const i=b.versions.find(e=>e.id===t);i?(console.debug("[fetchData] "+JSON.stringify(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*(){console.debug(`[deleteMatching] ${e.id} '${localStorage.getItem("cached_"+e.id)}' < '${e.hash}' ${e.url}/${i.refs[e.id]}`),yield function(e){return v(this,void 0,void 0,(function*(){try{const t=yield caches.open("misode-v1");console.debug("[deleteMatching] Opened cache misode-v1");const i=[];for(const o of yield t.keys())e(o.url)&&i.push(t.delete(o));console.debug(`[deleteMatching] Removing ${i.length} cache objects...`),yield Promise.all(i)}catch(e){console.warn("[deleteMatching] Failed to open cache misode-v1: "+e.message)}}))}(t=>t.startsWith(`${e.url}/${i.refs[e.id]}`)),console.debug(`[deleteMatching] Done! ${e.id} ${e.hash} '${localStorage.getItem("cached_"+e.id)}'`),localStorage.setItem("cached_"+e.id,e.hash),console.debug(`[deleteMatching] Set! ${e.id} ${e.hash} '${localStorage.getItem("cached_"+e.id)}'`)}))))),yield Promise.all([k(i,e),x(i),j(i,e)])):console.error(`[fetchData] Unknown version ${i} in ${JSON.stringify(b.versions)}`)}))}function k(e,t){return v(this,void 0,void 0,(function*(){console.debug("[fetchRegistries] "+e.id);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 fetching 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(console.debug("[fetchBlockStateMap] "+e.id),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*(){console.debug("[fetchDynamicRegistries] "+e.id);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*(){try{const i=yield caches.open("misode-v1");console.debug("[getData] Opened cache misode-v1 "+e);const o=yield i.match(e);if(o&&o.ok)return console.debug("[getData] Retrieving cached data "+e),yield o.json();console.debug("[getData] fetching data "+e);const r=yield fetch(e),n=t(yield r.json());return yield i.put(e,new Response(JSON.stringify(n))),n}catch(i){console.warn("[getData] Failed to open cache misode-v1: "+i.message),console.debug("[getData] fetching data "+e);const o=yield fetch(e);return t(yield o.json())}}))}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),l=Math.floor(a),d=Math.floor(s),m=n-c,p=a-l,u=s-d,_=f(m),g=f(p),h=f(u);let b=0;return 0!==o&&(b=Math.floor(Math.min(r,p)/o)*o),this.sampleAndLerp(c,l,d,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 l=this.P(e)+t,d=this.P(l)+i,m=this.P(l+1)+i,p=this.P(e+1)+t,f=this.P(p)+i,g=this.P(p+1)+i;return function(e,t,i,o,r,n,a,s,c,l,d){return u(i,_(e,t,o,r,n,a),_(e,t,s,c,l,d))}(a,s,c,this.gradDot(this.P(d),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(d+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,l=(a-this.offsetY)*n-50*n,d=this.closestBiome(c,l),m=null!==(i=o[d])&&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 D(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 q{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){console.debug(`[View.mount] ${t.replace(/\n/g,"").slice(0,40)}...`),e.innerHTML=t,this.mounted(e,i)}}const T=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 l=((1-2*t/this.chunkCountY+s)*this.settings.density_factor+this.settings.density_offset+this.biomeDepth)*this.biomeScale;c+=l*(l>0?4:1),this.settings.top_slide.size>0&&(c=p(this.settings.top_slide.target,c,(this.chunkCountY-t-this.settings.top_slide.offset)/this.settings.top_slide.size)),this.settings.bottom_slide.size>0&&(c=p(this.settings.bottom_slide.target,c,(t-this.settings.bottom_slide.offset)/this.settings.bottom_slide.size)),i[t]=c}return this.noiseColumnCache[e-this.xOffset]=i,i}getRandomDensity(e){const t=this.depthNoise.getValue(200*e,10,this.depthNoise.getOctaveNoise(0).zo,1,0,!0),i=24.575625*(t<0?.3*-t:t)-2;return i<0?.009486607142857142*i:.006640625*Math.min(i,1)}sampleAndClampNoise(e,t,i,o,r,n,a){let s=0,c=0,l=0,d=1;for(let m=0;m<16;m+=1){const p=$.wrap(e*o*d),u=$.wrap(t*r*d),_=$.wrap(i*o*d),f=r*d,g=this.minLimitPerlinNoise.getOctaveNoise(m);g&&(s+=g.noise(p,u,_,f,t*f)/d);const h=this.maxLimitPerlinNoise.getOctaveNoise(m);if(h&&(c+=h.noise(p,u,_,f,t*f)/d),m<8){const o=this.mainPerlinNoise.getOctaveNoise(m);o&&(l+=o.noise($.wrap(e*n*d),$.wrap(t*a*d),$.wrap(i*n*d),a*d,t*a*d)/d)}d/=2}return p(s/512,c/512,(l/10+1)/2)}}const V=[50,50,51,51,52,52,53,54,56,57,57,58,58,59,60,60,60,59,59,59,60,61,61,62,63,63,64,64,64,65,65,66,66,65,65,66,66,67,67,67,68,69,71,73,74,76,79,80,81,81,82,83,83,82,82,81,81,80,80,80,81,81,82,82],H=[[255,77,54],[59,118,255],[91,207,25],[217,32,245],[255,209,41],[52,204,209]];const U=(e,t,i)=>ga("send","event",e,t,i),W=(e,t)=>ga("set","dimension"+e,t),J=e=>{ga("set","page",e),ga("send","pageview")},Y=e=>U("Generator","set-version",e),G=e=>U("Preview","set-preview",e),X=()=>U("Generator","reset"),K=(e=!1)=>U("Generator","undo",e?"Hotkey":"Menu"),Z=(e=!1)=>U("Generator","redo",e?"Hotkey":"Menu"),Q=()=>U("JsonOutput","copy"),ee=()=>U("JsonOutput","download"),te=()=>U("JsonOutput","share"),ie=()=>U("Preview","hide-preview"),oe=e=>U("Generator","toggle-minimize",e?"minimized":"unminimized"),re=e=>U("Generator","load-preset",e),ne=e=>W(1,e),ae=e=>W(3,e),se=e=>W(4,e),ce=e=>W(5,e);var le=function(e,t,i,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 de={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:{}};console.debug(`[App] LocalStorage=${"localStorage"in window} Caches=${"caches"in window}`),ue.version.watchRun(e=>le(void 0,void 0,void 0,(function*(){console.debug("[App.version.watchRun] "+e),ue.schemasLoaded.set(!1),yield function(e){return le(this,void 0,void 0,(function*(){console.debug("[updateSchemas] "+e),ue.blockStateRegistry={};const t=de[e].getCollections();console.debug("[updateSchemas] Done getting collections! "+Object.keys(t.registry).length),ue.collections.set(t),yield O(t,e),console.debug("[updateSchemas] Done fetching data!");const i=de[e].getSchemas(t);console.debug("[updateSchemas] Done getting schemas! "+Object.keys(i.registry).length),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))}),console.debug("[updateSchemas] Done!")}))}(e),ue.schemasLoaded.set(!0),console.debug("[App.version.watchRun] Done! "+e)}))),ue.theme.watchRun(e=>{console.debug("[App.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=>le(void 0,void 0,void 0,(function*(){console.debug("[App.language.watchRun] "+e),ue.localesLoaded.set(!1),yield function(e){return le(this,void 0,void 0,(function*(){if(R[e]&&(_e||"en"!==e))return;const t=yield(yield fetch(`/locales/${e}.json`)).json();"en"===e&&(_e=!0),R[e]=t}))}(e),ue.localesLoaded.set(!0),console.debug("[App.language.watchRun] Done! "+e)}))),ue.localesLoaded.watch(e=>{console.debug("[App.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=>{console.debug("[App.schemasLoaded.watch] "+e),ue.loaded.set(e&&ue.localesLoaded.get())}),ue.mobilePanel.watchRun(e=>{console.debug("[App.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 l=Me(c[0]).parentNode,d=getComputedStyle?getComputedStyle(l):null,m=d?d.flexDirection:null,p=Ce(t,"sizes")||c.map((function(){return 100/c.length})),u=Ce(t,"minSize",100),_=Array.isArray(u)?u:c.map((function(){return u})),f=Ce(t,"expandToMin",!1),g=Ce(t,"gutterSize",10),h=Ce(t,"gutterAlign","center"),b=Ce(t,"snapOffset",30),v=Ce(t,"dragInterval",1),y=Ce(t,"direction","horizontal"),N=Ce(t,"cursor","horizontal"===y?"col-resize":"row-resize"),w=Ce(t,"gutter",Le),O=Ce(t,"elementStyle",$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)}(l);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:l})._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),l.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:l,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}},De=new o.DataModel(Object(o.MapNode)(Object(o.StringNode)(),Object(o.StringNode)()),{historyMax:0}),qe={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["",`${l(E("false"))}\n ${l(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,d=(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,d,m]=e.hook(this,a,i,o);return`
        \n
        \n ${Ue(a,o)}\n ${We(a,o)}\n \n ${c}\n \n ${d}\n
        \n ${m?`
        ${m}
        `:""}\n
        `}).join(""),i.length>2&&(s+=`
        \n
        \n \n
        \n
        `)),["",a,s]},map({keys:e,children:t,config:i},r,n,a){var s,c,d;const m=new o.ModelPath(De,new o.Path([Ve(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!==(d=m.get())&&void 0!==d?d:"",a)[1]+``}let f="";return"object"==typeof n&&void 0!==n&&(f=Object.keys(n).map(e=>{const i=a.onClick(t=>r.model.set(r.push(e),void 0)),s=r.modelPush(e),c=t.category(s),[d,m,p]=(_?Object(o.StringNode)(null,_.properties&&{enum:_.properties[e]}):t).hook(this,s,n[e],a);return`
        \n
        \n ${Ue(s,a)}\n ${We(s,a)}\n \n ${d}\n \n ${m}\n
        \n ${p?`
        ${p}
        `:""}\n
        `}).join("")),["",u,f]},number({integer:e,config:t},i,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){let a="";e.optional()&&(a=void 0===r?``:``);let s="",c="";if("object"==typeof r&&void 0!==r&&(!e.optional()||void 0!==r)){const d=t(o),m=Object.keys(d),p=0===o.modelArr.length?null:e.hook(Ee,o,o);!p||d[p].hidden&&d[p].hidden()||(a+=Ue(o.push(p),n),a+=We(o.push(p),n),s+=d[p].hook(this,o.push(p),r[p],n)[1]);c=(ue.treeMinimized.get()?m.filter(e=>void 0!==r[e]):m).filter(e=>p!==e).filter(e=>d[e].enabled(o)).map(e=>{var t;const a=d[e],s=i(o,e),c=s.getContext().join("."),m=ue.settings.fields.find(e=>(null==e?void 0:e.path)&&c.endsWith(e.path));if(a.hidden&&a.hidden()||(null==m?void 0:m.hidden))return"";const p=a.category(s),[u,_,f]=a.hook(this,s,r[e],n);return"Properties"===e&&""===_?"":`
        \n
        \n ${Ue(s,n)}\n ${We(s,n)}\n ${u}\n \n ${_}\n
        \n ${f?`
        ${f}
        `:""}\n
        `}).join("")}return s+=e.hook(Re,o,n)||"",["",a+s,c]},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["",Te(e,t,r)+n,""]}};function Te({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 Fe(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(D(t.contextPush(a[0]).getContext()))return Fe(e,t,a,n)}const d=c();return`\n ${0===a.length?"":`\n ${a.map(e=>``}`}function Fe(e,t,i,o){return``}function Ve(e){var t,i=0;for(t=0;t`
        {e.getElementsByTagName("span")[0].classList.remove("show")},{capture:!0,once:!0})})}">\n ${i}${M[t]}\n
        `,Ye=(e,t)=>`data-id="${t.register(t=>{const i=()=>{var i;const o=document.createElement("div");o.classList.add("node-menu");const r=D(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 Ge=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 Xe=(e,t)=>{const i=()=>{if(ue.loaded.get()){const i=new o.ModelPath(t),r=t.schema.hook(qe,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),l=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,l(t.value),!1)})}">\n
        \n
        \n
        \n
        \n
        \n
        \n ${M.tag}\n \n ${ue.version.get()}\n \n
        \n
        \n ${b.versions.filter(e=>{var t;return fe(e.id,null!==(t=ue.model.get().minVersion)&&void 0!==t?t:"1.15")}).reverse().map(t=>`\n
        \n ${t.id}\n
        \n `).join("")}\n
        \n
        \n
        \n
        \n ${M.kebab_horizontal}\n
        \n
        \n
        \n ${M.history}\n
        \n
        {const e=!ue.treeMinimized.get();ue.treeMinimized.set(e),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
        `},Ke={base:({},e,t)=>t,choice({switchNode:e},t,i){return e.hook(this,t,i)},list({children:e},t,i){return Array.isArray(i)?i.map((i,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}},Ze=(e,t)=>{const i=e=>{const i=t.schema.hook(Ke,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
        `},Qe=(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
        `,et=(tt={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:{},l=Object.keys(null!=i?i:{});Object.keys(c).forEach(e=>{l.includes(e)?c[e].includes(i[e])||s.add(t.push(e),"error.invalid_enum_option",i[e]):"Properties"===t.last()&&s.add(t,"error.block_state.missing_property",e)})}}},Object.assign(Object.assign({},tt),{choice(e,t,i,...o){var r;(null!==(r=tt.choice)&&void 0!==r?r:tt.base)(e,t,i,...o),e.switchNode.hook(this,t,i,...o)},list(e,t,i,...o){var r;(null!==(r=tt.list)&&void 0!==r?r:tt.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=tt.map)&&void 0!==r?r:tt.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=tt.object)&&void 0!==r?r:tt.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 tt;const it=e=>{const t=pe[ue.model.get().id];t.listeners=[];const i=()=>ue.preview.get()?Ae(e,{direction:"vertical",sizes:[60,40]},[Ze(e,t),Qe(e,t)]):Ze(e,t),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(et,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]},[Xe(e,t),`
        ${i()}
        `])}\n
        \n ${((e,t)=>{const i=()=>ue.jsonError.get()?`
        \n
        \n ${l(ue.jsonError.get())}\n
        \n
        \n
        \n ${M.issue_opened}\n
        `:0===t.errors.count()?"":`${ue.errorsVisible.get()?`\n
        \n ${t.errors.getAll().map(e=>`\n
        \n ${e.path.toString()}\n -\n ${l(E(e.error,e.params))}\n
        \n `).join("")}\n
        \n `:""}\n ${ge(e,[[!0,"chevron_down"],[!1,"issue_opened"]],ue.errorsVisible)}`;return`\n
        \n ${i()}\n
        `})(e,t)}`};var ot=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 rt=b.models.filter(e=>!0===e.category),nt=()=>ot(void 0,void 0,void 0,(function*(){var e,t;localStorage.length;const i=location.pathname.split("/").filter(e=>e),o=new URLSearchParams(location.search);console.debug("[router] "+i.join("/"));const 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&&rt.map(e=>e.id).includes(i[0]))ue.model.set(rt.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=it,n=E("title.generator",[E(r.id)])}else a=ye}console.debug("[router] Renderer="+a.name);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}`,console.debug(`[router] Title=${n} Versions=${c}`),ue.mobilePanel.set(s);const l=new q;l.mount(r,a(l),!0),console.debug("[router] Done!")}));window.addEventListener("popstate",nt),document.addEventListener("DOMContentLoaded",()=>{console.debug(`[DOMContentLoaded] LocalStorage=${"localStorage"in window} Caches=${"caches"in window}`),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");console.debug("[data-link] "+t),J(t),history.pushState(null,"",t),nt()}}),nt()})}]); //# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/js/bundle.js.map b/js/bundle.js.map index ae4d0573..a797ae42 100644 --- a/js/bundle.js.map +++ b/js/bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@mcschema/core/lib/index.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Node.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/seedrandom/index.js","webpack:///./node_modules/@mcschema/core/lib/model/Path.js","webpack:///./node_modules/@mcschema/core/lib/model/Errors.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ListNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/SwitchNode.js","webpack:///./node_modules/@mcschema/core/lib/utils.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.15/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.17/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.15/lib/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/index.js","webpack:///./node_modules/@mcschema/core/lib/model/DataModel.js","webpack:///./node_modules/@mcschema/core/lib/nodes/BooleanNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/MapNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/NumberNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ObjectNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Reference.js","webpack:///./node_modules/@mcschema/core/lib/nodes/StringNode.js","webpack:///./node_modules/@mcschema/core/lib/Hook.js","webpack:///./node_modules/@mcschema/core/lib/Registries.js","webpack:///./node_modules/@mcschema/core/lib/ValidationOption.js","webpack:///./node_modules/@mcschema/java-1.15/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","webpack:///./node_modules/seedrandom/lib/alea.js","webpack:///./node_modules/seedrandom/lib/xor128.js","webpack:///./node_modules/seedrandom/lib/xorwow.js","webpack:///./node_modules/seedrandom/lib/xorshift7.js","webpack:///./node_modules/seedrandom/lib/xor4096.js","webpack:///./node_modules/seedrandom/lib/tychei.js","webpack:///./node_modules/seedrandom/seedrandom.js","webpack:///./src/app/Utils.ts","webpack:///./src/app/state/Property.ts","webpack:///./src/app/state/LocalStorageProperty.ts","webpack:///./src/app/DataFetcher.ts","webpack:///./src/app/components/Octicon.ts","webpack:///./src/app/preview/noise/ImprovedNoise.ts","webpack:///./src/app/preview/noise/PerlinNoise.ts","webpack:///./src/app/preview/noise/NormalNoise.ts","webpack:///./src/app/preview/Preview.ts","webpack:///./src/app/preview/BiomeNoisePreview.ts","webpack:///./src/app/Locales.ts","webpack:///./src/app/views/View.ts","webpack:///./src/app/preview/noise/NoiseChunkGenerator.ts","webpack:///./src/app/preview/DecoratorPreview.ts","webpack:///./src/app/Tracker.ts","webpack:///./src/app/App.ts","webpack:///./src/app/preview/NoiseSettingsPreview.ts","webpack:///./src/app/Settings.ts","webpack:///./src/app/components/Dropdown.ts","webpack:///./src/app/components/Toggle.ts","webpack:///./src/app/components/Header.ts","webpack:///./src/app/views/Home.ts","webpack:///./src/app/views/NotFound.ts","webpack:///./src/app/views/FieldSettings.ts","webpack:///./node_modules/split.js/dist/split.es.js","webpack:///./src/app/components/SplitGroup.ts","webpack:///./src/app/hooks/suffixInjector.ts","webpack:///./src/app/hooks/getFilterKey.ts","webpack:///./src/app/hooks/renderHtml.ts","webpack:///./src/app/components/panels/TreePanel.ts","webpack:///./src/app/hooks/transformOutput.ts","webpack:///./src/app/components/panels/SourcePanel.ts","webpack:///./src/app/components/panels/PreviewPanel.ts","webpack:///./src/app/hooks/customValidation.ts","webpack:///./src/app/hooks/walk.ts","webpack:///./src/app/views/Generator.ts","webpack:///./src/app/components/Errors.ts","webpack:///./src/app/Router.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__createBinding","this","k","k2","undefined","__exportStar","Error","initCommonSchemas","UniformInt","Range","NoiseSettingsPresets","DefaultNoiseSettings","DimensionTypePresets","DefaultDimensionType","ConditionCases","core_1","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","target","size","offset","bottom_slide","default_block","Name","default_fluid","Properties","level","schemas","collections","StringNode","Reference","register","Mod","ObjectNode","validator","params","pool","Opt","MapNode","validation","id","push","context","default","ListNode","NumberNode","integer","minLength","maxLength","config","ChoiceNode","forceRange","type","node","change","v","_a","_b","_c","min","max","priority","bounds","allowBinomial","enum","match","choiceContext","base","spread","maxSpread","terms","block","properties","predicate","entity","scores","term","inverse","BooleanNode","offsetX","offsetY","offsetZ","chance","looting_multiplier","enchantment","chances","period","raining","thundering","ObjectOrPreset","shrunk","fixed_time","effects","island_noise_override","amplified","IntProvider","FloatProvider","FunctionCases","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","cases","defaultCase","keys","forEach","enabled","path","provider","hidden","Switch","Case","disableSwitchContext","choices","replace","length","score","scale","amount","isScoreHolder","source","min_inclusive","max_exclusive","mean","deviation","plateau","max_inclusive","map","absolute","above_bottom","below_top","inner","entitySourceNode","range","conditions","copySourceNode","formula","parameters","bonusMultiplier","pop","extra","probability","ops","category","op","enchantments","levels","treasure","destination","decoration","zoom","search_radius","skip_existing_chunks","limit","count","modifiers","patterns","pattern","color","append","entries","add","damage","seed","lore","tag","registry","duration","res","f","Keep","Has","Base","keep","optional","pathPush","suggest","validate","_","validationOption","hook","args","canUpdate","update","mods","webpackPolyfill","deprecate","paths","children","__webpack_amd_options__","initProcessorListSchemas","Processors","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","mossiness","blocks","integrity","heightmap","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","axis","block_state","alea","xor128","xorwow","xorshift7","xor4096","tychei","sr","ModelPath","Path","relativePath","start","reduce","e","modelArr","contextArr","end","slice","element","modelPush","contextPush","copy","newElement","startsWith","model","other","every","join","fn","thisArg","super","set","shift","Errors","errors","error","exact","filter","equals","iterator","Node_1","Infinity","between","Array","index","nextIndex","getArray","navigate","parseInt","toString","options","loose","isArray","obj","list","SwitchNode","activeCase","concat","fallback","sorter","a","b","matchedCases","sort","escapeString","str","quoteString","initPredicatesSchemas","LocationFields","Common_1","StateChoice","item","durability","potion","nbt","state","fluid","position","x","y","z","biome","feature","dimension","light","stat","gamemode","advancements","recipes","stats","amplifier","ambient","visible","horizontal","allowTag","team","location","distance","flags","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","LootFunctions","LootConditions","LootCopySources","LootEntitySources","LootTableTypes","Map","requires","allows","initDecoratorSchemas","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","step","extra_count","extra_chance","noise_level","below_noise","above_noise","noise_to_count_ratio","noise_factor","noise_offset","outer","baseline","surface","floor_to_ceiling_search_range","max_water_depth","__setModuleDefault","__importStar","mod","result","getSchemas","getCollections","lootContext","Collections_1","schemas_1","CollectionRegistry","initCollections","SchemaRegistry","initSchemas","DataModel","Path_1","Errors_1","schema","data","listeners","history","JSON","stringify","historyIndex","historyMax","listener","indexOf","splice","newHistory","silentInvalidate","invalidated","invalidate","silent","reset","isNaN","last","console","log","parse","withModel","clear","tempErrors","boolean","StringOrList","ObjectOrList","ListNode_1","SwitchNode_1","switchNode","choice","isValid","XOrList","presetNode","objectNode","presets","Number","isInteger","number","utils_1","fields","defaultFields","getActiveFields","switchValue","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","includes","pathElements","activeFields","existingKeys","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","constructor","transform","isEnum","isValidator","getValues","isDefinition","allowUnknown","additional","values","string","warn","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Predicates_1","Recipe_1","Tags_1","TextComponent_1","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","display","icon","title","description","background","frame","show_toast","announce_to_chat","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","num_bees_inside","partner","child","from","to","victims","villager","zombie","killing_blow","slots","empty","occupied","full","items","delta","unique_entity_types","entered","exited","recipe","condition","LootContext_1","functionsAndConditions","functions","compileSwitchNode","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","conditionSwtichNode","functionSwtichNode","entitySourceSwtichNode","copySourceSwtichNode","pools","rolls","bonus_rolls","weightMod","weight","quality","expand","attribute","operation","slot","pack","pack_format","group","ingredients","ingredient","cookingtime","addition","TagBase","required","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","leadingSlash","allowPartial","hoverEvent","translate","with","objective","selector","keybind","storage","interpret","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","EntityPredicate","loot_table","projectile","shooter","signal_strength","NoPreset","generator","settings","biome_source","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","large_biomes","legacy_biome_init_layer","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","lightning","bystander","conditionIDSwtichNode","functionIDSwtichNode","_p","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","TargetBlockState","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","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","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","direction","allow_water","height_distribution","body_provider","head_provider","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","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","sapling_provider","foliage_provider","bend_length","min_height_for_leaves","foliage_height","leaf_placement_attempts","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","min_surface_level","noodle_caves_enabled","ore_veins_enabled","_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","debug","dynamic","all","matches","cache","caches","open","promises","request","delete","message","deleteMatching","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","registries","checkVersion","minVersion","maxVersion","mcdata_master","getData","states","App","blockStateRegistry","vanilla_datapack_summary","cacheResponse","ok","json","fetchResponse","fetch","responseData","put","Response","Octicon","archive","arrow_both","arrow_left","arrow_right","chevron_down","chevron_right","clippy","code","dash","download","eye","eye_closed","fold","gear","globe","info","issue_opened","kebab_horizontal","link","mark_github","moon","note","package","play","plus","plus_circle","search","square","square_fill","sun","trashcan","three_bars","unfold","xo","yo","zo","x2","y2","z2","x3","y3","z3","x4","y4","z4","x5","y5","z5","y6","sampleAndLerp","grad","GRADIENT","lerp3","gradDot","noiseLevels","lowestFreqInputFactor","lowestFreqValueFactor","fill","fixY","inputF","valueF","wrap","first","second","expectedDeviation","valueFactor","getValue","Preview","redraw","view","dx","dy","viewScale","biomeColors","endsWith","el","watchRun","textContent","toFixed","onClick","img","noiseMaps","biomeColorCache","getBiomeColor","xx","yy","closestBiome","minDist","minBiome","dist","fitness","assign","padStart","Locales","resolveLocaleParams","locale","language","en","segmentedLocale","segments","minDepth","prev","array","addEventListener","evt","stopPropagation","on","querySelectorAll","getAttribute","attributes","getNamedItem","html","innerHTML","mounted","toggleMenu","classList","hideMenu","document","body","closest","contains","remove","capture","once","chunkWidth","chunkHeight","chunkCountY","biomeDepth","biomeScale","noiseColumnCache","xOffset","minLimitPerlinNoise","fromRange","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","cx","ox","noise1","fillNoiseColumn","noise2","oy","cachedColumn","xzScale","xzFactor","yFactor","randomDensity","getRandomDensity","sampleAndClampNoise","getOctaveNoise","falloff","minLimitNoise","maxLimitNoise","mainNoise","terrain","featureColors","label","ga","Tracker","hotkey","minimized","theme","preview","Versions","Previews","iterateNoiseColumn","reverse","getColor","Features","decorated","pos","getPositions","flatMap","getPlacements","random_boolean_selector","random_selector","simple_random_selector","nextInt","Decorators","sampleUniformInt","count_extra","count_multilayer","count_noise","biomeInfoNoise","count_noise_biased","factor","ceil","dark_oak_tree","depth_average","decorateY","emerald_ore","fire","glowstone","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","water_lake","perspective","usedFeatures","featureData","placements","filtered","useFeature","featureFn","decoratorFn","Models","models","jsonOutput","errorsVisible","treeMinimized","jsonError","getName","schemasLoaded","localesLoaded","loaded","mobilePanel","local_storage","save","updateSchemas","documentElement","setAttribute","hasFetchedEnglish","minVersionId","maxVersionId","findIndex","updateLocale","ctrlKey","undo","redo","Toggle","activeOcticon","Header","homeLink","panelTogglesId","getPanelToggles","panels","mount","Dropdown","GeneratorCard","arrow","active","cleanUrl","Home","filteredModels","NotFound","FieldSettings","fieldListId","fieldList","getFields","pathInput","nameInput","ssr","NOOP","calc","prefix","createElement","style","cssText","isString","elementOrSelector","ele","querySelector","getOption","propName","def","getGutterSize","gutterSize","isFirst","isLast","gutterAlign","defaultGutterFn","gutterDirection","gut","className","defaultElementStyleFn","dim","gutSize","defaultGutterStyleFn","idsOption","clientAxis","positionEnd","clientSize","ids","parentNode","parentStyle","getComputedStyle","parentFlexDirection","flexDirection","sizes","minSize","minSizes","expandToMin","snapOffset","dragInterval","cursor","gutter","elementStyle","gutterStyle","setElementSize","getSizes","getMousePosition","touches","adjust","percentage","drag","dragging","dragOffset","round","calculateSizes","aBounds","bBounds","trimToMin","sizesToTrim","parentSize","computedStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","innerSize","excessPixels","toSpare","pixelSizes","pixelSize","elementGutterSize","elementMinSize","newPixelSize","takenPixels","stopDragging","stop","move","userSelect","webkitUserSelect","MozUserSelect","pointerEvents","startDragging","button","preventDefault","pairs","adjustToMin","pair","temp","gutterElement","setGutterSize","insertBefore","computedSize","setSizes","newSizes","trimmed","newSize","collapse","destroy","preserveStyles","preserveGutter","removeChild","SplitGroup","suffixInjector","mounter","biome_noise","setPreview","noise_settings","biomePreview","onChange","setBiomeColor","getBiomeHex","getFilterKey","origin","keysModel","renderHtml","onFalse","onTrue","pathWithChoiceContext","suffix","pathLocale","onAdd","onAddBottom","childValue","removeId","childPath","cPrefix","cSuffix","cBody","help","contextMenu","keyPath","blockState","parsed","filterKey","field","getContext","fieldSettings","inputId","rawString","selectRaw","contextPath","datalistId","popupIcon","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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,mBAfR,MACI,cACIjZ,KAAKuM,SAAW,GAEpB,SAASpI,EAAIuO,GACT1S,KAAKuM,SAASpI,GAAMuO,EAExB,IAAIvO,GACA,MAAMuO,EAAO1S,KAAKuM,SAASpI,GAI3B,YAHahE,IAATuS,GACAiI,QAAQoD,KAAK,+BAA+B5Z,+BAEzCuO,QAAmCA,EAAO,M,6BCpCzDjU,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,K,6BCAtDP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqb,qBAAkB,EAwR1Brb,EAAQqb,gBAvRR,SAAyB3V,GACrBA,EAAYG,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,sBAEJH,EAAYG,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,iCAEJH,EAAYG,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,+BAEJH,EAAYG,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,YAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sB,6BCtRRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQub,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxBvK,EAAW,EAAQ,GACnBwK,EAAc,EAAQ,IACtBC,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAahC1gB,EAAQub,YAZR,SAAqB9V,EAASC,GAE1BkQ,EAASnT,kBAAkBgD,EAASC,GACpC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ACA,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,QA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sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,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,QACA,UACA,QACA,QACA,YAEJH,EAAYG,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,qBAEJH,EAAYG,SAAS,kBAAmB,CACpC,MACA,WAEJH,EAAYG,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,oBAEJH,EAAYG,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,WAEJH,EAAYG,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OACA,OACA,aACA,OACA,SACA,OACA,QACA,QACA,MACA,Y,6BCnkBRjF,OAAOC,eAAeb,E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","file":"js/bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 98);\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:requirements': {\r\n terms: core_1.ListNode(Reference('condition')),\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:rule': {\r\n rules: core_1.ListNode(Reference('processor_rule'))\r\n }\r\n }\r\n }, { category: 'function', context: 'processor' }), {\r\n default: () => ({\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n })\r\n }));\r\n schemas.register('processor_rule', core_1.Mod(core_1.ObjectNode({\r\n position_predicate: core_1.Opt(Reference('pos_rule_test')),\r\n location_predicate: Reference('rule_test'),\r\n input_predicate: Reference('rule_test'),\r\n output_state: Reference('block_state'),\r\n output_nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:block' } } }))\r\n }, { category: 'predicate', context: 'processor_rule' }), {\r\n default: () => ({\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n })\r\n }));\r\n const posTestFields = {\r\n min_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(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.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = exports.lootContext = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a;\r\n this.schema = schema;\r\n this.data = schema.default();\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n node = node[e];\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n node[e] = {};\r\n }\r\n node = node[e];\r\n });\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n let res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n res[k] = undefined;\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\r\n : () => []);\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = this.default() || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Common_1.Range(),\r\n duration: Common_1.Range()\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n }),\r\n ...conditions\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' })),\r\n ...conditions\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } })),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }))),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true }),\r\n ...conditions\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n ...conditions\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier')),\r\n ...conditions\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...conditions\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component')),\r\n ...conditions\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } }),\r\n ...conditions\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n }))),\r\n ...conditions\r\n }\r\n }\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\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 seed: core_1.NumberNode({ integer: true }),\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:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\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 },\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(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\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.Opt(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: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: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(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.Opt(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_bonemeal_flower': RandomPatchConfig,\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.Opt(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 },\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:lightning_strike',\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:started_riding',\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:using_item',\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 source: core_1.Opt(EntityPredicate)\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:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\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:using_item': {\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 [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\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 seed: core_1.NumberNode({ integer: true }),\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:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\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 },\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(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\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 items: core_1.Opt(core_1.ListNode(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 blocks: core_1.Opt(core_1.ListNode(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 stepping_on: 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 vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\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 water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\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(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n 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:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(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 cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\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:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\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 allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ 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 sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\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:nether_fossil': {\r\n height: Reference('height_provider')\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.Opt(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 },\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 console.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`);\n return;\n }\n console.debug(`[fetchData] ${JSON.stringify(version)}`);\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 console.debug(`[deleteMatching] ${r.id} '${localStorage.getItem(`cached_${r.id}`)}' < '${r.hash}' ${r.url}/${version.refs[r.id]}`);\n yield deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`));\n console.debug(`[deleteMatching] Done! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`);\n localStorage.setItem(`cached_${r.id}`, r.hash);\n console.debug(`[deleteMatching] Set! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`);\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 console.debug(`[fetchRegistries] ${version.id}`);\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 fetching registry ${r.id}:`, e);\n }\n })));\n }\n });\n}\nfunction fetchBlockStateMap(version) {\n return __awaiter(this, void 0, void 0, function* () {\n console.debug(`[fetchBlockStateMap] ${version.id}`);\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 console.debug(`[fetchDynamicRegistries] ${version.id}`);\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 console.debug(`[fetchPreset] ${version.id} ${registry} ${id}`);\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 try {\n const cache = yield caches.open(CACHE_NAME);\n console.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`);\n const cacheResponse = yield cache.match(url);\n if (cacheResponse && cacheResponse.ok) {\n console.debug(`[getData] Retrieving cached data ${url}`);\n return yield cacheResponse.json();\n }\n console.debug(`[getData] fetching data ${url}`);\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 catch (e) {\n console.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${e.message}`);\n console.debug(`[getData] fetching data ${url}`);\n const fetchResponse = yield fetch(url);\n const responseData = fn(yield fetchResponse.json());\n return responseData;\n }\n });\n}\nfunction deleteMatching(matches) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const cache = yield caches.open(CACHE_NAME);\n console.debug(`[deleteMatching] Opened cache ${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 console.debug(`[deleteMatching] Removing ${promises.length} cache objects...`);\n yield Promise.all(promises);\n }\n catch (e) {\n console.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${e.message}`);\n }\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 console.debug(`[View.mount] ${html.replace(/\\n/g, '').slice(0, 40)}...`);\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};\nconsole.debug(`[App] LocalStorage=${'localStorage' in window} Caches=${'caches' in window}`);\nApp.version.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n console.debug(`[App.version.watchRun] ${value}`);\n App.schemasLoaded.set(false);\n yield updateSchemas(value);\n App.schemasLoaded.set(true);\n console.debug(`[App.version.watchRun] Done! ${value}`);\n}));\nApp.theme.watchRun((value) => {\n console.debug(`[App.theme.watchRun] ${value}`);\n document.documentElement.setAttribute('data-theme', value);\n});\nlet hasFetchedEnglish = false;\nApp.language.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n console.debug(`[App.language.watchRun] ${value}`);\n App.localesLoaded.set(false);\n yield updateLocale(value);\n App.localesLoaded.set(true);\n console.debug(`[App.language.watchRun] Done! ${value}`);\n}));\nApp.localesLoaded.watch((value) => {\n console.debug(`[App.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 console.debug(`[App.schemasLoaded.watch] ${value}`);\n App.loaded.set(value && App.localesLoaded.get());\n});\nApp.mobilePanel.watchRun((value) => {\n console.debug(`[App.mobilePanel.watchRun] ${value}`);\n document.body.setAttribute('data-panel', value);\n});\nfunction updateSchemas(version) {\n return __awaiter(this, void 0, void 0, function* () {\n console.debug(`[updateSchemas] ${version}`);\n App.blockStateRegistry = {};\n const collections = Versions[version].getCollections();\n console.debug(`[updateSchemas] Done getting collections! ${Object.keys(collections['registry']).length}`);\n App.collections.set(collections);\n yield fetchData(collections, version);\n console.debug('[updateSchemas] Done fetching data!');\n const schemas = Versions[version].getSchemas(collections);\n console.debug(`[updateSchemas] Done getting schemas! ${Object.keys(schemas['registry']).length}`);\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 console.debug(`[updateSchemas] Done!`);\n });\n}\nfunction updateLocale(language) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Locales[language] && (hasFetchedEnglish || language !== 'en'))\n return;\n const data = yield (yield fetch(`/locales/${language}.json`)).json();\n if (language === 'en')\n hasFetchedEnglish = true;\n Locales[language] = data;\n });\n}\nexport function checkVersion(versionId, minVersionId, maxVersionId) {\n const version = config.versions.findIndex(v => v.id === versionId);\n const minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0;\n const maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1;\n return minVersion <= version && version <= maxVersion;\n}\ndocument.addEventListener('keyup', (evt) => {\n if (evt.ctrlKey && evt.key === 'z') {\n Tracker.undo(true);\n Models[App.model.get().id].undo();\n }\n else if (evt.ctrlKey && evt.key === 'y') {\n Tracker.redo(true);\n Models[App.model.get().id].redo();\n }\n});\n","import { Path } from \"@mcschema/core\";\nimport { Preview } from './Preview';\nimport { toggleMenu } from '../views/View';\nimport { Octicon } from '../components/Octicon';\nimport { NoiseChunkGenerator } from './noise/NoiseChunkGenerator';\nexport class NoiseSettingsPreview extends Preview {\n constructor() {\n super();\n this.width = 256;\n this.depth = 0.1;\n this.scale = 0.2;\n this.offsetX = 0;\n this.debug = false;\n this.generator = new NoiseChunkGenerator();\n }\n getName() {\n return 'noise-settings';\n }\n active(path) {\n return path.endsWith(new Path(['noise']));\n }\n menu(view, redraw) {\n return `
        \n
        \n ${Octicon.kebab_horizontal}\n
        \n
        \n
        \n ${Octicon.gear}\n \n {\n el.value = this.depth.toString();\n el.addEventListener('change', () => {\n this.depth = parseFloat(el.value);\n redraw();\n });\n })}\">\n
        \n
        \n ${Octicon.gear}\n \n {\n el.value = this.scale.toString();\n el.addEventListener('change', () => {\n this.scale = parseFloat(el.value);\n redraw();\n });\n })}\">\n
        \n
        \n ${Octicon.arrow_both}\n \n {\n el.value = this.width.toString();\n el.addEventListener('change', () => {\n this.width = parseFloat(el.value);\n redraw();\n });\n })}\">\n
        \n
        { this.debug = !this.debug; redraw(); })}\">\n ${Octicon.square}\n \n
        \n
        \n
        `;\n }\n getSize() {\n return [this.width, this.state.height];\n }\n draw(model, img) {\n this.generator.reset(this.state, this.depth, this.scale, this.offsetX, this.width);\n const data = img.data;\n for (let x = 0; x < this.width; x += 1) {\n const noise = this.generator.iterateNoiseColumn(x + this.offsetX).reverse();\n for (let y = 0; y < this.state.height; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const color = this.getColor(noise, y);\n data[i] = (this.debug && noise[y] > 0) ? 255 : color;\n data[i + 1] = color;\n data[i + 2] = color;\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX -= dx;\n }\n getColor(noise, y) {\n if (this.debug) {\n return -noise[y] / 2 + 128;\n }\n if (noise[y] > 0) {\n return 0;\n }\n if (noise[y + 1] > 0) {\n return 150;\n }\n return 255;\n }\n}\n","export class Settings {\n constructor(local_storage) {\n var _a;\n this.local_storage = local_storage;\n const settings = JSON.parse((_a = localStorage.getItem(local_storage)) !== null && _a !== void 0 ? _a : '{}');\n if (!Array.isArray(settings.fields))\n settings.fields = [];\n this.fields = settings.fields;\n this.save();\n }\n save() {\n const settings = JSON.stringify({ fields: this.fields });\n localStorage.setItem(this.local_storage, settings);\n this.fields = [...this.fields.filter(v => v === null || v === void 0 ? void 0 : v.path), {}];\n }\n}\n","import { Octicon } from './Octicon';\nexport const Dropdown = (view, icon, entries, state, watcher) => {\n const dropdown = view.register(el => {\n el.addEventListener('change', () => {\n state.set(el.value);\n });\n state.watchRun(v => el.value = v, 'dropdown');\n });\n return `\n
        \n \n ${Octicon[icon]}\n
        `;\n};\n","import { Octicon } from './Octicon';\nexport const Toggle = (view, entries, state, watcher) => {\n const activeOcticon = () => { var _a; return Octicon[((_a = entries.find(e => e[0] === state.get())) !== null && _a !== void 0 ? _a : entries[0])[1]]; };\n const toggle = view.register(el => {\n el.addEventListener('click', () => {\n const i = entries.findIndex(e => e[0] === state.get());\n state.set(entries[(i + 1) % entries.length][0]);\n });\n state.watch(_ => el.innerHTML = activeOcticon(), 'toggle');\n });\n return `
        ${activeOcticon()}
        `;\n};\n","import { App } from '../App';\nimport { Dropdown } from './Dropdown';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { languages } from '../../config.json';\nimport { Tracker } from '../Tracker';\nimport { locale } from '../Locales';\nexport const Header = (view, title, homeLink = '/') => {\n const panelTogglesId = view.register(el => {\n const getPanelToggles = () => {\n const panels = [['preview', 'play'], ['tree', 'note'], ['source', 'code']];\n if (!panels.map(e => e[0]).includes(App.mobilePanel.get()))\n return '';\n return panels\n .filter(e => e[0] !== App.mobilePanel.get())\n .filter(e => e[0] !== 'preview' || App.preview.get() !== null)\n .map(e => `
        App.mobilePanel.set(e[0]))}\">\n ${Octicon[e[1]]}\n
        `).join('');\n };\n App.mobilePanel.watchRun(() => {\n view.mount(el, getPanelToggles(), false);\n });\n App.preview.watchRun((value, oldValue) => {\n if (value === null && App.mobilePanel.get() === 'preview') {\n App.mobilePanel.set('tree');\n }\n if (value === null || oldValue === null) {\n view.mount(el, getPanelToggles(), false);\n }\n });\n });\n return `
        \n
        \n ${Octicon.three_bars}\n

        ${title}

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

        404

        \n

        ${locale('not_found.description')}

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

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

        \n
          \n
          `;\n};\n","// The programming goals of Split.js are to deliver readable, understandable and\n// maintainable code, while at the same time manually optimizing for tiny minified file size,\n// browser compatibility without additional requirements\n// and very few assumptions about the user's page layout.\nvar global = typeof window !== 'undefined' ? window : null;\nvar ssr = global === null;\nvar document = !ssr ? global.document : undefined;\n\n// Save a couple long function names that are used frequently.\n// This optimization saves around 400 bytes.\nvar addEventListener = 'addEventListener';\nvar removeEventListener = 'removeEventListener';\nvar getBoundingClientRect = 'getBoundingClientRect';\nvar gutterStartDragging = '_a';\nvar aGutterSize = '_b';\nvar bGutterSize = '_c';\nvar HORIZONTAL = 'horizontal';\nvar NOOP = function () { return false; };\n\n// Helper function determines which prefixes of CSS calc we need.\n// We only need to do this once on startup, when this anonymous function is called.\n//\n// Tests -webkit, -moz and -o prefixes. Modified from StackOverflow:\n// http://stackoverflow.com/questions/16625140/js-feature-detection-to-detect-the-usage-of-webkit-calc-over-calc/16625167#16625167\nvar calc = ssr\n ? 'calc'\n : ((['', '-webkit-', '-moz-', '-o-']\n .filter(function (prefix) {\n var el = document.createElement('div');\n el.style.cssText = \"width:\" + prefix + \"calc(9px)\";\n\n return !!el.style.length\n })\n .shift()) + \"calc\");\n\n// Helper function checks if its argument is a string-like type\nvar isString = function (v) { return typeof v === 'string' || v instanceof String; };\n\n// Helper function allows elements and string selectors to be used\n// interchangeably. In either case an element is returned. This allows us to\n// do `Split([elem1, elem2])` as well as `Split(['#id1', '#id2'])`.\nvar elementOrSelector = function (el) {\n if (isString(el)) {\n var ele = document.querySelector(el);\n if (!ele) {\n throw new Error((\"Selector \" + el + \" did not match a DOM element\"))\n }\n return ele\n }\n\n return el\n};\n\n// Helper function gets a property from the properties object, with a default fallback\nvar getOption = function (options, propName, def) {\n var value = options[propName];\n if (value !== undefined) {\n return value\n }\n return def\n};\n\nvar getGutterSize = function (gutterSize, isFirst, isLast, gutterAlign) {\n if (isFirst) {\n if (gutterAlign === 'end') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n } else if (isLast) {\n if (gutterAlign === 'start') {\n return 0\n }\n if (gutterAlign === 'center') {\n return gutterSize / 2\n }\n }\n\n return gutterSize\n};\n\n// Default options\nvar defaultGutterFn = function (i, gutterDirection) {\n var gut = document.createElement('div');\n gut.className = \"gutter gutter-\" + gutterDirection;\n return gut\n};\n\nvar defaultElementStyleFn = function (dim, size, gutSize) {\n var style = {};\n\n if (!isString(size)) {\n style[dim] = calc + \"(\" + size + \"% - \" + gutSize + \"px)\";\n } else {\n style[dim] = size;\n }\n\n return style\n};\n\nvar defaultGutterStyleFn = function (dim, gutSize) {\n var obj;\n\n return (( obj = {}, obj[dim] = (gutSize + \"px\"), obj ));\n};\n\n// The main function to initialize a split. Split.js thinks about each pair\n// of elements as an independant pair. Dragging the gutter between two elements\n// only changes the dimensions of elements in that pair. This is key to understanding\n// how the following functions operate, since each function is bound to a pair.\n//\n// A pair object is shaped like this:\n//\n// {\n// a: DOM element,\n// b: DOM element,\n// aMin: Number,\n// bMin: Number,\n// dragging: Boolean,\n// parent: DOM element,\n// direction: 'horizontal' | 'vertical'\n// }\n//\n// The basic sequence:\n//\n// 1. Set defaults to something sane. `options` doesn't have to be passed at all.\n// 2. Initialize a bunch of strings based on the direction we're splitting.\n// A lot of the behavior in the rest of the library is paramatized down to\n// rely on CSS strings and classes.\n// 3. Define the dragging helper functions, and a few helpers to go with them.\n// 4. Loop through the elements while pairing them off. Every pair gets an\n// `pair` object and a gutter.\n// 5. Actually size the pair elements, insert gutters and attach event listeners.\nvar Split = function (idsOption, options) {\n if ( options === void 0 ) options = {};\n\n if (ssr) { return {} }\n\n var ids = idsOption;\n var dimension;\n var clientAxis;\n var position;\n var positionEnd;\n var clientSize;\n var elements;\n\n // Allow HTMLCollection to be used as an argument when supported\n if (Array.from) {\n ids = Array.from(ids);\n }\n\n // All DOM elements in the split should have a common parent. We can grab\n // the first elements parent and hope users read the docs because the\n // behavior will be whacky otherwise.\n var firstElement = elementOrSelector(ids[0]);\n var parent = firstElement.parentNode;\n var parentStyle = getComputedStyle ? getComputedStyle(parent) : null;\n var parentFlexDirection = parentStyle ? parentStyle.flexDirection : null;\n\n // Set default options.sizes to equal percentages of the parent element.\n var sizes = getOption(options, 'sizes') || ids.map(function () { return 100 / ids.length; });\n\n // Standardize minSize to an array if it isn't already. This allows minSize\n // to be passed as a number.\n var minSize = getOption(options, 'minSize', 100);\n var minSizes = Array.isArray(minSize) ? minSize : ids.map(function () { return minSize; });\n\n // Get other options\n var expandToMin = getOption(options, 'expandToMin', false);\n var gutterSize = getOption(options, 'gutterSize', 10);\n var gutterAlign = getOption(options, 'gutterAlign', 'center');\n var snapOffset = getOption(options, 'snapOffset', 30);\n var dragInterval = getOption(options, 'dragInterval', 1);\n var direction = getOption(options, 'direction', HORIZONTAL);\n var cursor = getOption(\n options,\n 'cursor',\n direction === HORIZONTAL ? 'col-resize' : 'row-resize'\n );\n var gutter = getOption(options, 'gutter', defaultGutterFn);\n var elementStyle = getOption(\n options,\n 'elementStyle',\n defaultElementStyleFn\n );\n var gutterStyle = getOption(options, 'gutterStyle', defaultGutterStyleFn);\n\n // 2. Initialize a bunch of strings based on the direction we're splitting.\n // A lot of the behavior in the rest of the library is paramatized down to\n // rely on CSS strings and classes.\n if (direction === HORIZONTAL) {\n dimension = 'width';\n clientAxis = 'clientX';\n position = 'left';\n positionEnd = 'right';\n clientSize = 'clientWidth';\n } else if (direction === 'vertical') {\n dimension = 'height';\n clientAxis = 'clientY';\n position = 'top';\n positionEnd = 'bottom';\n clientSize = 'clientHeight';\n }\n\n // 3. Define the dragging helper functions, and a few helpers to go with them.\n // Each helper is bound to a pair object that contains its metadata. This\n // also makes it easy to store references to listeners that that will be\n // added and removed.\n //\n // Even though there are no other functions contained in them, aliasing\n // this to self saves 50 bytes or so since it's used so frequently.\n //\n // The pair object saves metadata like dragging state, position and\n // event listener references.\n\n function setElementSize(el, size, gutSize, i) {\n // Split.js allows setting sizes via numbers (ideally), or if you must,\n // by string, like '300px'. This is less than ideal, because it breaks\n // the fluid layout that `calc(% - px)` provides. You're on your own if you do that,\n // make sure you calculate the gutter size by hand.\n var style = elementStyle(dimension, size, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n el.style[prop] = style[prop];\n });\n }\n\n function setGutterSize(gutterElement, gutSize, i) {\n var style = gutterStyle(dimension, gutSize, i);\n\n Object.keys(style).forEach(function (prop) {\n // eslint-disable-next-line no-param-reassign\n gutterElement.style[prop] = style[prop];\n });\n }\n\n function getSizes() {\n return elements.map(function (element) { return element.size; })\n }\n\n // Supports touch events, but not multitouch, so only the first\n // finger `touches[0]` is counted.\n function getMousePosition(e) {\n if ('touches' in e) { return e.touches[0][clientAxis] }\n return e[clientAxis]\n }\n\n // Actually adjust the size of elements `a` and `b` to `offset` while dragging.\n // calc is used to allow calc(percentage + gutterpx) on the whole split instance,\n // which allows the viewport to be resized without additional logic.\n // Element a's size is the same as offset. b's size is total size - a size.\n // Both sizes are calculated from the initial parent percentage,\n // then the gutter size is subtracted.\n function adjust(offset) {\n var a = elements[this.a];\n var b = elements[this.b];\n var percentage = a.size + b.size;\n\n a.size = (offset / this.size) * percentage;\n b.size = percentage - (offset / this.size) * percentage;\n\n setElementSize(a.element, a.size, this[aGutterSize], a.i);\n setElementSize(b.element, b.size, this[bGutterSize], b.i);\n }\n\n // drag, where all the magic happens. The logic is really quite simple:\n //\n // 1. Ignore if the pair is not dragging.\n // 2. Get the offset of the event.\n // 3. Snap offset to min if within snappable range (within min + snapOffset).\n // 4. Actually adjust each element in the pair to offset.\n //\n // ---------------------------------------------------------------------\n // | | <- a.minSize || b.minSize -> | |\n // | | | <- this.snapOffset || this.snapOffset -> | | |\n // | | | || | | |\n // | | | || | | |\n // ---------------------------------------------------------------------\n // | <- this.start this.size -> |\n function drag(e) {\n var offset;\n var a = elements[this.a];\n var b = elements[this.b];\n\n if (!this.dragging) { return }\n\n // Get the offset of the event from the first side of the\n // pair `this.start`. Then offset by the initial position of the\n // mouse compared to the gutter size.\n offset =\n getMousePosition(e) -\n this.start +\n (this[aGutterSize] - this.dragOffset);\n\n if (dragInterval > 1) {\n offset = Math.round(offset / dragInterval) * dragInterval;\n }\n\n // If within snapOffset of min or max, set offset to min or max.\n // snapOffset buffers a.minSize and b.minSize, so logic is opposite for both.\n // Include the appropriate gutter sizes to prevent overflows.\n if (offset <= a.minSize + snapOffset + this[aGutterSize]) {\n offset = a.minSize + this[aGutterSize];\n } else if (\n offset >=\n this.size - (b.minSize + snapOffset + this[bGutterSize])\n ) {\n offset = this.size - (b.minSize + this[bGutterSize]);\n }\n\n // Actually adjust the size.\n adjust.call(this, offset);\n\n // Call the drag callback continously. Don't do anything too intensive\n // in this callback.\n getOption(options, 'onDrag', NOOP)(getSizes());\n }\n\n // Cache some important sizes when drag starts, so we don't have to do that\n // continously:\n //\n // `size`: The total size of the pair. First + second + first gutter + second gutter.\n // `start`: The leading side of the first element.\n //\n // ------------------------------------------------\n // | aGutterSize -> ||| |\n // | ||| |\n // | ||| |\n // | ||| <- bGutterSize |\n // ------------------------------------------------\n // | <- start size -> |\n function calculateSizes() {\n // Figure out the parent size minus padding.\n var a = elements[this.a].element;\n var b = elements[this.b].element;\n\n var aBounds = a[getBoundingClientRect]();\n var bBounds = b[getBoundingClientRect]();\n\n this.size =\n aBounds[dimension] +\n bBounds[dimension] +\n this[aGutterSize] +\n this[bGutterSize];\n this.start = aBounds[position];\n this.end = aBounds[positionEnd];\n }\n\n function innerSize(element) {\n // Return nothing if getComputedStyle is not supported (< IE9)\n // Or if parent element has no layout yet\n if (!getComputedStyle) { return null }\n\n var computedStyle = getComputedStyle(element);\n\n if (!computedStyle) { return null }\n\n var size = element[clientSize];\n\n if (size === 0) { return null }\n\n if (direction === HORIZONTAL) {\n size -=\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n } else {\n size -=\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n }\n\n return size\n }\n\n // When specifying percentage sizes that are less than the computed\n // size of the element minus the gutter, the lesser percentages must be increased\n // (and decreased from the other elements) to make space for the pixels\n // subtracted by the gutters.\n function trimToMin(sizesToTrim) {\n // Try to get inner size of parent element.\n // If it's no supported, return original sizes.\n var parentSize = innerSize(parent);\n if (parentSize === null) {\n return sizesToTrim\n }\n\n if (minSizes.reduce(function (a, b) { return a + b; }, 0) > parentSize) {\n return sizesToTrim\n }\n\n // Keep track of the excess pixels, the amount of pixels over the desired percentage\n // Also keep track of the elements with pixels to spare, to decrease after if needed\n var excessPixels = 0;\n var toSpare = [];\n\n var pixelSizes = sizesToTrim.map(function (size, i) {\n // Convert requested percentages to pixel sizes\n var pixelSize = (parentSize * size) / 100;\n var elementGutterSize = getGutterSize(\n gutterSize,\n i === 0,\n i === sizesToTrim.length - 1,\n gutterAlign\n );\n var elementMinSize = minSizes[i] + elementGutterSize;\n\n // If element is too smal, increase excess pixels by the difference\n // and mark that it has no pixels to spare\n if (pixelSize < elementMinSize) {\n excessPixels += elementMinSize - pixelSize;\n toSpare.push(0);\n return elementMinSize\n }\n\n // Otherwise, mark the pixels it has to spare and return it's original size\n toSpare.push(pixelSize - elementMinSize);\n return pixelSize\n });\n\n // If nothing was adjusted, return the original sizes\n if (excessPixels === 0) {\n return sizesToTrim\n }\n\n return pixelSizes.map(function (pixelSize, i) {\n var newPixelSize = pixelSize;\n\n // While there's still pixels to take, and there's enough pixels to spare,\n // take as many as possible up to the total excess pixels\n if (excessPixels > 0 && toSpare[i] - excessPixels > 0) {\n var takenPixels = Math.min(\n excessPixels,\n toSpare[i] - excessPixels\n );\n\n // Subtract the amount taken for the next iteration\n excessPixels -= takenPixels;\n newPixelSize = pixelSize - takenPixels;\n }\n\n // Return the pixel size adjusted as a percentage\n return (newPixelSize / parentSize) * 100\n })\n }\n\n // stopDragging is very similar to startDragging in reverse.\n function stopDragging() {\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n if (self.dragging) {\n getOption(options, 'onDragEnd', NOOP)(getSizes());\n }\n\n self.dragging = false;\n\n // Remove the stored event listeners. This is why we store them.\n global[removeEventListener]('mouseup', self.stop);\n global[removeEventListener]('touchend', self.stop);\n global[removeEventListener]('touchcancel', self.stop);\n global[removeEventListener]('mousemove', self.move);\n global[removeEventListener]('touchmove', self.move);\n\n // Clear bound function references\n self.stop = null;\n self.move = null;\n\n a[removeEventListener]('selectstart', NOOP);\n a[removeEventListener]('dragstart', NOOP);\n b[removeEventListener]('selectstart', NOOP);\n b[removeEventListener]('dragstart', NOOP);\n\n a.style.userSelect = '';\n a.style.webkitUserSelect = '';\n a.style.MozUserSelect = '';\n a.style.pointerEvents = '';\n\n b.style.userSelect = '';\n b.style.webkitUserSelect = '';\n b.style.MozUserSelect = '';\n b.style.pointerEvents = '';\n\n self.gutter.style.cursor = '';\n self.parent.style.cursor = '';\n document.body.style.cursor = '';\n }\n\n // startDragging calls `calculateSizes` to store the inital size in the pair object.\n // It also adds event listeners for mouse/touch events,\n // and prevents selection while dragging so avoid the selecting text.\n function startDragging(e) {\n // Right-clicking can't start dragging.\n if ('button' in e && e.button !== 0) {\n return\n }\n\n // Alias frequently used variables to save space. 200 bytes.\n var self = this;\n var a = elements[self.a].element;\n var b = elements[self.b].element;\n\n // Call the onDragStart callback.\n if (!self.dragging) {\n getOption(options, 'onDragStart', NOOP)(getSizes());\n }\n\n // Don't actually drag the element. We emulate that in the drag function.\n e.preventDefault();\n\n // Set the dragging property of the pair object.\n self.dragging = true;\n\n // Create two event listeners bound to the same pair object and store\n // them in the pair object.\n self.move = drag.bind(self);\n self.stop = stopDragging.bind(self);\n\n // All the binding. `window` gets the stop events in case we drag out of the elements.\n global[addEventListener]('mouseup', self.stop);\n global[addEventListener]('touchend', self.stop);\n global[addEventListener]('touchcancel', self.stop);\n global[addEventListener]('mousemove', self.move);\n global[addEventListener]('touchmove', self.move);\n\n // Disable selection. Disable!\n a[addEventListener]('selectstart', NOOP);\n a[addEventListener]('dragstart', NOOP);\n b[addEventListener]('selectstart', NOOP);\n b[addEventListener]('dragstart', NOOP);\n\n a.style.userSelect = 'none';\n a.style.webkitUserSelect = 'none';\n a.style.MozUserSelect = 'none';\n a.style.pointerEvents = 'none';\n\n b.style.userSelect = 'none';\n b.style.webkitUserSelect = 'none';\n b.style.MozUserSelect = 'none';\n b.style.pointerEvents = 'none';\n\n // Set the cursor at multiple levels\n self.gutter.style.cursor = cursor;\n self.parent.style.cursor = cursor;\n document.body.style.cursor = cursor;\n\n // Cache the initial sizes of the pair.\n calculateSizes.call(self);\n\n // Determine the position of the mouse compared to the gutter\n self.dragOffset = getMousePosition(e) - self.end;\n }\n\n // adjust sizes to ensure percentage is within min size and gutter.\n sizes = trimToMin(sizes);\n\n // 5. Create pair and element objects. Each pair has an index reference to\n // elements `a` and `b` of the pair (first and second elements).\n // Loop through the elements while pairing them off. Every pair gets a\n // `pair` object and a gutter.\n //\n // Basic logic:\n //\n // - Starting with the second element `i > 0`, create `pair` objects with\n // `a = i - 1` and `b = i`\n // - Set gutter sizes based on the _pair_ being first/last. The first and last\n // pair have gutterSize / 2, since they only have one half gutter, and not two.\n // - Create gutter elements and add event listeners.\n // - Set the size of the elements, minus the gutter sizes.\n //\n // -----------------------------------------------------------------------\n // | i=0 | i=1 | i=2 | i=3 |\n // | | | | |\n // | pair 0 pair 1 pair 2 |\n // | | | | |\n // -----------------------------------------------------------------------\n var pairs = [];\n elements = ids.map(function (id, i) {\n // Create the element object.\n var element = {\n element: elementOrSelector(id),\n size: sizes[i],\n minSize: minSizes[i],\n i: i,\n };\n\n var pair;\n\n if (i > 0) {\n // Create the pair object with its metadata.\n pair = {\n a: i - 1,\n b: i,\n dragging: false,\n direction: direction,\n parent: parent,\n };\n\n pair[aGutterSize] = getGutterSize(\n gutterSize,\n i - 1 === 0,\n false,\n gutterAlign\n );\n pair[bGutterSize] = getGutterSize(\n gutterSize,\n false,\n i === ids.length - 1,\n gutterAlign\n );\n\n // if the parent has a reverse flex-direction, switch the pair elements.\n if (\n parentFlexDirection === 'row-reverse' ||\n parentFlexDirection === 'column-reverse'\n ) {\n var temp = pair.a;\n pair.a = pair.b;\n pair.b = temp;\n }\n }\n\n // Determine the size of the current element. IE8 is supported by\n // staticly assigning sizes without draggable gutters. Assigns a string\n // to `size`.\n //\n // Create gutter elements for each pair.\n if (i > 0) {\n var gutterElement = gutter(i, direction, element.element);\n setGutterSize(gutterElement, gutterSize, i);\n\n // Save bound event listener for removal later\n pair[gutterStartDragging] = startDragging.bind(pair);\n\n // Attach bound event listener\n gutterElement[addEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n gutterElement[addEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n\n parent.insertBefore(gutterElement, element.element);\n\n pair.gutter = gutterElement;\n }\n\n setElementSize(\n element.element,\n element.size,\n getGutterSize(\n gutterSize,\n i === 0,\n i === ids.length - 1,\n gutterAlign\n ),\n i\n );\n\n // After the first iteration, and we have a pair object, append it to the\n // list of pairs.\n if (i > 0) {\n pairs.push(pair);\n }\n\n return element\n });\n\n function adjustToMin(element) {\n var isLast = element.i === pairs.length;\n var pair = isLast ? pairs[element.i - 1] : pairs[element.i];\n\n calculateSizes.call(pair);\n\n var size = isLast\n ? pair.size - element.minSize - pair[bGutterSize]\n : element.minSize + pair[aGutterSize];\n\n adjust.call(pair, size);\n }\n\n elements.forEach(function (element) {\n var computedSize = element.element[getBoundingClientRect]()[dimension];\n\n if (computedSize < element.minSize) {\n if (expandToMin) {\n adjustToMin(element);\n } else {\n // eslint-disable-next-line no-param-reassign\n element.minSize = computedSize;\n }\n }\n });\n\n function setSizes(newSizes) {\n var trimmed = trimToMin(newSizes);\n trimmed.forEach(function (newSize, i) {\n if (i > 0) {\n var pair = pairs[i - 1];\n\n var a = elements[pair.a];\n var b = elements[pair.b];\n\n a.size = trimmed[i - 1];\n b.size = newSize;\n\n setElementSize(a.element, a.size, pair[aGutterSize], a.i);\n setElementSize(b.element, b.size, pair[bGutterSize], b.i);\n }\n });\n }\n\n function destroy(preserveStyles, preserveGutter) {\n pairs.forEach(function (pair) {\n if (preserveGutter !== true) {\n pair.parent.removeChild(pair.gutter);\n } else {\n pair.gutter[removeEventListener](\n 'mousedown',\n pair[gutterStartDragging]\n );\n pair.gutter[removeEventListener](\n 'touchstart',\n pair[gutterStartDragging]\n );\n }\n\n if (preserveStyles !== true) {\n var style = elementStyle(\n dimension,\n pair.a.size,\n pair[aGutterSize]\n );\n\n Object.keys(style).forEach(function (prop) {\n elements[pair.a].element.style[prop] = '';\n elements[pair.b].element.style[prop] = '';\n });\n }\n });\n }\n\n return {\n setSizes: setSizes,\n getSizes: getSizes,\n collapse: function collapse(i) {\n adjustToMin(elements[i]);\n },\n destroy: destroy,\n parent: parent,\n pairs: pairs,\n }\n};\n\nexport default Split;\n","import Split from 'split.js';\nexport const SplitGroup = (view, options, entries) => {\n var _a;\n return `\n
          {\n Split([].slice.call(el.children), Object.assign({ snapOffset: 0 }, options));\n })}>\n ${entries.join('')}\n
          \n`;\n};\n","import { Path } from '@mcschema/core';\nimport { App, Previews } from '../App';\nimport { Octicon } from '../components/Octicon';\nimport { locale } from '../Locales';\nimport { Tracker } from '../Tracker';\nexport const suffixInjector = {\n base() { },\n choice({ switchNode }, path, mounter) {\n return switchNode.hook(this, path, mounter);\n },\n object({}, path, mounter) {\n if (Previews.biome_noise.active(path)) {\n return setPreview(Previews.biome_noise, path, mounter);\n }\n if (Previews.noise_settings.active(path)) {\n return setPreview(Previews.noise_settings, path, mounter);\n }\n if (Previews.decorator.active(path)) {\n return setPreview(Previews.decorator, path, mounter);\n }\n },\n string({}, path, mounter) {\n if (path.endsWith(new Path(['biome']))\n && path.pop().pop().endsWith(new Path(['generator', 'biome_source', 'biomes']))) {\n const biomePreview = Previews.biome_noise;\n const biome = path.get();\n const id = mounter.onChange(el => {\n biomePreview.setBiomeColor(biome, el.value);\n });\n return ``;\n }\n }\n};\nfunction setPreview(preview, path, mounter) {\n const id = mounter.onClick(() => {\n Tracker.setPreview(preview.getName());\n preview.path = path;\n App.preview.set(preview);\n });\n return ``;\n}\n","import { relativePath } from '@mcschema/core';\nexport const getFilterKey = {\n base: () => null,\n object({ filter, getActiveFields }, path, origin, depth = 0) {\n if (depth > 2)\n return null;\n if (filter) {\n const filtered = relativePath(path, filter);\n if (filtered && filtered.pop().equals(origin))\n return filtered.last();\n }\n const activeFields = getActiveFields(path);\n for (const k of Object.keys(activeFields)) {\n const filtered = activeFields[k].hook(this, path.push(k), origin, depth += 1);\n if (filtered)\n return filtered;\n }\n return null;\n }\n};\n","import { ModelPath, Path, DataModel, MapNode, StringNode, relativePath } from '@mcschema/core';\nimport { locale, segmentedLocale } from '../Locales';\nimport { hexId, htmlEncode } from '../Utils';\nimport { suffixInjector } from './suffixInjector';\nimport { Octicon } from '../components/Octicon';\nimport { App } from '../App';\nimport { getFilterKey } from './getFilterKey';\n/**\n * Secondary model used to remember the keys of a map\n */\nconst keysModel = new DataModel(MapNode(StringNode(), StringNode()), { historyMax: 0 });\n/**\n * Renders the node and handles events to update the model\n * @returns string HTML representation of this node using the given data\n */\nexport const renderHtml = {\n base() {\n return ['', '', ''];\n },\n boolean({ node }, path, value, mounter) {\n const onFalse = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === false ? undefined : false);\n });\n const onTrue = mounter.onClick(el => {\n path.model.set(path, node.optional() && value === true ? undefined : true);\n });\n return ['', `${htmlEncode(locale('false'))}\n ${htmlEncode(locale('true'))}`, ''];\n },\n choice({ choices, config, switchNode }, path, value, mounter) {\n const choice = switchNode.activeCase(path, true);\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ? new ModelPath(path.getModel(), new Path(path.getArray(), [config.context])) : path;\n const pathWithChoiceContext = (config === null || config === void 0 ? void 0 : config.choiceContext) ? new Path([], [config.choiceContext]) : (config === null || config === void 0 ? void 0 : config.context) ? new Path([], [config.context]) : path;\n const [prefix, suffix, body] = choice.node.hook(this, pathWithContext, value, mounter);\n if (choices.length === 1) {\n return [prefix, suffix, body];\n }\n const inputId = mounter.register(el => {\n el.value = choice.type;\n el.addEventListener('change', () => {\n var _a;\n const c = (_a = choices.find(c => c.type === el.value)) !== null && _a !== void 0 ? _a : choice;\n path.model.set(path, c.change ? c.change(value) : c.node.default());\n });\n });\n const inject = ``;\n return [prefix, inject + suffix, body];\n },\n list({ children }, path, value, mounter) {\n const onAdd = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [children.default(), ...value]);\n });\n const onAddBottom = mounter.onClick(el => {\n if (!Array.isArray(value))\n value = [];\n path.model.set(path, [...value, children.default()]);\n });\n const suffix = ``;\n let body = '';\n if (Array.isArray(value)) {\n body = value.map((childValue, index) => {\n const removeId = mounter.onClick(el => path.model.set(path.push(index), undefined));\n const childPath = path.push(index).contextPush('entry');\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = children.hook(this, childPath, childValue, mounter);\n return `
          \n
          \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
          \n ${cBody ? `
          ${cBody}
          ` : ''}\n
          `;\n }).join('');\n if (value.length > 2) {\n body += `
          \n
          \n \n
          \n
          `;\n }\n }\n return ['', suffix, body];\n },\n map({ keys, children, config }, path, value, mounter) {\n var _a, _b, _c;\n const keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]));\n const onAdd = mounter.onClick(el => {\n const key = keyPath.get();\n path.model.set(path.push(key), children.default());\n });\n let suffix = '';\n const blockState = (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map' ? App.blockStateRegistry[relativePath(path, config.validation.params.id).get()] : null);\n if (!blockState || blockState.properties) {\n const keyRendered = (blockState\n ? StringNode(null, { enum: Object.keys((_b = blockState.properties) !== null && _b !== void 0 ? _b : {}) })\n : keys).hook(this, keyPath, (_c = keyPath.get()) !== null && _c !== void 0 ? _c : '', mounter);\n suffix = keyRendered[1] + ``;\n }\n let body = '';\n if (typeof value === 'object' && value !== undefined) {\n body = Object.keys(value)\n .map(key => {\n const removeId = mounter.onClick(el => path.model.set(path.push(key), undefined));\n const childPath = path.modelPush(key);\n const category = children.category(childPath);\n const [cPrefix, cSuffix, cBody] = (blockState\n ? StringNode(null, blockState.properties && { enum: blockState.properties[key] })\n : children).hook(this, childPath, value[key], mounter);\n return `
          \n
          \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n \n ${cPrefix}\n \n ${cSuffix}\n
          \n ${cBody ? `
          ${cBody}
          ` : ''}\n
          `;\n })\n .join('');\n }\n return ['', suffix, body];\n },\n number({ integer, config }, path, value, mounter) {\n var _a;\n const onChange = mounter.onChange(el => {\n const value = el.value;\n let parsed = (config === null || config === void 0 ? void 0 : config.color) ? parseInt(value.slice(1), 16)\n : integer ? parseInt(value) : parseFloat(value);\n path.model.set(path, parsed);\n });\n if (config === null || config === void 0 ? void 0 : config.color) {\n const hex = ((_a = value === null || value === void 0 ? void 0 : value.toString(16).padStart(6, '0')) !== null && _a !== void 0 ? _a : '000000');\n return ['', ``, ''];\n }\n return ['', ``, ''];\n },\n object({ node, getActiveFields, getChildModelPath }, path, value, mounter) {\n var _a;\n let prefix = '';\n if (node.optional()) {\n if (value === undefined) {\n prefix = ``;\n }\n else {\n prefix = ``;\n }\n }\n let suffix = '';\n let body = '';\n if (typeof value === 'object' && value !== undefined && (!(node.optional() && value === undefined))) {\n const activeFields = getActiveFields(path);\n const activeKeys = Object.keys(activeFields);\n const filterKey = path.modelArr.length === 0 ? null : node.hook(getFilterKey, path, path);\n if (filterKey && !(activeFields[filterKey].hidden && activeFields[filterKey].hidden())) {\n prefix += error(path.push(filterKey), mounter);\n prefix += help(path.push(filterKey), mounter);\n suffix += activeFields[filterKey].hook(this, path.push(filterKey), value[filterKey], mounter)[1];\n }\n const visibleKeys = (App.treeMinimized.get()\n ? activeKeys.filter(k => value[k] !== undefined)\n : activeKeys)\n .filter(k => filterKey !== k)\n .filter(k => activeFields[k].enabled(path));\n if (false /* node.hook(canFlatten, path) */) {\n const newValue = (_a = value[visibleKeys[0]]) !== null && _a !== void 0 ? _a : {};\n body = activeFields[visibleKeys[0]].hook(this, path.push(visibleKeys[0]), newValue, mounter)[2];\n }\n else {\n body = visibleKeys.map(k => {\n var _a;\n const field = activeFields[k];\n const childPath = getChildModelPath(path, k);\n const context = childPath.getContext().join('.');\n const fieldSettings = App.settings.fields.find(f => (f === null || f === void 0 ? void 0 : f.path) && context.endsWith(f.path));\n if ((field.hidden && field.hidden()) || (fieldSettings === null || fieldSettings === void 0 ? void 0 : fieldSettings.hidden))\n return '';\n const category = field.category(childPath);\n const [cPrefix, cSuffix, cBody] = field.hook(this, childPath, value[k], mounter);\n if (k === 'Properties' && cSuffix === '')\n return '';\n return `
          \n
          \n ${error(childPath, mounter)}\n ${help(childPath, mounter)}\n ${cPrefix}\n \n ${cSuffix}\n
          \n ${cBody ? `
          ${cBody}
          ` : ''}\n
          `;\n })\n .join('');\n }\n }\n suffix += node.hook(suffixInjector, path, mounter) || '';\n return ['', prefix + suffix, body];\n },\n string(params, path, value, mounter) {\n const inputId = mounter.register(el => {\n el.value = value !== null && value !== void 0 ? value : '';\n el.addEventListener('change', evt => {\n const newValue = el.value;\n path.model.set(path, newValue.length === 0 ? undefined : newValue);\n evt.stopPropagation();\n });\n });\n const suffix = params.node.hook(suffixInjector, path, mounter) || '';\n return ['', rawString(params, path, inputId) + suffix, ''];\n }\n};\nfunction isEnum(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\n}\nfunction isValidator(value) {\n var _a;\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\n}\nfunction rawString({ node, getValues, config }, path, inputId) {\n const values = getValues();\n if (isEnum(config) && !config.additional) {\n const contextPath = typeof config.enum === 'string' ?\n new Path(path.getArray(), [config.enum]) : path;\n return selectRaw(node, contextPath, values, inputId);\n }\n if (config && isValidator(config)\n && config.validator === 'resource'\n && typeof config.params.pool === 'string'\n && values.length > 0) {\n const contextPath = new Path(path.getArray(), [config.params.pool]);\n if (segmentedLocale(contextPath.contextPush(values[0]).getContext())) {\n return selectRaw(node, contextPath, values, inputId);\n }\n }\n const datalistId = hexId();\n return `\n ${values.length === 0 ? '' :\n `\n ${values.map(v => ``}`;\n}\nfunction selectRaw(node, contextPath, values, inputId) {\n return ``;\n}\nfunction hashString(str) {\n var hash = 0, i, chr;\n for (i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0;\n }\n return hash;\n}\nfunction pathLocale(path, params) {\n var _a, _b;\n return (_b = (_a = segmentedLocale(path.getContext(), params)) !== null && _a !== void 0 ? _a : path.getContext()[path.getContext().length - 1]) !== null && _b !== void 0 ? _b : '';\n}\nfunction error(p, mounter) {\n const errors = p.model.errors.get(p, true);\n if (errors.length === 0)\n return '';\n return popupIcon('node-error', 'issue_opened', htmlEncode(locale(errors[0].error, errors[0].params)), mounter);\n}\nfunction help(path, mounter) {\n const message = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (message === undefined)\n return '';\n return popupIcon('node-help', 'info', htmlEncode(message), mounter);\n}\nconst popupIcon = (type, icon, popup, mounter) => {\n const onClick = mounter.onClick(el => {\n el.getElementsByTagName('span')[0].classList.add('show');\n document.body.addEventListener('click', () => {\n el.getElementsByTagName('span')[0].classList.remove('show');\n }, { capture: true, once: true });\n });\n return `
          \n ${popup}${Octicon[icon]}\n
          `;\n};\nconst contextMenu = (path, mounter) => {\n const id = mounter.register(el => {\n const openMenu = () => {\n var _a;\n const popup = document.createElement('div');\n popup.classList.add('node-menu');\n const helpMessage = segmentedLocale(path.contextPush('help').getContext(), [], 6);\n if (helpMessage)\n popup.insertAdjacentHTML('beforeend', `${helpMessage}`);\n const context = path.getContext().join('.');\n popup.insertAdjacentHTML('beforeend', `\n
          \n ${Octicon.clippy}\n Context: \n ${context}\n
          `);\n (_a = popup.querySelector('.menu-item .btn')) === null || _a === void 0 ? void 0 : _a.addEventListener('click', () => {\n const inputEl = document.createElement('input');\n inputEl.value = context;\n el.appendChild(inputEl);\n inputEl.select();\n document.execCommand('copy');\n el.removeChild(inputEl);\n });\n el.appendChild(popup);\n document.body.addEventListener('click', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n document.body.addEventListener('contextmenu', () => {\n try {\n el.removeChild(popup);\n }\n catch (e) { }\n }, { capture: true, once: true });\n };\n el.addEventListener('contextmenu', evt => {\n openMenu();\n evt.preventDefault();\n });\n let timer = null;\n el.addEventListener('touchstart', () => {\n timer = setTimeout(() => {\n openMenu();\n timer = null;\n }, 800);\n });\n el.addEventListener('touchend', () => {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n });\n });\n return `data-id=\"${id}\"`;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ModelPath } from '@mcschema/core';\nimport { App, checkVersion, Previews } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { renderHtml } from '../../hooks/renderHtml';\nimport config from '../../../config.json';\nimport { fetchPreset } from '../../DataFetcher';\nexport const TreePanel = (view, model) => {\n const getContent = () => {\n if (App.loaded.get()) {\n const path = new ModelPath(model);\n const rendered = model.schema.hook(renderHtml, path, model.data, view);\n const category = model.schema.category(path);\n if (rendered[1]) {\n return `
          \n
          ${rendered[1]}
          \n
          ${rendered[2]}
          \n
          `;\n }\n return rendered[2];\n }\n return '
          ';\n };\n const tree = view.register(el => {\n App.loaded.watchRun((value) => {\n if (!value) {\n // If loading is taking more than 100 ms, show spinner\n new Promise(r => setTimeout(r, 100)).then(() => {\n if (!App.loaded.get()) {\n view.mount(el, getContent(), false);\n }\n });\n }\n else {\n view.mount(el, getContent(), false);\n }\n });\n App.treeMinimized.watch(() => {\n view.mount(el, getContent(), false);\n });\n model.addListener({\n invalidated() {\n view.mount(el, getContent(), false);\n }\n });\n Previews.biome_noise.biomeColors.watch(() => {\n view.mount(el, getContent(), false);\n }, 'tree-panel');\n });\n const m = App.model.get();\n const registry = ((m === null || m === void 0 ? void 0 : m.category) ? (m === null || m === void 0 ? void 0 : m.category) + '/' : '') + (m === null || m === void 0 ? void 0 : m.schema);\n let presetList;\n const presetListId = view.register(el => presetList = el);\n const getPresets = (query) => {\n var _a, _b;\n const terms = (query !== null && query !== void 0 ? query : '').trim().split(' ');\n const results = ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : [])\n .map(r => r.slice(10))\n .filter(e => terms.every(t => e.includes(t)));\n return results.map(r => `
          __awaiter(void 0, void 0, void 0, function* () {\n App.schemasLoaded.set(false);\n const preset = yield fetchPreset(config.versions.find(v => v.id === App.version.get()), m === null || m === void 0 ? void 0 : m.path, r);\n model.reset(preset);\n App.schemasLoaded.set(true);\n Tracker.loadPreset((m === null || m === void 0 ? void 0 : m.path) + '/' + r);\n }))}\">${r}
          `).join('');\n };\n const presetControl = view.register(el => {\n App.schemasLoaded.watch(v => {\n var _a, _b;\n if (!v)\n return;\n const enabled = ((m === null || m === void 0 ? void 0 : m.path) && checkVersion(App.version.get(), '1.16'));\n el.classList.toggle('disabled', !enabled || ((_b = (_a = App.collections.get()) === null || _a === void 0 ? void 0 : _a.get(registry)) !== null && _b !== void 0 ? _b : []).length === 0);\n if (enabled) {\n view.mount(presetList, getPresets(), false);\n }\n }, 'tree-panel');\n });\n return `
          \n
          \n
          \n
          {\n var _a, _b;\n toggleMenu(el);\n (_b = (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.select();\n })}\">\n ${Octicon.archive}\n
          \n
          \n
          \n ${Octicon.search} {\n view.mount(presetList, getPresets(el.value), false);\n })}\">\n
          \n
          \n
          \n
          \n
          \n
          \n ${Octicon.tag}\n App.version.watch(v => el.textContent = v, 'tree-controls'))}\">\n ${App.version.get()}\n \n
          \n
          \n ${config.versions\n .filter(v => { var _a; return checkVersion(v.id, (_a = App.model.get().minVersion) !== null && _a !== void 0 ? _a : '1.15'); })\n .reverse()\n .map(v => `\n
          {\n Tracker.setVersion(v.id);\n App.version.set(v.id);\n })}\">\n ${v.id}\n
          \n `).join('')}\n
          \n
          \n
          \n
          \n ${Octicon.kebab_horizontal}\n
          \n
          \n
          {\n Tracker.reset();\n model.reset(model.schema.default());\n })}\">\n ${Octicon.history}\n
          \n
          {\n el.addEventListener('click', () => {\n const value = !App.treeMinimized.get();\n App.treeMinimized.set(value);\n Tracker.toggleMinimize(value);\n });\n App.treeMinimized.watchRun(value => {\n view.mount(el, `${Octicon[value ? 'unfold' : 'fold']}`, false);\n });\n })}\">
          \n
          { Tracker.undo(); model.undo(); })}\">\n ${Octicon.arrow_left}\n
          \n
          { Tracker.redo(); model.redo(); })}\">\n ${Octicon.arrow_right}\n
          \n
          \n
          \n
          \n
          \n
          `;\n};\n","export const transformOutput = {\n base({}, _, value) {\n return value;\n },\n choice({ switchNode }, path, value) {\n return switchNode.hook(this, path, value);\n },\n list({ children }, path, value) {\n if (!Array.isArray(value))\n return value;\n return value.map((obj, index) => children.hook(this, path.push(index), obj));\n },\n map({ children }, path, value) {\n if (value === undefined)\n return undefined;\n let res = {};\n Object.keys(value).forEach(f => res[f] = children.hook(this, path.push(f), value[f]));\n return res;\n },\n object({ getActiveFields }, path, value) {\n if (value === undefined || value === null || typeof value !== 'object') {\n return value;\n }\n let res = {};\n const activeFields = getActiveFields(path);\n Object.keys(activeFields)\n .filter(k => activeFields[k].enabled(path))\n .forEach(f => {\n res[f] = activeFields[f].hook(this, path.push(f), value[f]);\n });\n return res;\n }\n};\n","import { ModelPath } from '@mcschema/core';\nimport { Tracker } from '../../Tracker';\nimport { transformOutput } from '../../hooks/transformOutput';\nimport { toggleMenu } from '../../views/View';\nimport { Octicon } from '../Octicon';\nimport { App } from '../../App';\nexport const SourcePanel = (view, model) => {\n const updateContent = (el) => {\n const data = model.schema.hook(transformOutput, new ModelPath(model), model.data);\n App.jsonOutput.set(JSON.stringify(data, null, 2));\n el.value = App.jsonOutput.get();\n };\n const source = view.register(el => {\n updateContent(el);\n model.addListener({\n invalidated() {\n App.jsonError.set(null);\n updateContent(el);\n }\n });\n el.addEventListener('change', () => {\n const rawSource = el.value;\n try {\n model.reset(JSON.parse(rawSource));\n App.jsonError.set(null);\n }\n catch (err) {\n App.jsonError.set(err.message);\n }\n });\n });\n const copySource = (el) => {\n var _a;\n (_a = el.closest('.panel')) === null || _a === void 0 ? void 0 : _a.getElementsByTagName('textarea')[0].select();\n document.execCommand('copy');\n Tracker.copy();\n };\n const downloadSource = (el) => {\n const fileContents = encodeURIComponent(App.jsonOutput.get() + '\\n');\n const downloadAnchor = el.lastElementChild;\n downloadAnchor.setAttribute('href', 'data:text/json;charset=utf-8,' + fileContents);\n downloadAnchor.setAttribute(\"download\", \"data.json\");\n downloadAnchor.click();\n Tracker.download();\n };\n const shareSource = (el) => {\n var _a;\n const shareInput = (_a = el.closest('.panel-controls')) === null || _a === void 0 ? void 0 : _a.querySelector('input');\n const data = btoa(JSON.stringify(JSON.parse(App.jsonOutput.get())));\n const url = window.location.origin + window.location.pathname + '?q=' + data;\n shareInput.value = url;\n shareInput.style.display = 'inline-block';\n document.body.addEventListener('click', evt => {\n shareInput.style.display = 'none';\n }, { capture: true, once: true });\n shareInput.select();\n document.execCommand('copy');\n Tracker.share();\n };\n return `
          \n
          \n \n
          \n ${Octicon.clippy}\n \n
          \n
          \n
          \n ${Octicon.kebab_horizontal}\n
          \n
          \n
          \n ${Octicon.download}\n \n
          \n
          \n ${Octicon.link}\n
          \n
          \n
          \n
          \n \n
          `;\n};\n","import { App } from '../../App';\nimport { Tracker } from '../../Tracker';\nimport { Octicon } from '../Octicon';\nexport const PreviewPanel = (view, model) => {\n const panel = view.register(el => {\n const canvas = el.querySelector('canvas');\n const redraw = () => {\n const preview = App.preview.get();\n if (preview && preview.path && preview.path.withModel(model).get()) {\n const ctx = canvas.getContext('2d');\n const newState = preview.path.withModel(model).get();\n preview.state = JSON.parse(JSON.stringify(newState));\n const [width, height] = preview.getSize();\n canvas.width = width;\n canvas.height = height;\n const img = ctx.createImageData(width, height);\n preview.draw(model, img);\n ctx.putImageData(img, 0, 0);\n }\n else {\n App.preview.set(null);\n }\n };\n const updatePreview = () => {\n var _a, _b;\n redraw();\n view.mount(el.querySelector('.panel-controls'), `\n ${(_b = (_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.menu(view, redraw)) !== null && _b !== void 0 ? _b : ''}\n
          {\n Tracker.hidePreview();\n App.preview.set(null);\n })}\">\n ${Octicon.x}\n
          `, false);\n };\n model.addListener({\n invalidated: redraw\n });\n App.preview.watchRun((value) => {\n if (value) {\n value.redraw = redraw;\n updatePreview();\n }\n }, 'preview-panel');\n let dragStart;\n el.addEventListener('mousedown', evt => {\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mousemove', evt => {\n var _a, _b;\n if (dragStart === undefined)\n return;\n if ((_a = App.preview.get()) === null || _a === void 0 ? void 0 : _a.onDrag) {\n const [width, height] = App.preview.get().getSize();\n const dx = (evt.offsetX - dragStart[0]) * width / canvas.clientWidth;\n const dy = (evt.offsetY - dragStart[1]) * height / canvas.clientHeight;\n if (!(dx === 0 && dy === 0)) {\n (_b = App.preview.get()) === null || _b === void 0 ? void 0 : _b.onDrag(dx, dy);\n redraw();\n }\n }\n dragStart = [evt.offsetX, evt.offsetY];\n });\n el.addEventListener('mouseup', evt => {\n dragStart = undefined;\n });\n });\n return `
          \n
          \n \n
          `;\n};\n","import { relativePath } from '@mcschema/core';\nimport { App } from '../App';\nimport { walk } from './walk';\nexport const customValidation = walk({\n base() { },\n map({ config }, path, value) {\n var _a, _b, _c;\n if (((_a = config.validation) === null || _a === void 0 ? void 0 : _a.validator) === 'block_state_map') {\n const block = relativePath(path, config.validation.params.id).get();\n const errors = path.getModel().errors;\n const requiredProps = (_c = ((_b = App.blockStateRegistry[block]) !== null && _b !== void 0 ? _b : {}).properties) !== null && _c !== void 0 ? _c : {};\n const existingKeys = Object.keys(value !== null && value !== void 0 ? value : {});\n Object.keys(requiredProps).forEach(p => {\n if (!existingKeys.includes(p)) {\n if (path.last() === 'Properties') {\n errors.add(path, 'error.block_state.missing_property', p);\n }\n }\n else if (!requiredProps[p].includes(value[p])) {\n errors.add(path.push(p), 'error.invalid_enum_option', value[p]);\n }\n });\n }\n },\n});\n","export const walk = (hook) => (Object.assign(Object.assign({}, hook), { choice(params, path, value, ...args) {\n var _a;\n ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n params.switchNode.hook(this, path, value, ...args);\n },\n list(params, path, value, ...args) {\n var _a;\n ((_a = hook.list) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (!Array.isArray(value))\n return;\n value.forEach((e, i) => params.children.hook(this, path.push(i), e, ...args));\n },\n map(params, path, value, ...args) {\n var _a;\n ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (typeof value !== 'object')\n return;\n Object.keys(value).forEach(f => params.children.hook(this, path.push(f), value[f], ...args));\n },\n object(params, path, value, ...args) {\n var _a;\n ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base)(params, path, value, ...args);\n if (value === null || typeof value !== 'object')\n return;\n const activeFields = params.getActiveFields(path);\n Object.keys(activeFields)\n .filter(f => activeFields[f].enabled(path))\n .forEach(f => {\n activeFields[f].hook(this, path.push(f), value[f], ...args);\n });\n } }));\n","import { App, checkVersion, Models } from '../App';\nimport { Header } from '../components/Header';\nimport { SplitGroup } from '../components/SplitGroup';\nimport { Errors } from '../components/Errors';\nimport { TreePanel } from '../components/panels/TreePanel';\nimport { SourcePanel } from '../components/panels/SourcePanel';\nimport { PreviewPanel } from '../components/panels/PreviewPanel';\nimport { customValidation } from '../hooks/customValidation';\nimport { ModelPath, Path } from '@mcschema/core';\nexport const Generator = (view) => {\n const model = Models[App.model.get().id];\n model.listeners = [];\n const getSideContent = () => {\n return App.preview.get() ?\n SplitGroup(view, { direction: 'vertical', sizes: [60, 40] }, [\n SourcePanel(view, model),\n PreviewPanel(view, model)\n ])\n : SourcePanel(view, model);\n };\n const validatePreview = () => {\n var _a;\n const preview = App.preview.get();\n const path = (_a = preview === null || preview === void 0 ? void 0 : preview.path) === null || _a === void 0 ? void 0 : _a.withModel(model);\n if (!(path && path.get() && (preview === null || preview === void 0 ? void 0 : preview.active(path)))) {\n App.preview.set(null);\n }\n };\n model.addListener({\n invalidated: () => {\n validatePreview();\n model.schema.hook(customValidation, new ModelPath(model, new Path()), model.data, model.errors);\n }\n });\n App.schemasLoaded.watch((value) => {\n if (value) {\n model.validate();\n model.invalidate();\n validatePreview();\n }\n }, 'generator');\n App.localesLoaded.watch((value) => {\n if (value && App.schemasLoaded.get()) {\n model.invalidate();\n }\n }, 'generator');\n App.version.watchRun((value) => {\n const minVersion = App.model.get().minVersion;\n if (minVersion && !checkVersion(value, minVersion)) {\n App.version.set(minVersion);\n }\n }, 'generator');\n const sideContent = view.register(el => {\n App.preview.watch((value, oldValue) => {\n if (!value || !oldValue) {\n view.mount(el, getSideContent(), false);\n }\n }, 'generator');\n });\n const homeLink = typeof App.model.get().category === 'string' ? `/${App.model.get().category}/` : undefined;\n return `${Header(view, `${App.model.get().name} Generator`, homeLink)}\n
          \n ${SplitGroup(view, { direction: \"horizontal\", sizes: [66, 34] }, [\n TreePanel(view, model),\n `
          ${getSideContent()}
          `\n ])}\n
          \n ${Errors(view, model)}`;\n};\n","import { App } from '../App';\nimport { locale } from '../Locales';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { htmlEncode } from '../Utils';\nimport { Tracker } from '../Tracker';\nexport const Errors = (view, model) => {\n const getContent = () => {\n if (App.jsonError.get()) {\n return `
          \n
          \n ${htmlEncode(App.jsonError.get())}\n
          \n
          \n
          \n ${Octicon.issue_opened}\n
          `;\n }\n if (model.errors.count() === 0)\n return '';\n return `${App.errorsVisible.get() ? `\n
          \n ${model.errors.getAll().map(e => `\n
          \n ${e.path.toString()}\n -\n ${htmlEncode(locale(e.error, e.params))}\n
          \n `).join('')}\n
          \n ` : ''}\n ${Toggle(view, [[true, 'chevron_down'], [false, 'issue_opened']], App.errorsVisible, Tracker.toggleErrors)}`;\n };\n const errors = view.register(el => {\n model.addListener({\n errors() {\n view.mount(el, getContent(), false);\n }\n });\n App.jsonError.watch(() => {\n view.mount(el, getContent(), false);\n });\n App.errorsVisible.watch(() => {\n view.mount(el, getContent(), false);\n }, 'errors');\n });\n return `\n
          \n ${getContent()}\n
          `;\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { App, checkVersion, Models } from './App';\nimport { View } from './views/View';\nimport { Home } from './views/Home';\nimport { NotFound } from './views/NotFound';\nimport { FieldSettings } from './views/FieldSettings';\nimport { Generator } from './views/Generator';\nimport { locale } from './Locales';\nimport { Tracker } from './Tracker';\nimport config from '../config.json';\nconst categories = config.models.filter(m => m.category === true);\nconst router = () => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n localStorage.length;\n const urlParts = location.pathname.split('/').filter(e => e);\n const urlParams = new URLSearchParams(location.search);\n console.debug(`[router] ${urlParts.join('/')}`);\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 console.debug(`[router] Renderer=${renderer.name}`);\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 console.debug(`[router] Title=${title} Versions=${versions}`);\n App.mobilePanel.set(panel);\n const view = new View();\n view.mount(target, renderer(view), true);\n console.debug(`[router] Done!`);\n});\nwindow.addEventListener(\"popstate\", router);\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n console.debug(`[DOMContentLoaded] LocalStorage=${'localStorage' in window} Caches=${'caches' in window}`);\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 console.debug(`[data-link] ${target}`);\n Tracker.pageview(target);\n history.pushState(null, '', target);\n router();\n }\n });\n router();\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@mcschema/core/lib/index.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Node.js","webpack:///(webpack)/buildin/module.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Common.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/seedrandom/index.js","webpack:///./node_modules/@mcschema/core/lib/model/Path.js","webpack:///./node_modules/@mcschema/core/lib/model/Errors.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/ProcessorList.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ListNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/SwitchNode.js","webpack:///./node_modules/@mcschema/core/lib/utils.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.15/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.17/lib/LootContext.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Decorator.js","webpack:///./node_modules/@mcschema/java-1.15/lib/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/index.js","webpack:///./node_modules/@mcschema/core/lib/model/DataModel.js","webpack:///./node_modules/@mcschema/core/lib/nodes/BooleanNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ChoiceNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/MapNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/NumberNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/ObjectNode.js","webpack:///./node_modules/@mcschema/core/lib/nodes/Reference.js","webpack:///./node_modules/@mcschema/core/lib/nodes/StringNode.js","webpack:///./node_modules/@mcschema/core/lib/Hook.js","webpack:///./node_modules/@mcschema/core/lib/Registries.js","webpack:///./node_modules/@mcschema/core/lib/ValidationOption.js","webpack:///./node_modules/@mcschema/java-1.15/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.15/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.16/lib/schemas/WorldSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/Collections.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Advancement.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Condition.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Dimension.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/DimensionType.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/ItemModifier.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/LootTable.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/PackMcmeta.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Predicates.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Recipe.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/Tags.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/TextComponent.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/index.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Biome.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Carver.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/Feature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/NoiseSettings.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/StructureFeature.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/SurfaceBuilder.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/worldgen/TemplatePool.js","webpack:///./node_modules/@mcschema/java-1.17/lib/schemas/WorldSettings.js","webpack:///./node_modules/seedrandom/lib/alea.js","webpack:///./node_modules/seedrandom/lib/xor128.js","webpack:///./node_modules/seedrandom/lib/xorwow.js","webpack:///./node_modules/seedrandom/lib/xorshift7.js","webpack:///./node_modules/seedrandom/lib/xor4096.js","webpack:///./node_modules/seedrandom/lib/tychei.js","webpack:///./node_modules/seedrandom/seedrandom.js","webpack:///./src/app/Utils.ts","webpack:///./src/app/state/Property.ts","webpack:///./src/app/state/LocalStorageProperty.ts","webpack:///./src/app/DataFetcher.ts","webpack:///./src/app/components/Octicon.ts","webpack:///./src/app/preview/noise/ImprovedNoise.ts","webpack:///./src/app/preview/noise/PerlinNoise.ts","webpack:///./src/app/preview/noise/NormalNoise.ts","webpack:///./src/app/preview/Preview.ts","webpack:///./src/app/preview/BiomeNoisePreview.ts","webpack:///./src/app/Locales.ts","webpack:///./src/app/views/View.ts","webpack:///./src/app/preview/noise/NoiseChunkGenerator.ts","webpack:///./src/app/preview/DecoratorPreview.ts","webpack:///./src/app/Tracker.ts","webpack:///./src/app/App.ts","webpack:///./src/app/preview/NoiseSettingsPreview.ts","webpack:///./src/app/Settings.ts","webpack:///./src/app/components/Dropdown.ts","webpack:///./src/app/components/Toggle.ts","webpack:///./src/app/components/Header.ts","webpack:///./src/app/views/Home.ts","webpack:///./src/app/views/NotFound.ts","webpack:///./src/app/views/FieldSettings.ts","webpack:///./node_modules/split.js/dist/split.es.js","webpack:///./src/app/components/SplitGroup.ts","webpack:///./src/app/hooks/suffixInjector.ts","webpack:///./src/app/hooks/getFilterKey.ts","webpack:///./src/app/hooks/renderHtml.ts","webpack:///./src/app/components/panels/TreePanel.ts","webpack:///./src/app/hooks/transformOutput.ts","webpack:///./src/app/components/panels/SourcePanel.ts","webpack:///./src/app/components/panels/PreviewPanel.ts","webpack:///./src/app/hooks/customValidation.ts","webpack:///./src/app/hooks/walk.ts","webpack:///./src/app/views/Generator.ts","webpack:///./src/app/components/Errors.ts","webpack:///./src/app/Router.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__createBinding","this","k","k2","undefined","__exportStar","Error","initCommonSchemas","UniformInt","Range","NoiseSettingsPresets","DefaultNoiseSettings","DimensionTypePresets","DefaultDimensionType","ConditionCases","core_1","ultrawarm","natural","piglin_safe","respawn_anchor_works","bed_works","has_raids","has_skylight","has_ceiling","coordinate_scale","ambient_light","logical_height","infiniburn","bedrock_roof_position","bedrock_floor_position","sea_level","disable_mob_generation","noise","density_factor","density_offset","simplex_surface_noise","random_density_offset","size_horizontal","size_vertical","height","sampling","xz_scale","y_scale","xz_factor","y_factor","top_slide","target","size","offset","bottom_slide","default_block","Name","default_fluid","Properties","level","schemas","collections","StringNode","Reference","register","Mod","ObjectNode","validator","params","pool","Opt","MapNode","validation","id","push","context","default","ListNode","NumberNode","integer","minLength","maxLength","config","ChoiceNode","forceRange","type","node","change","v","_a","_b","_c","min","max","priority","bounds","allowBinomial","enum","match","choiceContext","base","spread","maxSpread","terms","block","properties","predicate","entity","scores","term","inverse","BooleanNode","offsetX","offsetY","offsetZ","chance","looting_multiplier","enchantment","chances","period","raining","thundering","ObjectOrPreset","shrunk","fixed_time","effects","island_noise_override","amplified","IntProvider","FloatProvider","FunctionCases","min_y","noise_caves_enabled","aquifers_enabled","deepslate_enabled","Bounds","ObjectWithType","directType","directPath","directDefault","objectDefault","cases","defaultCase","keys","forEach","enabled","path","provider","hidden","Switch","Case","disableSwitchContext","choices","replace","length","score","scale","amount","isScoreHolder","source","min_inclusive","max_exclusive","mean","deviation","plateau","max_inclusive","map","absolute","above_bottom","below_top","inner","entitySourceNode","range","conditions","copySourceNode","formula","parameters","bonusMultiplier","pop","extra","probability","ops","category","op","enchantments","levels","treasure","destination","decoration","zoom","search_radius","skip_existing_chunks","limit","count","modifiers","patterns","pattern","color","append","entries","add","damage","seed","lore","tag","registry","duration","res","f","Keep","Has","Base","keep","optional","pathPush","suggest","validate","_","validationOption","hook","args","canUpdate","update","mods","webpackPolyfill","deprecate","paths","children","__webpack_amd_options__","initProcessorListSchemas","Processors","processors","processor_type","rules","location_predicate","predicate_type","input_predicate","mossiness","blocks","integrity","heightmap","position_predicate","output_state","output_nbt","posTestFields","min_dist","max_dist","min_chance","max_chance","axis","block_state","alea","xor128","xorwow","xorshift7","xor4096","tychei","sr","ModelPath","Path","relativePath","start","reduce","e","modelArr","contextArr","end","slice","element","modelPush","contextPush","copy","newElement","startsWith","model","other","every","join","fn","thisArg","super","set","shift","Errors","errors","error","exact","filter","equals","iterator","Node_1","Infinity","between","Array","index","nextIndex","getArray","navigate","parseInt","toString","options","loose","isArray","obj","list","SwitchNode","activeCase","concat","fallback","sorter","a","b","matchedCases","sort","escapeString","str","quoteString","initPredicatesSchemas","LocationFields","Common_1","StateChoice","item","durability","potion","nbt","state","fluid","position","x","y","z","biome","feature","dimension","light","stat","gamemode","advancements","recipes","stats","amplifier","ambient","visible","horizontal","allowTag","team","location","distance","flags","is_on_fire","is_sneaking","is_sprinting","is_swimming","is_baby","equipment","player","is_explosion","is_fire","is_magic","is_projectile","is_lightning","bypasses_armor","bypasses_invulnerability","bypasses_magic","source_entity","direct_entity","dealt","taken","blocked","LootFunctions","LootConditions","LootCopySources","LootEntitySources","LootTableTypes","Map","requires","allows","initDecoratorSchemas","RangeConfig","maximum","bottom_offset","top_offset","ChanceConfig","CountConfig","step","extra_count","extra_chance","noise_level","below_noise","above_noise","noise_to_count_ratio","noise_factor","noise_offset","outer","baseline","surface","floor_to_ceiling_search_range","max_water_depth","__setModuleDefault","__importStar","mod","result","getSchemas","getCollections","lootContext","Collections_1","schemas_1","CollectionRegistry","initCollections","SchemaRegistry","initSchemas","DataModel","Path_1","Errors_1","schema","data","listeners","history","JSON","stringify","historyIndex","historyMax","listener","indexOf","splice","newHistory","silentInvalidate","invalidated","invalidate","silent","reset","isNaN","last","console","log","parse","withModel","clear","tempErrors","boolean","StringOrList","ObjectOrList","ListNode_1","SwitchNode_1","switchNode","choice","isValid","XOrList","presetNode","objectNode","presets","Number","isInteger","number","utils_1","fields","defaultFields","getActiveFields","switchValue","getChildModelPath","childKey","caseFields","caseKeys","pathWithContext","getModel","includes","pathElements","activeFields","existingKeys","filterPath","filterField","activeKeys","forcedKeys","Set","newValue","constructor","transform","isEnum","isValidator","getValues","isDefinition","allowUnknown","additional","values","string","warn","Advancement_1","Condition_1","LootTable_1","PackMcmeta_1","Predicates_1","Recipe_1","Tags_1","TextComponent_1","initAdvancementSchemas","initConditionSchemas","initLootTableSchemas","initPackMcmetaSchemas","initRecipeSchemas","initTagsSchemas","initTextComponentSchemas","display","icon","title","description","background","frame","show_toast","announce_to_chat","parent","criteria","requirements","rewards","function","loot","experience","requirement","trigger","num_bees_inside","partner","child","from","to","victims","villager","zombie","killing_blow","slots","empty","occupied","full","items","delta","unique_entity_types","entered","exited","recipe","condition","LootContext_1","functionsAndConditions","functions","compileSwitchNode","contextMap","collectionID","getNode","getAvailableOptions","providedContext","tableType","conditionSwtichNode","functionSwtichNode","entitySourceSwtichNode","copySourceSwtichNode","pools","rolls","bonus_rolls","weightMod","weight","quality","expand","attribute","operation","slot","pack","pack_format","group","ingredients","ingredient","cookingtime","addition","TagBase","required","getSimpleString","text","parseFloat","isFinite","CommonFields","bold","italic","underlined","strikethrough","obfuscated","insertion","clickEvent","action","leadingSlash","allowPartial","hoverEvent","translate","with","objective","selector","keybind","storage","interpret","Dimension_1","DimensionType_1","worldgen_1","WorldSettings_1","initDimensionTypeSchemas","initDimensionSchemas","initWorldgenSchemas","initWorldSettingsSchemas","EntityPredicate","loot_table","projectile","shooter","signal_strength","NoPreset","generator","settings","biome_source","preset","altitude_noise","temperature_noise","humidity_noise","weirdness_noise","biomes","large_biomes","legacy_biome_init_layer","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","lightning","bystander","conditionIDSwtichNode","functionIDSwtichNode","_p","looking_at","stepping_on","passenger","lightning_bolt","blocks_set_on_fire","entity_struck","separator","CanyonConfig","vertical_rotation","shape","distance_factor","thickness","width_smoothness","horizontal_radius_factor","vertical_radius_default_factor","vertical_radius_center_factor","CaveConfig","horizontal_radius_multiplier","vertical_radius_multiplier","floor_level","yScale","lava_level","debug_settings","debug_mode","air_state","water_state","lava_state","barrier_state","TargetBlockState","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","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","cannot_replace","invalid_blocks","filling","inner_layer","middle_layer","outer_layer","crack","generate_crack_chance","base_crack_size","crack_point_offset","noise_multiplier","use_potential_placements_chance","use_alternate_layer0_chance","placements_require_layer0_alternate","outer_wall_distance","distribution_points","point_offset","min_gen_offset","max_gen_offset","invalid_blocks_threshold","search_range","chance_of_spreading","can_place_on_floor","can_place_on_ceiling","can_place_on_wall","can_be_placed_on","direction","allow_water","height_distribution","body_provider","head_provider","column_radius","height_scale","max_column_radius_to_cave_height_ratio","stalactite_bluntness","stalagmite_bluntness","wind_speed","min_radius_for_wind","min_bluntness_for_wind","required_vertical_space_for_tree","root_radius","root_placement_attempts","root_column_max_height","hanging_root_radius","hanging_roots_vertical_span","hanging_root_placement_attempts","allowed_vertical_water_for_tree","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","sapling_provider","foliage_provider","bend_length","min_height_for_leaves","foliage_height","leaf_placement_attempts","floor_search_range","placement_radius_around_floor","placement_probability_per_valid_position","min_surface_level","noodle_caves_enabled","ore_veins_enabled","_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","debug","dynamic","all","matches","cache","caches","open","promises","request","delete","message","deleteMatching","fetchRegistries","fetchBlockStateMap","fetchDynamicRegistries","registries","checkVersion","minVersion","maxVersion","mcdata_master","getData","states","App","blockStateRegistry","vanilla_datapack_summary","cacheResponse","ok","json","fetchResponse","fetch","responseData","put","Response","Octicon","archive","arrow_both","arrow_left","arrow_right","chevron_down","chevron_right","clippy","code","dash","download","eye","eye_closed","fold","gear","globe","info","issue_opened","kebab_horizontal","link","mark_github","moon","note","package","play","plus","plus_circle","search","square","square_fill","sun","trashcan","three_bars","unfold","xo","yo","zo","x2","y2","z2","x3","y3","z3","x4","y4","z4","x5","y5","z5","y6","sampleAndLerp","grad","GRADIENT","lerp3","gradDot","noiseLevels","lowestFreqInputFactor","lowestFreqValueFactor","fill","fixY","inputF","valueF","wrap","first","second","expectedDeviation","valueFactor","getValue","Preview","redraw","view","dx","dy","viewScale","biomeColors","endsWith","el","watchRun","textContent","toFixed","onClick","img","noiseMaps","biomeColorCache","getBiomeColor","xx","yy","closestBiome","minDist","minBiome","dist","fitness","assign","padStart","Locales","resolveLocaleParams","locale","language","en","segmentedLocale","segments","minDepth","prev","array","addEventListener","evt","stopPropagation","on","querySelectorAll","getAttribute","attributes","getNamedItem","html","innerHTML","mounted","toggleMenu","classList","hideMenu","document","body","closest","contains","remove","capture","once","chunkWidth","chunkHeight","chunkCountY","biomeDepth","biomeScale","noiseColumnCache","xOffset","minLimitPerlinNoise","fromRange","maxLimitPerlinNoise","mainPerlinNoise","depthNoise","cx","ox","noise1","fillNoiseColumn","noise2","oy","cachedColumn","xzScale","xzFactor","yFactor","randomDensity","getRandomDensity","sampleAndClampNoise","getOctaveNoise","falloff","minLimitNoise","maxLimitNoise","mainNoise","terrain","featureColors","label","ga","Tracker","hotkey","minimized","theme","preview","Versions","Previews","iterateNoiseColumn","reverse","getColor","Features","decorated","pos","getPositions","flatMap","getPlacements","random_boolean_selector","random_selector","simple_random_selector","nextInt","Decorators","sampleUniformInt","count_extra","count_multilayer","count_noise","biomeInfoNoise","count_noise_biased","factor","ceil","dark_oak_tree","depth_average","decorateY","emerald_ore","fire","glowstone","heightmap_spread_double","heightmap_world_surface","iceberg","lava_lake","nope","range_biased","range_very_biased","spread_32_above","top_solid_heightmap","magma","water_lake","perspective","usedFeatures","featureData","placements","filtered","useFeature","featureFn","decoratorFn","Models","models","jsonOutput","errorsVisible","treeMinimized","jsonError","getName","schemasLoaded","localesLoaded","loaded","mobilePanel","local_storage","save","updateSchemas","documentElement","setAttribute","hasFetchedEnglish","minVersionId","maxVersionId","findIndex","updateLocale","ctrlKey","undo","redo","Toggle","activeOcticon","Header","homeLink","panelTogglesId","getPanelToggles","panels","mount","Dropdown","GeneratorCard","arrow","active","cleanUrl","Home","filteredModels","NotFound","FieldSettings","fieldListId","fieldList","getFields","pathInput","nameInput","ssr","NOOP","calc","prefix","createElement","style","cssText","isString","elementOrSelector","ele","querySelector","getOption","propName","def","getGutterSize","gutterSize","isFirst","isLast","gutterAlign","defaultGutterFn","gutterDirection","gut","className","defaultElementStyleFn","dim","gutSize","defaultGutterStyleFn","idsOption","clientAxis","positionEnd","clientSize","ids","parentNode","parentStyle","getComputedStyle","parentFlexDirection","flexDirection","sizes","minSize","minSizes","expandToMin","snapOffset","dragInterval","cursor","gutter","elementStyle","gutterStyle","setElementSize","getSizes","getMousePosition","touches","adjust","percentage","drag","dragging","dragOffset","round","calculateSizes","aBounds","bBounds","trimToMin","sizesToTrim","parentSize","computedStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","innerSize","excessPixels","toSpare","pixelSizes","pixelSize","elementGutterSize","elementMinSize","newPixelSize","takenPixels","stopDragging","stop","move","userSelect","webkitUserSelect","MozUserSelect","pointerEvents","startDragging","button","preventDefault","pairs","adjustToMin","pair","temp","gutterElement","setGutterSize","insertBefore","computedSize","setSizes","newSizes","trimmed","newSize","collapse","destroy","preserveStyles","preserveGutter","removeChild","SplitGroup","suffixInjector","mounter","biome_noise","setPreview","noise_settings","biomePreview","onChange","setBiomeColor","getBiomeHex","getFilterKey","origin","keysModel","renderHtml","onFalse","onTrue","pathWithChoiceContext","suffix","pathLocale","onAdd","onAddBottom","childValue","removeId","childPath","cPrefix","cSuffix","cBody","help","contextMenu","keyPath","blockState","parsed","filterKey","field","getContext","fieldSettings","inputId","rawString","selectRaw","contextPath","datalistId","popupIcon","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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3B,YAHahE,IAAT6E,GACA2V,QAAQpJ,MAAM,2BAA2BpN,+BAEtCa,IAsBfnH,EAAQob,mBAfR,MACI,cACIjZ,KAAKuM,SAAW,GAEpB,SAASpI,EAAIuO,GACT1S,KAAKuM,SAASpI,GAAMuO,EAExB,IAAIvO,GACA,MAAMuO,EAAO1S,KAAKuM,SAASpI,GAI3B,YAHahE,IAATuS,GACAiI,QAAQoD,KAAK,+BAA+B5Z,+BAEzCuO,QAAmCA,EAAO,M,6BCpCzDjU,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,K,6BCAtDP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQqb,qBAAkB,EAwR1Brb,EAAQqb,gBAvRR,SAAyB3V,GACrBA,EAAYG,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,uBACA,qBACA,0BACA,yBACA,+BACA,iCACA,4BACA,0BACA,iCACA,yBACA,6BACA,4BACA,wBACA,iBACA,2BACA,uBACA,2BACA,8BAEJH,EAAYG,SAAS,uBAAwB,CACzC,kBACA,iBACA,gBACA,uBACA,yBACA,qBACA,kBACA,sBAEJH,EAAYG,SAAS,sBAAuB,CACxC,wBACA,qBACA,sBACA,8BACA,iCACA,uBACA,qCACA,2BACA,0BACA,uBACA,0BACA,0BACA,uCACA,wBACA,6BACA,iCAEJH,EAAYG,SAAS,qBAAsB,CACvC,sBACA,uBACA,qBACA,qBACA,oBACA,2BACA,yBACA,6BACA,gCACA,4BACA,wBACA,0BACA,4BACA,6BACA,sBACA,qBACA,uBACA,wBACA,4BACA,8BAEJH,EAAYG,SAAS,YAAa,CAC9B,oBACA,sBACA,8BACA,wBACA,uBACA,gBACA,yBACA,sBACA,eACA,qBACA,0BACA,sBACA,+BAEJH,EAAYG,SAAS,oBAAqB,CACtC,mBACA,YACA,UACA,iBACA,iBACA,QACA,YACA,YACA,aACA,WACA,aACA,WACA,UACA,kBACA,YAEJH,EAAYG,SAAS,YAAa,CAC9B,sBACA,uBACA,sBAEJH,EAAYG,SAAS,UAAW,CAC5B,mBACA,aACA,WACA,WACA,cACA,WACA,cACA,iBACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,gBACA,WACA,WACA,2BACA,eACA,iBACA,YACA,2BACA,iBACA,mBACA,YACA,wBACA,aACA,kBACA,wBACA,YAEJH,EAAYG,SAAS,OAAQ,CACzB,WACA,UACA,OACA,QACA,OACA,SAEJH,EAAYG,SAAS,WAAY,CAC7B,WACA,WACA,YACA,cAEJH,EAAYG,SAAS,gBAAiB,CAClC,OACA,gBACA,SACA,kBAEJH,EAAYG,SAAS,cAAe,CAChC,eACA,OACA,SACA,kBAEJH,EAAYG,SAAS,iCAAkC,CACnD,gCACA,sCACA,wBAEJH,EAAYG,SAAS,iBAAkB,CACnC,UACA,WACA,SACA,QACA,aACA,cACA,WACA,eACA,iBACA,oBACA,QACA,eACA,gBACA,iBACA,oBACA,gBACA,cACA,cACA,cACA,oBACA,cACA,gBACA,cACA,eACA,eACA,aACA,iBAEJH,EAAYG,SAAS,eAAgB,CACjC,MACA,iBACA,aACA,gBACA,YACA,qBACA,WACA,cACA,OACA,cACA,iBACA,oBACA,SACA,gBACA,cACA,qBACA,eACA,SACA,kBACA,wBACA,OACA,YACA,aACA,WACA,UACA,kBACA,gBACA,aACA,WACA,cACA,aACA,SACA,OACA,OACA,QACA,WACA,YACA,SACA,oBAEJH,EAAYG,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,sB,6BCtRRjF,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,IACtDnB,EAAQub,iBAAc,EACtB,MAAM4E,EAAgB,EAAQ,IACxBvK,EAAW,EAAQ,GACnBwK,EAAc,EAAQ,IACtBC,EAAc,EAAQ,IACtBC,EAAe,EAAQ,IACvBC,EAAe,EAAQ,IACvBC,EAAW,EAAQ,IACnBC,EAAS,EAAQ,IACjBC,EAAkB,EAAQ,IAa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,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,CA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B,EAAQqb,qBAAkB,EAqkB1Brb,EAAQqb,gBApkBR,SAAyB3V,GACrBA,EAAYG,SAAS,sBAAuB,CACxC,+BACA,yBACA,0BACA,8BACA,gCACA,6BACA,yBACA,kCACA,4BACA,2BACA,wBACA,+BACA,iCACA,0BACA,+BACA,gCACA,uBACA,8BACA,oCACA,+BACA,+BACA,uBACA,6BACA,qBACA,0BACA,yBACA,4CACA,+BACA,0CACA,iCACA,4BACA,0BACA,yBACA,6BACA,2BACA,4BACA,wBACA,uBACA,iBACA,4CACA,2BACA,uBACA,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,QACA,UACA,QACA,QACA,YAEJH,EAAYG,SAAS,iBAAkB,CACnC,kBACA,4BACA,cACA,iBACA,gBACA,qBAEJH,EAAYG,SAAS,kBAAmB,CACpC,MACA,WAEJH,EAAYG,SAAS,oBAAqB,CACtC,kBACA,kBACA,oBACA,qBACA,oBACA,mBACA,iBACA,mBACA,+BACA,+BACA,oBACA,oBAEJH,EAAYG,SAAS,iBAAkB,CACnC,OACA,qBACA,sBACA,kBACA,mBACA,gBACA,aACA,cACA,eACA,gBACA,gBACA,mBACA,kBACA,gBACA,QACA,iBACA,kBACA,eACA,mBACA,gBACA,gBACA,oBACA,mBACA,iBACA,SACA,UACA,gBACA,kBACA,sBACA,yBACA,SACA,eACA,WACA,cACA,SACA,QACA,UACA,QACA,SACA,SACA,WAEJH,EAAYG,SAAS,YAAa,CAC9B,QACA,SACA,UACA,aACA,SACA,OACA,OAC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","file":"js/bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 98);\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(require(\"./model/DataModel\"), exports);\r\n__exportStar(require(\"./model/Path\"), exports);\r\n__exportStar(require(\"./model/Errors\"), exports);\r\n__exportStar(require(\"./nodes/Node\"), exports);\r\n__exportStar(require(\"./nodes/BooleanNode\"), exports);\r\n__exportStar(require(\"./nodes/ChoiceNode\"), exports);\r\n__exportStar(require(\"./nodes/ListNode\"), exports);\r\n__exportStar(require(\"./nodes/MapNode\"), exports);\r\n__exportStar(require(\"./nodes/NumberNode\"), exports);\r\n__exportStar(require(\"./nodes/ObjectNode\"), exports);\r\n__exportStar(require(\"./nodes/Reference\"), exports);\r\n__exportStar(require(\"./nodes/StringNode\"), exports);\r\n__exportStar(require(\"./nodes/SwitchNode\"), exports);\r\n__exportStar(require(\"./Hook\"), exports);\r\n__exportStar(require(\"./Registries\"), exports);\r\n__exportStar(require(\"./ValidationOption\"), exports);\r\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.UniformInt = exports.Range = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.UniformInt = (config) => core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n change: v => v.base\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n base: core_1.NumberNode({ integer: true, min: config === null || config === void 0 ? void 0 : config.min, max: config === null || config === void 0 ? void 0 : config.max }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: config === null || config === void 0 ? void 0 : config.maxSpread })\r\n }),\r\n change: v => ({\r\n base: v,\r\n spread: 0\r\n })\r\n }\r\n ], { context: 'uniform_int' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise: {\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 256,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise: {\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n height: 128,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.IntProvider = exports.FloatProvider = exports.NoiseSettingsPresets = exports.DefaultNoiseSettings = exports.DimensionTypePresets = exports.DefaultDimensionType = exports.FunctionCases = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nexports.DefaultDimensionType = {\r\n ultrawarm: false,\r\n natural: true,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: true,\r\n has_raids: true,\r\n has_skylight: true,\r\n has_ceiling: false,\r\n coordinate_scale: 1,\r\n ambient_light: 0,\r\n logical_height: 256,\r\n infiniburn: 'minecraft:infiniburn_overworld',\r\n min_y: 0,\r\n height: 256,\r\n};\r\nexports.DefaultNoiseSettings = {\r\n name: 'minecraft:overworld',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n};\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true }), { minLength: 3, maxLength: 3 }), {\r\n default: () => [0, 0, 0]\r\n }));\r\n const Bounds = (integer) => core_1.Opt(core_1.ChoiceNode([\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer }),\r\n change: (v) => { var _a, _b; return v === undefined ? 0 : (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 0; }\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(core_1.NumberNode({ integer })),\r\n max: core_1.Opt(core_1.NumberNode({ integer }))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: v !== null && v !== void 0 ? v : 0,\r\n max: v !== null && v !== void 0 ? v : 0\r\n })\r\n }\r\n ]));\r\n schemas.register('int_bounds', Bounds(true));\r\n schemas.register('float_bounds', Bounds());\r\n schemas.register('int_range', core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n min: core_1.Opt(Reference('number_provider')),\r\n max: core_1.Opt(Reference('number_provider'))\r\n })\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode({ integer: true })\r\n }\r\n ], { context: 'range' }));\r\n const ObjectWithType = (pool, directType, directPath, directDefault, objectDefault, context, cases) => {\r\n let defaultCase = {};\r\n if (objectDefault) {\r\n Object.keys(cases[objectDefault]).forEach(k => {\r\n defaultCase[k] = core_1.Mod(cases[objectDefault][k], {\r\n enabled: path => path.push('type').get() === undefined\r\n });\r\n });\r\n }\r\n const provider = core_1.ObjectNode({\r\n type: core_1.Mod(core_1.Opt(StringNode({ validator: 'resource', params: { pool } })), {\r\n hidden: () => true\r\n }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: cases,\r\n ...defaultCase\r\n }, { context, disableSwitchContext: true });\r\n const choices = [{\r\n type: directType,\r\n node: cases[directDefault][directPath]\r\n }];\r\n if (objectDefault) {\r\n choices.push({\r\n type: 'object',\r\n priority: -1,\r\n node: provider\r\n });\r\n }\r\n Object.keys(cases).forEach(k => {\r\n choices.push({\r\n type: k,\r\n match: (v) => {\r\n var _a;\r\n const type = 'minecraft:' + ((_a = v === null || v === void 0 ? void 0 : v.type) === null || _a === void 0 ? void 0 : _a.replace(/^minecraft:/, ''));\r\n if (type === k)\r\n return true;\r\n const keys = v ? Object.keys(v) : [];\r\n return typeof v === 'object' && ((keys === null || keys === void 0 ? void 0 : keys.length) === 0 || ((keys === null || keys === void 0 ? void 0 : keys.length) === 1 && (keys === null || keys === void 0 ? void 0 : keys[0]) === 'type'));\r\n },\r\n node: provider,\r\n change: (v) => ({ type: k })\r\n });\r\n });\r\n return core_1.ChoiceNode(choices, { context, choiceContext: `${context}.type` });\r\n };\r\n schemas.register('number_provider', ObjectWithType('loot_number_provider_type', 'number', 'value', 'minecraft:constant', 'minecraft:uniform', 'number_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode()\r\n },\r\n 'minecraft:uniform': {\r\n min: Reference('number_provider'),\r\n max: Reference('number_provider')\r\n },\r\n 'minecraft:binomial': {\r\n n: Reference('number_provider'),\r\n p: Reference('number_provider')\r\n },\r\n 'minecraft:score': {\r\n target: Reference('scoreboard_name_provider'),\r\n score: StringNode({ validator: 'objective' }),\r\n scale: core_1.Opt(core_1.NumberNode())\r\n }\r\n }));\r\n schemas.register('scoreboard_name_provider', ObjectWithType('loot_score_provider_type', 'string', 'target', 'minecraft:context', null, 'score_provider', {\r\n 'minecraft:fixed': {\r\n name: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities', isScoreHolder: true } }) // FIXME: doesn't support selectors\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'entity_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n schemas.register('nbt_provider', ObjectWithType('loot_nbt_provider_type', 'string', 'target', 'minecraft:context', null, 'nbt_provider', {\r\n 'minecraft:storage': {\r\n source: StringNode({ validator: 'resource', params: { pool: '$storage' } })\r\n },\r\n 'minecraft:context': {\r\n target: core_1.Mod(StringNode({ enum: 'copy_source' }), { default: () => 'this' })\r\n }\r\n }));\r\n exports.FloatProvider = (config) => ObjectWithType('float_provider_type', 'number', 'value', 'minecraft:constant', null, 'float_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode(config)\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode(config),\r\n max_exclusive: core_1.NumberNode(config)\r\n })\r\n },\r\n 'minecraft:clamped_normal': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n mean: core_1.NumberNode(),\r\n deviation: core_1.NumberNode()\r\n })\r\n },\r\n 'minecraft:trapezoid': {\r\n value: core_1.ObjectNode({\r\n min: core_1.NumberNode(),\r\n max: core_1.NumberNode(),\r\n plateau: core_1.NumberNode()\r\n })\r\n }\r\n });\r\n schemas.register('float_provider', exports.FloatProvider());\r\n exports.IntProvider = (config) => ObjectWithType('int_provider_type', 'number', 'value', 'minecraft:constant', null, 'int_provider', {\r\n 'minecraft:constant': {\r\n value: core_1.NumberNode({ integer: true, ...config })\r\n },\r\n 'minecraft:uniform': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config })\r\n })\r\n },\r\n 'minecraft:clamped': {\r\n value: core_1.ObjectNode({\r\n min_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n max_inclusive: core_1.NumberNode({ integer: true, ...config }),\r\n source: Reference('int_provider')\r\n })\r\n }\r\n });\r\n schemas.register('int_provider', exports.IntProvider());\r\n schemas.register('vertical_anchor', core_1.ChoiceNode(['absolute', 'above_bottom', 'below_top'].map(t => ({\r\n type: t,\r\n match: v => (v === null || v === void 0 ? void 0 : v[t]) !== undefined,\r\n change: v => { var _a, _b, _c; return ({ [t]: (_c = (_b = (_a = v.absolute) !== null && _a !== void 0 ? _a : v.above_bottom) !== null && _b !== void 0 ? _b : v.below_top) !== null && _c !== void 0 ? _c : 0 }); },\r\n node: core_1.ObjectNode({\r\n [t]: core_1.NumberNode({ integer: true, min: -2048, max: 2047 })\r\n })\r\n })), { context: 'vertical_anchor' }));\r\n schemas.register('height_provider', ObjectWithType('height_provider_type', 'number', 'value', 'minecraft:constant', null, 'height_provider', {\r\n 'minecraft:constant': {\r\n value: Reference('vertical_anchor')\r\n },\r\n 'minecraft:uniform': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor')\r\n },\r\n 'minecraft:biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:very_biased_to_bottom': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n inner: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n },\r\n 'minecraft:trapezoid': {\r\n min_inclusive: Reference('vertical_anchor'),\r\n max_inclusive: Reference('vertical_anchor'),\r\n plateau: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n }\r\n }));\r\n exports.ConditionCases = (entitySourceNode = StringNode({ enum: 'entity_source' })) => ({\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Reference('int_range'))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: Reference('int_range'),\r\n period: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:value_check': {\r\n value: Reference('number_provider'),\r\n range: Reference('int_range')\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n });\r\n exports.FunctionCases = (conditions, copySourceNode = StringNode({ enum: 'copy_source' }), entitySourceNode = StringNode({ enum: 'entity_source' })) => {\r\n const cases = {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n })\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceNode\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: Reference('nbt_provider'),\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' }))\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } }))\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } })))\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Reference('number_provider'),\r\n treasure: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'map_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceNode\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Reference('int_range')\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Reference('number_provider'),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier'))\r\n },\r\n 'minecraft:set_banner_pattern': {\r\n patterns: core_1.ListNode(core_1.ObjectNode({\r\n pattern: StringNode({ enum: 'banner_pattern' }),\r\n color: StringNode({ enum: 'dye_color' })\r\n })),\r\n append: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry'))\r\n },\r\n 'minecraft:set_count': {\r\n count: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Reference('number_provider'),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_enchantments': {\r\n enchantments: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }), Reference('number_provider')),\r\n add: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceNode),\r\n name: core_1.Opt(Reference('text_component'))\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } })\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Reference('number_provider')\r\n })))\r\n }\r\n };\r\n const res = {};\r\n collections.get('loot_function_type').forEach(f => {\r\n res[f] = { ...cases[f], ...conditions };\r\n });\r\n return res;\r\n };\r\n exports.DimensionTypePresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$dimension_type' } }), node, {\r\n 'minecraft:overworld': exports.DefaultDimensionType,\r\n 'minecraft:the_nether': {\r\n name: 'minecraft:the_nether',\r\n ultrawarm: true,\r\n natural: false,\r\n shrunk: true,\r\n piglin_safe: true,\r\n respawn_anchor_works: true,\r\n bed_works: false,\r\n has_raids: false,\r\n has_skylight: false,\r\n has_ceiling: true,\r\n ambient_light: 0.1,\r\n fixed_time: 18000,\r\n logical_height: 128,\r\n effects: 'minecraft:the_nether',\r\n infiniburn: 'minecraft:infiniburn_nether',\r\n min_y: 0,\r\n height: 256,\r\n },\r\n 'minecraft:the_end': {\r\n name: 'minecraft:the_end',\r\n ultrawarm: false,\r\n natural: false,\r\n shrunk: false,\r\n piglin_safe: false,\r\n respawn_anchor_works: false,\r\n bed_works: false,\r\n has_raids: true,\r\n has_skylight: false,\r\n has_ceiling: false,\r\n ambient_light: 0,\r\n fixed_time: 6000,\r\n logical_height: 256,\r\n effects: 'minecraft:the_end',\r\n infiniburn: 'minecraft:infiniburn_end',\r\n min_y: 0,\r\n height: 256,\r\n }\r\n });\r\n exports.NoiseSettingsPresets = (node) => core_1.ObjectOrPreset(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings' } }), node, {\r\n 'minecraft:overworld': exports.DefaultNoiseSettings,\r\n 'minecraft:nether': {\r\n name: 'minecraft:nether',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:netherrack\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:lava\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:end': {\r\n name: 'minecraft:end',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:end_stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:air\"\r\n }\r\n },\r\n 'minecraft:amplified': {\r\n name: 'minecraft:amplified',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: 0,\r\n sea_level: 63,\r\n disable_mob_generation: false,\r\n noise_caves_enabled: true,\r\n aquifers_enabled: true,\r\n deepslate_enabled: true,\r\n noise: {\r\n min_y: 0,\r\n height: 256,\r\n density_factor: 1,\r\n density_offset: -0.46875,\r\n simplex_surface_noise: true,\r\n random_density_offset: true,\r\n amplified: true,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -10,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 0,\r\n offset: 0\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:caves': {\r\n name: 'minecraft:caves',\r\n bedrock_roof_position: 0,\r\n bedrock_floor_position: 0,\r\n sea_level: 32,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0.019921875,\r\n simplex_surface_noise: false,\r\n random_density_offset: false,\r\n size_horizontal: 1,\r\n size_vertical: 2,\r\n sampling: {\r\n xz_scale: 1,\r\n y_scale: 3,\r\n xz_factor: 80,\r\n y_factor: 60\r\n },\r\n top_slide: {\r\n target: 120,\r\n size: 3,\r\n offset: 0\r\n },\r\n bottom_slide: {\r\n target: 320,\r\n size: 4,\r\n offset: -1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n },\r\n 'minecraft:floating_islands': {\r\n name: 'minecraft:floating_islands',\r\n bedrock_roof_position: -10,\r\n bedrock_floor_position: -10,\r\n sea_level: 0,\r\n disable_mob_generation: true,\r\n noise_caves_enabled: false,\r\n aquifers_enabled: false,\r\n deepslate_enabled: false,\r\n noise: {\r\n min_y: 0,\r\n height: 128,\r\n density_factor: 0,\r\n density_offset: 0,\r\n simplex_surface_noise: true,\r\n random_density_offset: false,\r\n island_noise_override: true,\r\n size_horizontal: 2,\r\n size_vertical: 1,\r\n sampling: {\r\n xz_scale: 2,\r\n y_scale: 1,\r\n xz_factor: 80,\r\n y_factor: 160\r\n },\r\n top_slide: {\r\n target: -3000,\r\n size: 64,\r\n offset: -46\r\n },\r\n bottom_slide: {\r\n target: -30,\r\n size: 7,\r\n offset: 1\r\n }\r\n },\r\n default_block: {\r\n Name: \"minecraft:stone\"\r\n },\r\n default_fluid: {\r\n Name: \"minecraft:water\",\r\n Properties: {\r\n level: \"0\"\r\n }\r\n }\r\n }\r\n });\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Keep = exports.Opt = exports.Has = exports.Mod = exports.Base = void 0;\r\nexports.Base = ({\r\n type: () => 'base',\r\n category: () => undefined,\r\n default: () => undefined,\r\n enabled: () => true,\r\n keep: () => false,\r\n optional: () => false,\r\n navigate() { return this; },\r\n pathPush: (p) => p,\r\n suggest: () => [],\r\n validate: (_, v) => v,\r\n validationOption: () => undefined,\r\n hook(hook, path, ...args) { return hook.base({ node: this }, path, ...args); },\r\n canUpdate: () => false,\r\n update: () => []\r\n});\r\nexports.Mod = (node, mods) => ({\r\n ...node, ...(typeof mods === 'function' ? mods(node) : mods)\r\n});\r\nexports.Has = (key, node) => exports.Mod(node, {\r\n enabled: (p) => p.push(key).get() !== undefined\r\n});\r\nfunction Opt(node) {\r\n return {\r\n ...node,\r\n optional: () => true\r\n };\r\n}\r\nexports.Opt = Opt;\r\nfunction Keep(node) {\r\n return {\r\n ...node,\r\n keep: () => true\r\n };\r\n}\r\nexports.Keep = Keep;\r\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCommonSchemas = exports.Range = exports.ConditionCases = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initCommonSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n schemas.register('block_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'Name' }] } } }))\r\n }, { context: 'block_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('fluid_state', core_1.Mod(core_1.ObjectNode({\r\n Name: StringNode({ validator: 'resource', params: { pool: 'fluid' } }),\r\n Properties: core_1.Opt(core_1.MapNode(StringNode(), StringNode()))\r\n }, { context: 'fluid_state' }), {\r\n default: () => ({\r\n Name: 'minecraft:water',\r\n Properties: {\r\n 'level': '0'\r\n }\r\n })\r\n }));\r\n schemas.register('block_pos', core_1.Mod(core_1.ListNode(core_1.NumberNode({ integer: true })), {\r\n default: () => [0, 0, 0]\r\n }));\r\n exports.Range = (config) => core_1.ChoiceNode([\r\n ...((config === null || config === void 0 ? void 0 : config.forceRange) ? [] : [{\r\n type: 'number',\r\n node: core_1.NumberNode(config),\r\n change: (v) => { var _a, _b, _c; return v === undefined ? 0 : (_c = (_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : v.n) !== null && _c !== void 0 ? _c : 0; }\r\n }]),\r\n {\r\n type: 'object',\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n min: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config)),\r\n max: (config === null || config === void 0 ? void 0 : config.bounds) ? core_1.NumberNode(config) : core_1.Opt(core_1.NumberNode(config))\r\n }, { context: 'range' }),\r\n change: (v) => ({\r\n min: typeof v === 'number' ? v : v === undefined ? 1 : v.n,\r\n max: typeof v === 'number' ? v : v === undefined ? 1 : v.n\r\n })\r\n },\r\n ...((config === null || config === void 0 ? void 0 : config.allowBinomial) ? [{\r\n type: 'binomial',\r\n node: core_1.ObjectNode({\r\n type: StringNode({ enum: ['minecraft:binomial'] }),\r\n n: core_1.NumberNode({ integer: true, min: 0 }),\r\n p: core_1.NumberNode({ min: 0, max: 1 })\r\n }, { context: 'range' }),\r\n match: (v) => v !== undefined && v.type === 'minecraft:binomial',\r\n change: (v) => {\r\n var _a, _b;\r\n return ({\r\n type: 'minecraft:binomial',\r\n n: typeof v === 'number' ? v : v === undefined ? 1 : ((_b = (_a = v.min) !== null && _a !== void 0 ? _a : v.max) !== null && _b !== void 0 ? _b : 1),\r\n p: 0.5\r\n });\r\n }\r\n }] : [])\r\n ], { choiceContext: 'range' });\r\n exports.ConditionCases = {\r\n 'minecraft:alternative': {\r\n terms: core_1.ListNode(Reference('condition'))\r\n },\r\n 'minecraft:block_state_property': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })\r\n },\r\n 'minecraft:damage_source_properties': {\r\n predicate: Reference('damage_source_predicate')\r\n },\r\n 'minecraft:entity_properties': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: StringNode({ enum: 'entity_source' }),\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), exports.Range({ forceRange: true, bounds: true }))\r\n },\r\n 'minecraft:inverted': {\r\n term: Reference('condition')\r\n },\r\n 'minecraft:killed_by_player': {\r\n inverse: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:location_check': {\r\n offsetX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetY: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n offsetZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n predicate: Reference('location_predicate')\r\n },\r\n 'minecraft:match_tool': {\r\n predicate: Reference('item_predicate')\r\n },\r\n 'minecraft:random_chance': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:random_chance_with_looting': {\r\n chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n looting_multiplier: core_1.NumberNode()\r\n },\r\n 'minecraft:requirements': {\r\n terms: core_1.ListNode(Reference('condition')),\r\n },\r\n 'minecraft:reference': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$predicate' } })\r\n },\r\n 'minecraft:table_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n chances: core_1.ListNode(core_1.NumberNode({ min: 0, max: 1 }))\r\n },\r\n 'minecraft:time_check': {\r\n value: exports.Range(),\r\n period: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:weather_check': {\r\n raining: core_1.Opt(core_1.BooleanNode()),\r\n thundering: core_1.Opt(core_1.BooleanNode())\r\n }\r\n };\r\n}\r\nexports.initCommonSchemas = initCommonSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initProcessorListSchemas = exports.Processors = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initProcessorListSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n exports.Processors = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/processor_list' } }),\r\n change: v => undefined\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('processor_list'),\r\n change: v => ({\r\n processors: [{\r\n \"processor_type\": \"minecraft:nop\"\r\n }]\r\n })\r\n }\r\n ]);\r\n schemas.register('processor_list', core_1.Mod(core_1.ObjectNode({\r\n processors: core_1.ListNode(Reference('processor'))\r\n }, { context: 'processor_list' }), {\r\n default: () => ({\r\n processors: [{\r\n processor_type: 'minecraft:rule',\r\n rules: [{\r\n location_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n },\r\n input_predicate: {\r\n predicate_type: 'minecraft:always_true'\r\n }\r\n }]\r\n }]\r\n })\r\n }));\r\n schemas.register('processor', core_1.Mod(core_1.ObjectNode({\r\n processor_type: StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_processor' } }),\r\n [core_1.Switch]: [{ push: 'processor_type' }],\r\n [core_1.Case]: {\r\n 'minecraft:block_age': {\r\n mossiness: core_1.NumberNode()\r\n },\r\n 'minecraft:block_ignore': {\r\n blocks: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:block_rot': {\r\n integrity: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:gravity': {\r\n heightmap: StringNode({ enum: 'heightmap_type' }),\r\n offset: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:protected_blocks': {\r\n value: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\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.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n max_dist: core_1.Opt(core_1.NumberNode({ min: 0, max: 255, integer: true })),\r\n min_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n max_chance: core_1.Opt(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.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:depth_average': {\r\n baseline: core_1.NumberNode({ integer: true }),\r\n spread: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:fire': CountConfig,\r\n 'minecraft:glowstone': CountConfig,\r\n 'minecraft:lava_lake': ChanceConfig,\r\n 'minecraft:range': RangeConfig,\r\n 'minecraft:range_biased': RangeConfig,\r\n 'minecraft:range_very_biased': RangeConfig,\r\n 'minecraft:water_lake': ChanceConfig\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LootFunctions = exports.LootConditions = exports.LootCopySources = exports.LootEntitySources = exports.LootTableTypes = void 0;\r\nexports.LootTableTypes = new Map([\r\n ['minecraft:advancement_entity', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:advancement_reward', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:barter', { requires: [8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:block', { requires: [1 /* BlockState */, 7 /* Origin */, 9 /* Tool */], allows: [0 /* BlockEntity */, 4 /* ExplosionRadius */, 8 /* ThisEntity */] }],\r\n ['minecraft:chest', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:command', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:empty', { requires: [], allows: [] }],\r\n ['minecraft:entity', { requires: [2 /* DamageSource */, 7 /* Origin */, 8 /* ThisEntity */], allows: [3 /* DirectKillerEntity */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */] }],\r\n ['minecraft:fishing', { requires: [7 /* Origin */, 9 /* Tool */], allows: [8 /* ThisEntity */] }],\r\n ['minecraft:generic', { requires: [2 /* DamageSource */, 0 /* BlockEntity */, 1 /* BlockState */, 3 /* DirectKillerEntity */, 4 /* ExplosionRadius */, 5 /* KillerEntity */, 6 /* LastDamagePlayer */, 7 /* Origin */, 8 /* ThisEntity */, 9 /* Tool */], allows: [] }],\r\n ['minecraft:gift', { requires: [7 /* Origin */, 8 /* ThisEntity */], allows: [] }],\r\n ['minecraft:selector', { requires: [7 /* Origin */], allows: [8 /* ThisEntity */] }]\r\n]);\r\n/**\r\n * A map from loot entity sources to an array of their required context.\r\n */\r\nexports.LootEntitySources = new Map([\r\n ['direct_killer', [3 /* DirectKillerEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot copy sources to an array of their required context.\r\n */\r\nexports.LootCopySources = new Map([\r\n ['block_entity', [0 /* BlockEntity */]],\r\n ['killer', [5 /* KillerEntity */]],\r\n ['killer_player', [5 /* KillerEntity */]],\r\n ['this', [8 /* ThisEntity */]]\r\n]);\r\n/**\r\n * A map from loot condition IDs to an array of their required context.\r\n */\r\nexports.LootConditions = new Map([\r\n ['minecraft:alternative', []],\r\n ['minecraft:block_state_property', [1 /* BlockState */]],\r\n ['minecraft:damage_source_properties', [2 /* DamageSource */]],\r\n ['minecraft:entity_properties', [7 /* Origin */]],\r\n ['minecraft:entity_scores', []],\r\n ['minecraft:inverted', []],\r\n ['minecraft:killed_by_player', [6 /* LastDamagePlayer */]],\r\n ['minecraft:location_check', []],\r\n ['minecraft:match_tool', [9 /* Tool */]],\r\n ['minecraft:random_chance', []],\r\n ['minecraft:random_chance_with_looting', [5 /* KillerEntity */]],\r\n ['minecraft:reference', []],\r\n ['minecraft:survives_explosion', [4 /* ExplosionRadius */]],\r\n ['minecraft:table_bonus', [9 /* Tool */]],\r\n ['minecraft:time_check', []],\r\n ['minecraft:weather_check', []]\r\n]);\r\n/**\r\n * A map from loot function IDs to an array of their required context.\r\n */\r\nexports.LootFunctions = new Map([\r\n ['minecraft:apply_bonus', [9 /* Tool */]],\r\n ['minecraft:copy_name', []],\r\n ['minecraft:copy_nbt', []],\r\n ['minecraft:copy_state', [1 /* BlockState */]],\r\n ['minecraft:enchant_randomly', []],\r\n ['minecraft:enchant_with_levels', []],\r\n ['minecraft:exploration_map', [7 /* Origin */]],\r\n ['minecraft:explosion_decay', []],\r\n ['minecraft:fill_player_head', []],\r\n ['minecraft:furnace_smelt', []],\r\n ['minecraft:limit_count', []],\r\n ['minecraft:looting_enchant', [5 /* KillerEntity */]],\r\n ['minecraft:set_attributes', []],\r\n ['minecraft:set_banner_pattern', []],\r\n ['minecraft:set_contents', []],\r\n ['minecraft:set_count', []],\r\n ['minecraft:set_damage', []],\r\n ['minecraft:set_loot_table', []],\r\n ['minecraft:set_lore', []],\r\n ['minecraft:set_name', []],\r\n ['minecraft:set_nbt', []],\r\n ['minecraft:set_stew_effect', []]\r\n]);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDecoratorSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initDecoratorSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CountConfig = {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n };\r\n schemas.register('configured_decorator', core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/decorator' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:carving_mask': {\r\n step: StringNode({ enum: 'generation_step' })\r\n },\r\n 'minecraft:cave_surface': {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:chance': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:count': CountConfig,\r\n 'minecraft:count_extra': {\r\n count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_count: core_1.NumberNode({ integer: true, min: 0 }),\r\n extra_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:count_multilayer': CountConfig,\r\n 'minecraft:count_noise': {\r\n noise_level: core_1.NumberNode(),\r\n below_noise: core_1.NumberNode({ integer: true }),\r\n above_noise: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:count_noise_biased': {\r\n noise_to_count_ratio: core_1.NumberNode({ integer: true }),\r\n noise_factor: core_1.NumberNode(),\r\n noise_offset: core_1.Opt(core_1.NumberNode())\r\n },\r\n 'minecraft:decorated': {\r\n outer: Reference('configured_decorator'),\r\n inner: Reference('configured_decorator')\r\n },\r\n 'minecraft:heightmap': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:heightmap_spread_double': {\r\n heightmap: StringNode({ enum: 'heightmap_type' })\r\n },\r\n 'minecraft:lava_lake': {\r\n chance: core_1.NumberNode({ integer: true, min: 0 })\r\n },\r\n 'minecraft:range': {\r\n height: Reference('height_provider')\r\n },\r\n 'minecraft:water_depth_threshold': {\r\n max_water_depth: core_1.NumberNode({ integer: true })\r\n }\r\n }\r\n }, { context: 'decorator', category: 'predicate' })\r\n }, { context: 'decorator', category: 'predicate' }));\r\n}\r\nexports.initDecoratorSchemas = initDecoratorSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = exports.lootContext = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n});\r\nvar __importStar = (this && this.__importStar) || function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSchemas = exports.getCollections = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Collections_1 = require(\"./Collections\");\r\nconst schemas_1 = require(\"./schemas\");\r\nexports.lootContext = __importStar(require(\"./LootContext\"));\r\nfunction getCollections() {\r\n const collections = new core_1.CollectionRegistry();\r\n Collections_1.initCollections(collections);\r\n return collections;\r\n}\r\nexports.getCollections = getCollections;\r\n/**\r\n * @param collections The CollectionRegistry for this version. Note that apart from\r\n * the built-in collections, the client of this module is responsible for futhermore\r\n * adding the vanilla registries to it: the collection IDs shouldn't contain the\r\n * namespace (`minecraft:`) part, while the values within the collections should.\r\n *\r\n * @example\r\n * for (const key in VANILLA_REGISTRIES>) {\r\n * collections.register(\r\n * key.replace(/^minecraft:/, ''),\r\n * Object.keys(VANILLA_REGISTRIES[key].entries)\r\n * )\r\n * }\r\n */\r\nfunction getSchemas(collections) {\r\n const schemas = new core_1.SchemaRegistry();\r\n schemas_1.initSchemas(schemas, collections);\r\n return schemas;\r\n}\r\nexports.getSchemas = getSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DataModel = void 0;\r\nconst Path_1 = require(\"./Path\");\r\nconst Errors_1 = require(\"./Errors\");\r\n/**\r\n * Holding the data linked to a given schema\r\n */\r\nclass DataModel {\r\n /**\r\n * @param schema node to use as schema for this model\r\n */\r\n constructor(schema, options) {\r\n var _a;\r\n this.schema = schema;\r\n this.data = schema.default();\r\n this.listeners = [];\r\n this.errors = new Errors_1.Errors();\r\n this.history = [JSON.stringify(this.data)];\r\n this.historyIndex = 0;\r\n this.historyMax = (_a = options === null || options === void 0 ? void 0 : options.historyMax) !== null && _a !== void 0 ? _a : 50;\r\n }\r\n /**\r\n * Adds a listener to notify when the model is invalidated\r\n * @param listener the listener to be notified\r\n */\r\n addListener(listener) {\r\n this.listeners.push(listener);\r\n }\r\n /**\r\n * Removes a listener from this model\r\n * @param listener the listener to be removed\r\n */\r\n removeListener(listener) {\r\n const index = this.listeners.indexOf(listener);\r\n if (index > -1) {\r\n this.listeners.splice(index, 1);\r\n }\r\n }\r\n /**\r\n * Updates the history and notifies all\r\n * listeners that the model is invalidated\r\n */\r\n invalidate() {\r\n const newHistory = JSON.stringify(this.data);\r\n if (this.history[this.historyIndex] !== newHistory) {\r\n this.historyIndex += 1;\r\n this.history.splice(this.historyIndex, this.historyMax, newHistory);\r\n if (this.history.length > this.historyMax) {\r\n this.history.splice(0, 1);\r\n this.historyIndex -= 1;\r\n }\r\n }\r\n this.silentInvalidate();\r\n }\r\n /**\r\n * Notifies all listeners that the model is invalidated\r\n */\r\n silentInvalidate() {\r\n this.listeners.forEach(l => {\r\n if (l.invalidated)\r\n l.invalidated(this);\r\n if (l.errors)\r\n l.errors(this.errors);\r\n });\r\n }\r\n /**\r\n * Resets the full data and notifies listeners\r\n * @param value new model data\r\n */\r\n reset(value, loose) {\r\n this.data = value;\r\n this.validate(loose);\r\n this.invalidate();\r\n }\r\n /**\r\n * Gets the data at a specified path\r\n * @param path path at which to find the data\r\n * @returns undefined, if the the path does not exist in the data\r\n */\r\n get(path) {\r\n let node = this.data;\r\n path.forEach(e => {\r\n if (node === undefined)\r\n return node;\r\n node = node[e];\r\n });\r\n return node;\r\n }\r\n /**\r\n * Updates the data on a path. Node will be removed when value is undefined\r\n * @param path path to update\r\n * @param value new data at the specified path\r\n */\r\n set(path, value, silent) {\r\n if (path.getArray().length === 0) {\r\n this.reset(value, true);\r\n return;\r\n }\r\n let node = this.data;\r\n path.pop().forEach(e => {\r\n if (node[e] === undefined || typeof node[e] === 'string' || typeof node[e] === 'number') {\r\n node[e] = {};\r\n }\r\n node = node[e];\r\n });\r\n if (value === undefined || (typeof value === 'number' && isNaN(value))) {\r\n if (typeof path.last() === 'number') {\r\n node.splice(path.last(), 1);\r\n }\r\n else {\r\n delete node[path.last()];\r\n }\r\n }\r\n else {\r\n node[path.last()] = value;\r\n }\r\n if (silent)\r\n return;\r\n console.log('Set', path.toString(), JSON.stringify(value));\r\n this.validate(true);\r\n this.invalidate();\r\n }\r\n /**\r\n * Go one step back in history\r\n */\r\n undo() {\r\n if (this.historyIndex > 0) {\r\n this.historyIndex -= 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Go one step forward in history.\r\n */\r\n redo() {\r\n if (this.historyIndex < this.history.length - 1) {\r\n this.historyIndex += 1;\r\n this.data = JSON.parse(this.history[this.historyIndex]);\r\n this.validate(false);\r\n this.silentInvalidate();\r\n }\r\n }\r\n /**\r\n * Uses the schema to check whether the data is valid\r\n */\r\n validate(loose) {\r\n var _a;\r\n const path = new Path_1.Path().withModel(this);\r\n this.errors.clear();\r\n this.data = (_a = this.schema.validate(path, this.data, this.errors, { loose })) !== null && _a !== void 0 ? _a : {};\r\n }\r\n error(path, error, ...params) {\r\n const tempErrors = new Errors_1.Errors();\r\n tempErrors.add(path, error, params);\r\n this.listeners.forEach(l => {\r\n if (l.errors)\r\n l.errors(tempErrors);\r\n });\r\n }\r\n}\r\nexports.DataModel = DataModel;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BooleanNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Boolean node with two buttons for true/false\r\n */\r\nexports.BooleanNode = () => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'boolean',\r\n default: () => false,\r\n suggest: () => ['false', 'true'],\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'boolean') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'boolean' || value === undefined) {\r\n errors.add(path, 'error.expected_boolean');\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.boolean) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectOrPreset = exports.StringOrList = exports.ObjectOrList = exports.ChoiceNode = void 0;\r\nconst ListNode_1 = require(\"./ListNode\");\r\nconst SwitchNode_1 = require(\"./SwitchNode\");\r\n/**\r\n * Node that allows multiple types\r\n */\r\nexports.ChoiceNode = (choices, config) => {\r\n const isValid = (choice, value) => {\r\n if (choice.match) {\r\n return choice.match(value);\r\n }\r\n switch (choice.type) {\r\n case 'list': return Array.isArray(value);\r\n case 'object': return typeof value === 'object' && !Array.isArray(value);\r\n default: return typeof value === choice.type;\r\n }\r\n };\r\n const switchNode = SwitchNode_1.SwitchNode(choices.map(c => ({\r\n type: c.type,\r\n priority: c.priority,\r\n match: (path) => isValid(c, path.get()),\r\n node: c.node\r\n })));\r\n return {\r\n ...switchNode,\r\n validate(path, value, errors, options) {\r\n let choice = switchNode.activeCase(path, true);\r\n if (choice.node.optional()) {\r\n return value;\r\n }\r\n return choice.node.validate(path, value, errors, options);\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.choice) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, choices, config: config !== null && config !== void 0 ? config : {}, switchNode }, path, ...args);\r\n }\r\n };\r\n};\r\nconst XOrList = (x) => ((node, config) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: x,\r\n node,\r\n change: v => { var _a; return (_a = v[0]) !== null && _a !== void 0 ? _a : node.default(); }\r\n },\r\n {\r\n type: 'list',\r\n node: ListNode_1.ListNode(node),\r\n change: v => v ? [v] : []\r\n }\r\n ], config);\r\n});\r\nexports.ObjectOrList = XOrList('object');\r\nexports.StringOrList = XOrList('string');\r\nexports.ObjectOrPreset = (presetNode, objectNode, presets) => {\r\n return exports.ChoiceNode([\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: presetNode,\r\n change: v => Object.keys(presets)[0]\r\n },\r\n {\r\n type: 'object',\r\n node: objectNode,\r\n change: v => { var _a; return (_a = presets[v]) !== null && _a !== void 0 ? _a : presets[Object.keys(presets)[0]]; }\r\n }\r\n ]);\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MapNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\n/**\r\n * Map nodes similar to list nodes, but a string key is required to add children\r\n */\r\nexports.MapNode = (keys, children, config) => {\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'map',\r\n default: () => ({}),\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n return children.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return path.modelPush(key);\r\n },\r\n suggest: (path) => keys.suggest(path, ''),\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (value === null || typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let res = {};\r\n Object.keys(value).forEach(k => {\r\n keys.validate(path, k, errors, options);\r\n res[k] = children.validate(path.push(k), value[k], errors, options);\r\n });\r\n return res;\r\n },\r\n validationOption(path) {\r\n var _a;\r\n return (_a = config === null || config === void 0 ? void 0 : config.validation) !== null && _a !== void 0 ? _a : keys.validationOption(path.push(''));\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.map) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, keys, children, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.NumberNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nexports.NumberNode = (config) => {\r\n var _a, _b, _c;\r\n const integer = (config === null || config === void 0 ? void 0 : config.color) ? true : (_a = config === null || config === void 0 ? void 0 : config.integer) !== null && _a !== void 0 ? _a : false;\r\n const min = (config === null || config === void 0 ? void 0 : config.color) ? 0 : (_b = config === null || config === void 0 ? void 0 : config.min) !== null && _b !== void 0 ? _b : -Infinity;\r\n const max = (config === null || config === void 0 ? void 0 : config.color) ? 16777215 : (_c = config === null || config === void 0 ? void 0 : config.max) !== null && _c !== void 0 ? _c : Infinity;\r\n const between = (config === null || config === void 0 ? void 0 : config.min) !== undefined && (config === null || config === void 0 ? void 0 : config.max) !== undefined;\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'number',\r\n default: () => min > 0 ? min : 0,\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'number') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'number') {\r\n errors.add(path, 'error.expected_number');\r\n }\r\n else if (integer && !Number.isInteger(value)) {\r\n errors.add(path, 'error.expected_integer');\r\n }\r\n else if (between && (value < min || value > max)) {\r\n errors.add(path, 'error.invalid_number_range.between', value, min, max);\r\n }\r\n else if (value < min) {\r\n errors.add(path, 'error.invalid_number_range.smaller', value, min);\r\n }\r\n else if (value > max) {\r\n errors.add(path, 'error.invalid_number_range.larger', value, max);\r\n }\r\n return value;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.number) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, integer, min, max, between, config: config !== null && config !== void 0 ? config : {} }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ObjectNode = exports.Case = exports.Switch = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst Path_1 = require(\"../model/Path\");\r\nconst Errors_1 = require(\"../model/Errors\");\r\nconst utils_1 = require(\"../utils\");\r\nexports.Switch = Symbol('switch');\r\nexports.Case = Symbol('case');\r\nexports.ObjectNode = (fields, config) => {\r\n const { [exports.Switch]: filter, [exports.Case]: cases, ...defaultFields } = fields;\r\n const getActiveFields = (path) => {\r\n if (filter === undefined)\r\n return defaultFields;\r\n const switchValue = Path_1.relativePath(path, filter).get();\r\n const activeCase = cases[switchValue];\r\n return { ...defaultFields, ...activeCase };\r\n };\r\n const getChildModelPath = (path, childKey) => {\r\n var _a;\r\n const switchValue = filter ? Path_1.relativePath(path, filter).get() : undefined;\r\n const caseFields = filter ? ((_a = cases[switchValue]) !== null && _a !== void 0 ? _a : {}) : {};\r\n const caseKeys = Object.keys(caseFields);\r\n const pathWithContext = (config === null || config === void 0 ? void 0 : config.context) ?\r\n new Path_1.ModelPath(path.getModel(), new Path_1.Path(path.getArray(), [config.context])) : path;\r\n const pathWithFilter = !(config === null || config === void 0 ? void 0 : config.disableSwitchContext) && switchValue && caseKeys.includes(childKey) ?\r\n pathWithContext.contextPush(switchValue) : pathWithContext;\r\n return pathWithFilter.push(childKey);\r\n };\r\n return ({\r\n ...Node_1.Base,\r\n type: () => 'object',\r\n category: () => config === null || config === void 0 ? void 0 : config.category,\r\n default: () => ({}),\r\n keep() {\r\n return this.optional();\r\n },\r\n navigate(path, index) {\r\n const nextIndex = index + 1;\r\n const pathElements = path.getArray();\r\n if (pathElements.length <= nextIndex) {\r\n return this;\r\n }\r\n const activeFields = getActiveFields(path.slice(0, nextIndex));\r\n const node = activeFields[pathElements[nextIndex]];\r\n return node === null || node === void 0 ? void 0 : node.navigate(path, nextIndex);\r\n },\r\n pathPush(path, key) {\r\n return getChildModelPath(path, key.toString());\r\n },\r\n suggest(path, value) {\r\n const activeFields = getActiveFields(path);\r\n const existingKeys = Object.keys(typeof value === 'object' ? value : {});\r\n return Object.keys(activeFields)\r\n .filter(k => activeFields[k].enabled(path))\r\n .filter(k => !existingKeys.includes(k))\r\n .map(utils_1.quoteString);\r\n },\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'object') {\r\n value = this.default();\r\n }\r\n if (typeof value !== 'object') {\r\n errors.add(path, 'error.expected_object');\r\n return value;\r\n }\r\n let activeFields = defaultFields;\r\n if (filter) {\r\n const filterPath = Path_1.relativePath(path, filter);\r\n let switchValue = filterPath.get();\r\n if (path.equals(filterPath.pop())) {\r\n const filterField = filterPath.last();\r\n switchValue = defaultFields[filterField].validate(path.push(filterField), value[filterField], new Errors_1.Errors(), options);\r\n }\r\n activeFields = { ...activeFields, ...cases[switchValue] };\r\n }\r\n const activeKeys = Object.keys(activeFields);\r\n const forcedKeys = activeKeys.filter(k => !activeFields[k].optional());\r\n const keys = new Set([...forcedKeys, ...Object.keys(value)]);\r\n let res = {};\r\n keys.forEach(k => {\r\n if (activeKeys.includes(k)) {\r\n if (!activeFields[k].enabled(path))\r\n return;\r\n const newValue = activeFields[k].validate(path.push(k), value[k], errors, options);\r\n if (!activeFields[k].keep() && activeFields[k].optional()\r\n && (newValue === undefined\r\n || (Array.isArray(newValue) && newValue.length === 0)\r\n || (newValue.constructor === Object && Object.keys(newValue).length === 0))) {\r\n res[k] = undefined;\r\n }\r\n else {\r\n res[k] = newValue;\r\n path.getModel().set(path.push(k), newValue, true);\r\n }\r\n }\r\n else {\r\n res[k] = value[k];\r\n }\r\n });\r\n return res;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.object) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, fields: defaultFields, filter, cases, getActiveFields, getChildModelPath }, path, ...args);\r\n }\r\n });\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Reference = void 0;\r\nexports.Reference = (schemas, schema) => ({\r\n type(path) {\r\n return schemas.get(schema).type.bind(this)(path);\r\n },\r\n category(path) {\r\n return schemas.get(schema).category.bind(this)(path);\r\n },\r\n default() {\r\n return schemas.get(schema).default.bind(this)();\r\n },\r\n transform(path, value) {\r\n return schemas.get(schema).transform(path, value);\r\n },\r\n enabled(path) {\r\n return schemas.get(schema).enabled.bind(this)(path);\r\n },\r\n keep() {\r\n return schemas.get(schema).keep.bind(this)();\r\n },\r\n optional() {\r\n return schemas.get(schema).optional.bind(this)();\r\n },\r\n navigate(path, index) {\r\n return schemas.get(schema).navigate.bind(this)(path, index);\r\n },\r\n pathPush(path, key) {\r\n return schemas.get(schema).pathPush.bind(this)(path, key);\r\n },\r\n suggest(path, value) {\r\n return schemas.get(schema).suggest.bind(this)(path, value);\r\n },\r\n validate(path, value, errors, options) {\r\n return schemas.get(schema).validate.bind(this)(path, value, errors, options);\r\n },\r\n validationOption(path) {\r\n return schemas.get(schema).validationOption.bind(this)(path);\r\n },\r\n hook(hook, path, ...args) {\r\n return schemas.get(schema).hook.bind(this)(hook, path, ...args);\r\n },\r\n activeCase(path, fallback) {\r\n return schemas.get(schema).activeCase.bind(this)(path, fallback);\r\n },\r\n canUpdate(path, value) {\r\n return schemas.get(schema).canUpdate.bind(this)(path, value);\r\n },\r\n update(path, value) {\r\n return schemas.get(schema).update.bind(this)(path, value);\r\n }\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.StringNode = void 0;\r\nconst Node_1 = require(\"./Node\");\r\nconst utils_1 = require(\"../utils\");\r\nconst isEnum = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.enum);\r\n};\r\nconst isValidator = (value) => {\r\n var _a;\r\n return !!((_a = value) === null || _a === void 0 ? void 0 : _a.validator);\r\n};\r\n/**\r\n * Simple string node with one text field\r\n */\r\nexports.StringNode = (collections, config) => {\r\n const getValues = isEnum(config)\r\n ? ((typeof config.enum === 'string')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.enum)) !== null && _a !== void 0 ? _a : []; }\r\n : () => config.enum)\r\n : (((config === null || config === void 0 ? void 0 : config.validator) === 'resource')\r\n ? ((typeof config.params.pool === 'string')\r\n ? (config.params.pool.startsWith('$')\r\n ? () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool.slice(1))) !== null && _a !== void 0 ? _a : []; }\r\n : () => { var _a; return (_a = collections === null || collections === void 0 ? void 0 : collections.get(config.params.pool)) !== null && _a !== void 0 ? _a : []; })\r\n : () => config.params.pool)\r\n : () => []);\r\n return {\r\n ...Node_1.Base,\r\n type: () => 'string',\r\n default: () => '',\r\n validate(path, value, errors, options) {\r\n if (options.loose && typeof value !== 'string') {\r\n value = this.default() || undefined;\r\n }\r\n if (typeof value !== 'string') {\r\n errors.add(path, 'error.expected_string');\r\n return value;\r\n }\r\n if (isValidator(config)) {\r\n if (config.validator === 'resource' && value.length > 0 && !value.includes(':')) {\r\n value = value[0] === '#'\r\n ? '#minecraft:' + value.slice(1)\r\n : 'minecraft:' + value;\r\n }\r\n if (config.validator === 'resource' && ((typeof config.params.pool === 'string' && config.params.pool.startsWith('$')) ||\r\n (config.params.allowTag && value[0] === '#') ||\r\n config.params.isDefinition ||\r\n config.params.allowUnknown)) {\r\n return value;\r\n }\r\n }\r\n if ((isEnum(config) && config.additional)) {\r\n return value;\r\n }\r\n const values = getValues();\r\n if (values.length > 0 && !values.includes(value)) {\r\n errors.add(path, 'error.invalid_enum_option', value);\r\n }\r\n return value;\r\n },\r\n suggest: () => getValues().map(utils_1.quoteString),\r\n validationOption() {\r\n return isValidator(config) ? config : undefined;\r\n },\r\n hook(hook, path, ...args) {\r\n var _a;\r\n return ((_a = hook.string) !== null && _a !== void 0 ? _a : hook.base).call(hook, { node: this, getValues, config }, path, ...args);\r\n }\r\n };\r\n};\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.CollectionRegistry = exports.SchemaRegistry = void 0;\r\n/**\r\n * Registry for schemas\r\n */\r\nclass SchemaRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, node) {\r\n this.registry[id] = node;\r\n }\r\n get(id) {\r\n const node = this.registry[id];\r\n if (node === undefined) {\r\n console.error(`Tried to access schema \"${id}\", but that doesn't exist.`);\r\n }\r\n return node;\r\n }\r\n}\r\nexports.SchemaRegistry = SchemaRegistry;\r\n/**\r\n * Registry for collections\r\n */\r\nclass CollectionRegistry {\r\n constructor() {\r\n this.registry = {};\r\n }\r\n register(id, list) {\r\n this.registry[id] = list;\r\n }\r\n get(id) {\r\n const list = this.registry[id];\r\n if (list === undefined) {\r\n console.warn(`Tried to access collection \"${id}\", but that doesn't exist.`);\r\n }\r\n return list !== null && list !== void 0 ? list : [];\r\n }\r\n}\r\nexports.CollectionRegistry = CollectionRegistry;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:safely_harvest_honey',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:tick',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('loot_pool_entry_type', [\r\n 'minecraft:empty',\r\n 'minecraft:item',\r\n 'minecraft:tag',\r\n 'minecraft:loot_table',\r\n 'minecraft:alternatives',\r\n 'minecraft:sequence',\r\n 'minecraft:group',\r\n 'minecraft:dynamic'\r\n ]);\r\n collections.register('loot_condition_type', [\r\n 'minecraft:alternative',\r\n 'minecraft:inverted',\r\n 'minecraft:reference',\r\n 'minecraft:entity_properties',\r\n 'minecraft:block_state_property',\r\n 'minecraft:match_tool',\r\n 'minecraft:damage_source_properties',\r\n 'minecraft:location_check',\r\n 'minecraft:weather_check',\r\n 'minecraft:time_check',\r\n 'minecraft:entity_scores',\r\n 'minecraft:random_chance',\r\n 'minecraft:random_chance_with_looting',\r\n 'minecraft:table_bonus',\r\n 'minecraft:killed_by_player',\r\n 'minecraft:survives_explosion'\r\n ]);\r\n collections.register('loot_function_type', [\r\n 'minecraft:set_count',\r\n 'minecraft:set_damage',\r\n 'minecraft:set_name',\r\n 'minecraft:set_lore',\r\n 'minecraft:set_nbt',\r\n 'minecraft:set_attributes',\r\n 'minecraft:set_contents',\r\n 'minecraft:enchant_randomly',\r\n 'minecraft:enchant_with_levels',\r\n 'minecraft:looting_enchant',\r\n 'minecraft:limit_count',\r\n 'minecraft:furnace_smelt',\r\n 'minecraft:explosion_decay',\r\n 'minecraft:fill_player_head',\r\n 'minecraft:copy_name',\r\n 'minecraft:copy_nbt',\r\n 'minecraft:copy_state',\r\n 'minecraft:apply_bonus',\r\n 'minecraft:exploration_map',\r\n 'minecraft:set_stew_effect'\r\n ]);\r\n collections.register('attribute', [\r\n 'generic.maxHealth',\r\n 'generic.followRange',\r\n 'generic.knockbackResistance',\r\n 'generic.movementSpeed',\r\n 'generic.attackDamage',\r\n 'generic.armor',\r\n 'generic.armorToughness',\r\n 'generic.attackSpeed',\r\n 'generic.luck',\r\n 'horse.jumpStrength',\r\n 'generic.attackKnockback',\r\n 'generic.flyingSpeed',\r\n 'zombie.spawnReinforcements'\r\n ]);\r\n collections.register('structure_feature', [\r\n 'pillager_outpost',\r\n 'mineshaft',\r\n 'mansion',\r\n 'jungle_pyramid',\r\n 'desert_pyramid',\r\n 'igloo',\r\n 'shipwreck',\r\n 'swamp_hut',\r\n 'stronghold',\r\n 'monument',\r\n 'ocean_ruin',\r\n 'fortress',\r\n 'endcity',\r\n 'buried_treasure',\r\n 'village'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` and `Predicates.ts` are files that have exports. They should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: core_1.Opt(Reference('entity_predicate')),\r\n partner: core_1.Opt(Reference('entity_predicate')),\r\n child: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ enum: 'dimension' })),\r\n to: core_1.Opt(StringNode({ enum: 'dimension' }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n zombie: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), core_1.ObjectNode({\r\n amplifier: Common_1.Range(),\r\n duration: Common_1.Range()\r\n })))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': Predicates_1.LocationFields,\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(core_1.Opt(Reference('entity_predicate'))))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': Predicates_1.LocationFields,\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:safely_harvest_honey': {\r\n block: core_1.Opt(core_1.ObjectNode({\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/block' } }))\r\n })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:slept_in_bed': Predicates_1.LocationFields,\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: core_1.Opt(Reference('entity_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': Predicates_1.LocationFields\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initLootTableSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst LootContext_1 = require(\"../LootContext\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initLootTableSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const conditions = {\r\n conditions: core_1.Opt(core_1.ListNode(Reference('loot_condition')))\r\n };\r\n const functionsAndConditions = {\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function'))),\r\n ...conditions\r\n };\r\n function compileSwitchNode(contextMap, collectionID, getNode) {\r\n const cases = [];\r\n const getAvailableOptions = (providedContext) => collections\r\n .get(collectionID)\r\n .filter(t => {\r\n var _a;\r\n const requiredContext = (_a = contextMap.get(t)) !== null && _a !== void 0 ? _a : [];\r\n return requiredContext.every(c => providedContext.includes(c));\r\n });\r\n for (const [tableType, { allows, requires }] of LootContext_1.LootTableTypes) {\r\n const providedContext = [...allows, ...requires];\r\n cases.push({\r\n match: path => path.getModel().get(new core_1.Path(['type'])) === tableType,\r\n node: getNode(getAvailableOptions(providedContext))\r\n });\r\n }\r\n cases.push({ match: _ => true, node: getNode(collectionID) });\r\n return core_1.SwitchNode(cases);\r\n }\r\n const conditionSwtichNode = compileSwitchNode(LootContext_1.LootConditions, 'loot_condition_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_condition_type` } }));\r\n const functionSwtichNode = compileSwitchNode(LootContext_1.LootFunctions, 'loot_function_type', type => StringNode({ validator: 'resource', params: { pool: type instanceof Array ? type : `loot_function_type` } }));\r\n const entitySourceSwtichNode = compileSwitchNode(LootContext_1.LootEntitySources, 'entity_source', type => StringNode({ enum: type }));\r\n const copySourceSwtichNode = compileSwitchNode(LootContext_1.LootCopySources, 'copy_source', type => StringNode({ enum: type }));\r\n schemas.register('loot_table', core_1.Mod(core_1.ObjectNode({\r\n type: core_1.Opt(StringNode({ validator: \"resource\", params: { pool: collections.get('loot_context_type') } })),\r\n pools: core_1.Opt(core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n rolls: Common_1.Range({ allowBinomial: true, integer: true }),\r\n bonus_rolls: core_1.Opt(Common_1.Range({ integer: true })),\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n }, { category: 'pool', context: 'loot_pool' }), {\r\n default: () => ({\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n })\r\n }))),\r\n functions: core_1.Opt(core_1.ListNode(Reference('loot_function')))\r\n }, { context: 'loot_table' }), {\r\n default: () => ({\r\n pools: [{\r\n rolls: 1,\r\n entries: [{\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n }]\r\n }]\r\n })\r\n }));\r\n const weightMod = {\r\n enabled: path => {\r\n var _a;\r\n return ((_a = path.pop().get()) === null || _a === void 0 ? void 0 : _a.length) > 1\r\n && !['minecraft:alternatives', 'minecraft:group', 'minecraft:sequence'].includes(path.push('type').get());\r\n }\r\n };\r\n schemas.register('loot_entry', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'loot_pool_entry_type' } }),\r\n weight: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true, min: 1 }), weightMod)),\r\n quality: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), weightMod)),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alternatives': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:dynamic': {\r\n name: StringNode(),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:group': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:item': {\r\n name: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:sequence': {\r\n children: core_1.ListNode(Reference('loot_entry')),\r\n ...functionsAndConditions\r\n },\r\n 'minecraft:tag': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$tag/item' } }),\r\n expand: core_1.Opt(core_1.BooleanNode()),\r\n ...functionsAndConditions\r\n }\r\n }\r\n }, { context: 'loot_entry' }), {\r\n default: () => ({\r\n type: 'minecraft:item',\r\n name: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('loot_function', core_1.Mod(core_1.ObjectNode({\r\n function: functionSwtichNode,\r\n [core_1.Switch]: [{ push: 'function' }],\r\n [core_1.Case]: {\r\n 'minecraft:apply_bonus': {\r\n enchantment: StringNode({ validator: 'resource', params: { pool: 'enchantment' } }),\r\n formula: StringNode({ validator: 'resource', params: { pool: collections.get('loot_table_apply_bonus_formula') } }),\r\n parameters: core_1.Mod(core_1.ObjectNode({\r\n bonusMultiplier: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:uniform_bonus_count'\r\n }),\r\n extra: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n }),\r\n probability: core_1.Mod(core_1.NumberNode(), {\r\n enabled: path => path.pop().push('formula').get() === 'minecraft:binomial_with_bonus_count'\r\n })\r\n }), {\r\n enabled: path => path.push('formula').get() !== 'minecraft:ore_drops'\r\n }),\r\n ...conditions\r\n },\r\n 'minecraft:copy_name': {\r\n source: copySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:copy_nbt': {\r\n source: copySourceSwtichNode,\r\n ops: core_1.ListNode(core_1.ObjectNode({\r\n source: StringNode({ validator: 'nbt_path', params: { category: { getter: 'copy_source', path: ['pop', 'pop', 'pop', { push: 'source' }] } } }),\r\n target: StringNode({ validator: 'nbt_path', params: { category: 'minecraft:item' } }),\r\n op: StringNode({ enum: ['replace', 'append', 'merge'] })\r\n }, { context: 'nbt_operation' })),\r\n ...conditions\r\n },\r\n 'minecraft:copy_state': {\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n properties: core_1.ListNode(StringNode({ validator: 'block_state_key', params: { id: ['pop', 'pop', { push: 'block' }] } })),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_randomly': {\r\n enchantments: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: 'enchantment' } }))),\r\n ...conditions\r\n },\r\n 'minecraft:enchant_with_levels': {\r\n levels: Common_1.Range({ allowBinomial: true }),\r\n treasure: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:exploration_map': {\r\n destination: core_1.Opt(StringNode({ enum: 'structure_feature' })),\r\n decoration: core_1.Opt(StringNode({ enum: 'map_decoration' })),\r\n zoom: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n search_radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n skip_existing_chunks: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:fill_player_head': {\r\n entity: entitySourceSwtichNode,\r\n ...conditions\r\n },\r\n 'minecraft:limit_count': {\r\n limit: Common_1.Range({ bounds: true }),\r\n ...conditions\r\n },\r\n 'minecraft:looting_enchant': {\r\n count: Common_1.Range({ bounds: true }),\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n ...conditions\r\n },\r\n 'minecraft:set_attributes': {\r\n modifiers: core_1.ListNode(Reference('attribute_modifier')),\r\n ...conditions\r\n },\r\n 'minecraft:set_contents': {\r\n entries: core_1.ListNode(Reference('loot_entry')),\r\n ...conditions\r\n },\r\n 'minecraft:set_count': {\r\n count: Common_1.Range({ allowBinomial: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_damage': {\r\n damage: Common_1.Range({ forceRange: true }),\r\n ...conditions\r\n },\r\n 'minecraft:set_loot_table': {\r\n name: StringNode({ validator: 'resource', params: { pool: '$loot_table' } }),\r\n seed: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n },\r\n 'minecraft:set_lore': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n lore: core_1.ListNode(Reference('text_component')),\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n ...conditions\r\n },\r\n 'minecraft:set_name': {\r\n entity: core_1.Opt(entitySourceSwtichNode),\r\n name: core_1.Opt(Reference('text_component')),\r\n ...conditions\r\n },\r\n 'minecraft:set_nbt': {\r\n tag: StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item' } } }),\r\n ...conditions\r\n },\r\n 'minecraft:set_stew_effect': {\r\n effects: core_1.Opt(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }),\r\n duration: Common_1.Range()\r\n }))),\r\n ...conditions\r\n }\r\n }\r\n }, { category: 'function', context: 'function' }), {\r\n default: () => ({\r\n function: 'minecraft:set_count',\r\n count: 1\r\n })\r\n }));\r\n schemas.register('loot_condition', core_1.Mod(core_1.ObjectNode({\r\n condition: conditionSwtichNode,\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: {\r\n ...Common_1.ConditionCases,\r\n 'minecraft:entity_properties': {\r\n entity: entitySourceSwtichNode,\r\n predicate: Reference('entity_predicate')\r\n },\r\n 'minecraft:entity_scores': {\r\n entity: entitySourceSwtichNode,\r\n scores: core_1.MapNode(StringNode({ validator: 'objective' }), Common_1.Range({ bounds: true }))\r\n }\r\n }\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:random_chance',\r\n chance: 0.5\r\n })\r\n }));\r\n schemas.register('attribute_modifier', core_1.Mod(core_1.ObjectNode({\r\n attribute: StringNode({ validator: 'resource', params: { pool: 'attribute' } }),\r\n name: StringNode(),\r\n amount: Common_1.Range({ bounds: true }),\r\n operation: StringNode({ enum: ['addition', 'multiply_base', 'multiply_total'] }),\r\n slot: core_1.StringOrList(StringNode({ enum: 'slot' }))\r\n }, { context: 'attribute_modifier' }), {\r\n default: () => ({\r\n attribute: 'minecraft:generic.max_health',\r\n name: '',\r\n amount: 1,\r\n operation: 'addition',\r\n slot: 'mainhand'\r\n })\r\n }));\r\n}\r\nexports.initLootTableSchemas = initLootTableSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initPackMcmetaSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initPackMcmetaSchemas(schemas, _) {\r\n const getSimpleString = (jsonText) => { var _a, _b; return jsonText instanceof Array ? getSimpleString(jsonText[0]) : (_b = (_a = jsonText === null || jsonText === void 0 ? void 0 : jsonText.text) !== null && _a !== void 0 ? _a : jsonText === null || jsonText === void 0 ? void 0 : jsonText.toString()) !== null && _b !== void 0 ? _b : ''; };\r\n schemas.register('pack_mcmeta', core_1.Mod(core_1.ObjectNode({\r\n pack: core_1.Mod(core_1.ObjectNode({\r\n pack_format: core_1.Mod(core_1.NumberNode({ integer: true, min: 5, max: 5 }), { default: () => 5 }),\r\n description: core_1.Reference(schemas, 'text_component')\r\n }), {\r\n default: () => ({\r\n pack_format: 5,\r\n description: ''\r\n })\r\n })\r\n }), {\r\n default: () => ({\r\n pack: {\r\n pack_format: 5,\r\n description: ''\r\n }\r\n })\r\n }));\r\n}\r\nexports.initPackMcmetaSchemas = initPackMcmetaSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCollections = void 0;\r\nfunction initCollections(collections) {\r\n collections.register('advancement_trigger', [\r\n 'minecraft:bee_nest_destroyed',\r\n 'minecraft:bred_animals',\r\n 'minecraft:brewed_potion',\r\n 'minecraft:changed_dimension',\r\n 'minecraft:channeled_lightning',\r\n 'minecraft:construct_beacon',\r\n 'minecraft:consume_item',\r\n 'minecraft:cured_zombie_villager',\r\n 'minecraft:effects_changed',\r\n 'minecraft:enchanted_item',\r\n 'minecraft:enter_block',\r\n 'minecraft:entity_hurt_player',\r\n 'minecraft:entity_killed_player',\r\n 'minecraft:filled_bucket',\r\n 'minecraft:fishing_rod_hooked',\r\n 'minecraft:hero_of_the_village',\r\n 'minecraft:impossible',\r\n 'minecraft:inventory_changed',\r\n 'minecraft:item_durability_changed',\r\n 'minecraft:item_used_on_block',\r\n 'minecraft:killed_by_crossbow',\r\n 'minecraft:levitation',\r\n 'minecraft:location',\r\n 'minecraft:nether_travel',\r\n 'minecraft:placed_block',\r\n 'minecraft:player_generates_container_loot',\r\n 'minecraft:player_hurt_entity',\r\n 'minecraft:player_interacted_with_entity',\r\n 'minecraft:player_killed_entity',\r\n 'minecraft:recipe_unlocked',\r\n 'minecraft:shot_crossbow',\r\n 'minecraft:slept_in_bed',\r\n 'minecraft:slide_down_block',\r\n 'minecraft:summoned_entity',\r\n 'minecraft:tame_animal',\r\n 'minecraft:target_hit',\r\n 'minecraft:tick',\r\n 'minecraft:thrown_item_picked_up_by_entity',\r\n 'minecraft:used_ender_eye',\r\n 'minecraft:used_totem',\r\n 'minecraft:villager_trade',\r\n 'minecraft:voluntary_exile'\r\n ]);\r\n collections.register('dimension', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('dimension_type', [\r\n 'minecraft:overworld',\r\n 'minecraft:the_nether',\r\n 'minecraft:the_end'\r\n ]);\r\n collections.register('keybind', [\r\n 'key.advancements',\r\n 'key.attack',\r\n 'key.back',\r\n 'key.chat',\r\n 'key.command',\r\n 'key.drop',\r\n 'key.forward',\r\n 'key.fullscreen',\r\n 'key.hotbar.1',\r\n 'key.hotbar.2',\r\n 'key.hotbar.3',\r\n 'key.hotbar.4',\r\n 'key.hotbar.5',\r\n 'key.hotbar.6',\r\n 'key.hotbar.7',\r\n 'key.hotbar.8',\r\n 'key.hotbar.9',\r\n 'key.inventory',\r\n 'key.jump',\r\n 'key.left',\r\n 'key.loadToolbarActivator',\r\n 'key.pickItem',\r\n 'key.playerlist',\r\n 'key.right',\r\n 'key.saveToolbarActivator',\r\n 'key.screenshot',\r\n 'key.smoothCamera',\r\n 'key.sneak',\r\n 'key.spectatorOutlines',\r\n 'key.sprint',\r\n 'key.swapOffhand',\r\n 'key.togglePerspective',\r\n 'key.use'\r\n ]);\r\n collections.register('slot', [\r\n 'mainhand',\r\n 'offhand',\r\n 'head',\r\n 'chest',\r\n 'legs',\r\n 'feet'\r\n ]);\r\n collections.register('gamemode', [\r\n 'survival',\r\n 'creative',\r\n 'adventure',\r\n 'spectator'\r\n ]);\r\n collections.register('worldgen/noise_settings', [\r\n 'minecraft:overworld',\r\n 'minecraft:nether',\r\n 'minecraft:end',\r\n 'minecraft:amplified',\r\n 'minecraft:caves',\r\n 'minecraft:floating_islands'\r\n ]);\r\n collections.register('entity_source', [\r\n 'this',\r\n 'direct_killer',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('copy_source', [\r\n 'block_entity',\r\n 'this',\r\n 'killer',\r\n 'killer_player'\r\n ]);\r\n collections.register('loot_table_apply_bonus_formula', [\r\n 'minecraft:uniform_bonus_count',\r\n 'minecraft:binomial_with_bonus_count',\r\n 'minecraft:ore_drops'\r\n ]);\r\n collections.register('map_decoration', [\r\n 'mansion',\r\n 'monument',\r\n 'player',\r\n 'frame',\r\n 'red_marker',\r\n 'blue_marker',\r\n 'target_x',\r\n 'target_point',\r\n 'player_off_map',\r\n 'player_off_limits',\r\n 'red_x',\r\n 'banner_white',\r\n 'banner_orange',\r\n 'banner_magenta',\r\n 'banner_light_blue',\r\n 'banner_yellow',\r\n 'banner_lime',\r\n 'banner_pink',\r\n 'banner_gray',\r\n 'banner_light_gray',\r\n 'banner_cyan',\r\n 'banner_purple',\r\n 'banner_blue',\r\n 'banner_brown',\r\n 'banner_green',\r\n 'banner_red',\r\n 'banner_black'\r\n ]);\r\n collections.register('map_feature', [\r\n 'bastion_remnant',\r\n 'buried_treasure',\r\n 'desert_pyramid',\r\n 'endcity',\r\n 'fortress',\r\n 'igloo',\r\n 'jungle_pyramid',\r\n 'mansion',\r\n 'mineshaft',\r\n 'monument',\r\n 'nether_fossil',\r\n 'ocean_ruin',\r\n 'pillager_outpost',\r\n 'ruined_portal',\r\n 'shipwreck',\r\n 'stronghold',\r\n 'swamp_hut',\r\n 'village'\r\n ]);\r\n collections.register('recipe_group', [\r\n 'bed',\r\n 'light_gray_dye',\r\n 'iron_ingot',\r\n 'wooden_stairs',\r\n 'black_dye',\r\n 'stained_terracotta',\r\n 'dyed_bed',\r\n 'magenta_dye',\r\n 'bark',\r\n 'rabbit_stew',\r\n 'light_blue_dye',\r\n 'wooden_fence_gate',\r\n 'planks',\r\n 'stained_glass',\r\n 'wooden_door',\r\n 'stained_glass_pane',\r\n 'wooden_fence',\r\n 'sticks',\r\n 'concrete_powder',\r\n 'wooden_pressure_plate',\r\n 'boat',\r\n 'brown_dye',\r\n 'yellow_dye',\r\n 'bonemeal',\r\n 'red_dye',\r\n 'wooden_trapdoor',\r\n 'wooden_button',\r\n 'gold_ingot',\r\n 'pink_dye',\r\n 'wooden_slab',\r\n 'orange_dye',\r\n 'carpet',\r\n 'sign',\r\n 'wool',\r\n 'sugar',\r\n 'blue_dye',\r\n 'white_dye',\r\n 'banner',\r\n 'netherite_ingot'\r\n ]);\r\n collections.register('worldgen/configured_feature', [\r\n 'minecraft:acacia',\r\n 'minecraft:bamboo_light',\r\n 'minecraft:bamboo_vegetation',\r\n 'minecraft:bamboo',\r\n 'minecraft:basalt_blobs',\r\n 'minecraft:basalt_pillar',\r\n 'minecraft:birch_bees_0002',\r\n 'minecraft:birch_bees_002',\r\n 'minecraft:birch_bees_005',\r\n 'minecraft:birch_other',\r\n 'minecraft:birch_tall',\r\n 'minecraft:birch',\r\n 'minecraft:blackstone_blobs',\r\n 'minecraft:blue_ice',\r\n 'minecraft:bonus_chest',\r\n 'minecraft:brown_mushroom_giant',\r\n 'minecraft:brown_mushroom_nether',\r\n 'minecraft:brown_mushroom_normal',\r\n 'minecraft:brown_mushroom_swamp',\r\n 'minecraft:brown_mushroom_taiga',\r\n 'minecraft:chorus_plant',\r\n 'minecraft:crimson_forest_vegetation',\r\n 'minecraft:crimson_fungi_planted',\r\n 'minecraft:crimson_fungi',\r\n 'minecraft:dark_forest_vegetation_brown',\r\n 'minecraft:dark_forest_vegetation_red',\r\n 'minecraft:dark_oak',\r\n 'minecraft:delta',\r\n 'minecraft:desert_well',\r\n 'minecraft:disk_clay',\r\n 'minecraft:disk_gravel',\r\n 'minecraft:disk_sand',\r\n 'minecraft:end_gateway_delayed',\r\n 'minecraft:end_gateway',\r\n 'minecraft:end_island_decorated',\r\n 'minecraft:end_island',\r\n 'minecraft:end_spike',\r\n 'minecraft:fancy_oak_bees_0002',\r\n 'minecraft:fancy_oak_bees_002',\r\n 'minecraft:fancy_oak_bees_005',\r\n 'minecraft:fancy_oak',\r\n 'minecraft:flower_default',\r\n 'minecraft:flower_forest',\r\n 'minecraft:flower_plain_decorated',\r\n 'minecraft:flower_plain',\r\n 'minecraft:flower_swamp',\r\n 'minecraft:flower_warm',\r\n 'minecraft:forest_flower_trees',\r\n 'minecraft:forest_flower_vegetation_common',\r\n 'minecraft:forest_flower_vegetation',\r\n 'minecraft:forest_rock',\r\n 'minecraft:fossil',\r\n 'minecraft:freeze_top_layer',\r\n 'minecraft:glowstone_extra',\r\n 'minecraft:glowstone',\r\n 'minecraft:huge_brown_mushroom',\r\n 'minecraft:huge_red_mushroom',\r\n 'minecraft:ice_patch',\r\n 'minecraft:ice_spike',\r\n 'minecraft:iceberg_blue',\r\n 'minecraft:iceberg_packed',\r\n 'minecraft:jungle_bush',\r\n 'minecraft:jungle_tree_no_vine',\r\n 'minecraft:jungle_tree',\r\n 'minecraft:kelp_cold',\r\n 'minecraft:kelp_warm',\r\n 'minecraft:lake_lava',\r\n 'minecraft:lake_water',\r\n 'minecraft:large_basalt_columns',\r\n 'minecraft:mega_jungle_tree',\r\n 'minecraft:mega_pine',\r\n 'minecraft:mega_spruce',\r\n 'minecraft:monster_room',\r\n 'minecraft:mushroom_field_vegetation',\r\n 'minecraft:nether_sprouts',\r\n 'minecraft:oak_badlands',\r\n 'minecraft:oak_bees_0002',\r\n 'minecraft:oak_bees_002',\r\n 'minecraft:oak_bees_005',\r\n 'minecraft:oak',\r\n 'minecraft:ore_andesite',\r\n 'minecraft:ore_blackstone',\r\n 'minecraft:ore_coal',\r\n 'minecraft:ore_debris_large',\r\n 'minecraft:ore_debris_small',\r\n 'minecraft:ore_diamond',\r\n 'minecraft:ore_diorite',\r\n 'minecraft:ore_dirt',\r\n 'minecraft:ore_emerald',\r\n 'minecraft:ore_gold_deltas',\r\n 'minecraft:ore_gold_extra',\r\n 'minecraft:ore_gold_nether',\r\n 'minecraft:ore_gold',\r\n 'minecraft:ore_granite',\r\n 'minecraft:ore_gravel_nether',\r\n 'minecraft:ore_gravel',\r\n 'minecraft:ore_infested',\r\n 'minecraft:ore_iron',\r\n 'minecraft:ore_lapis',\r\n 'minecraft:ore_magma',\r\n 'minecraft:ore_quartz_deltas',\r\n 'minecraft:ore_quartz_nether',\r\n 'minecraft:ore_redstone',\r\n 'minecraft:ore_soul_sand',\r\n 'minecraft:patch_berry_bush',\r\n 'minecraft:patch_berry_decorated',\r\n 'minecraft:patch_berry_sparse',\r\n 'minecraft:patch_brown_mushroom',\r\n 'minecraft:patch_cactus_decorated',\r\n 'minecraft:patch_cactus_desert',\r\n 'minecraft:patch_cactus',\r\n 'minecraft:patch_crimson_roots',\r\n 'minecraft:patch_dead_bush_2',\r\n 'minecraft:patch_dead_bush_badlands',\r\n 'minecraft:patch_dead_bush',\r\n 'minecraft:patch_fire',\r\n 'minecraft:patch_grass_badlands',\r\n 'minecraft:patch_grass_forest',\r\n 'minecraft:patch_grass_jungle',\r\n 'minecraft:patch_grass_normal',\r\n 'minecraft:patch_grass_plain',\r\n 'minecraft:patch_grass_savanna',\r\n 'minecraft:patch_grass_taiga_2',\r\n 'minecraft:patch_grass_taiga',\r\n 'minecraft:patch_large_fern',\r\n 'minecraft:patch_melon',\r\n 'minecraft:patch_pumpkin',\r\n 'minecraft:patch_red_mushroom',\r\n 'minecraft:patch_soul_fire',\r\n 'minecraft:patch_sugar_cane_badlands',\r\n 'minecraft:patch_sugar_cane_desert',\r\n 'minecraft:patch_sugar_cane_swamp',\r\n 'minecraft:patch_sugar_cane',\r\n 'minecraft:patch_sunflower',\r\n 'minecraft:patch_taiga_grass',\r\n 'minecraft:patch_tall_grass_2',\r\n 'minecraft:patch_tall_grass',\r\n 'minecraft:patch_waterlilly',\r\n 'minecraft:pile_hay',\r\n 'minecraft:pile_ice',\r\n 'minecraft:pile_melon',\r\n 'minecraft:pile_pumpkin',\r\n 'minecraft:pile_snow',\r\n 'minecraft:pine',\r\n 'minecraft:plain_vegetation',\r\n 'minecraft:red_mushroom_giant',\r\n 'minecraft:red_mushroom_nether',\r\n 'minecraft:red_mushroom_normal',\r\n 'minecraft:red_mushroom_swamp',\r\n 'minecraft:red_mushroom_taiga',\r\n 'minecraft:sea_pickle',\r\n 'minecraft:seagrass_cold',\r\n 'minecraft:seagrass_deep_cold',\r\n 'minecraft:seagrass_deep_warm',\r\n 'minecraft:seagrass_deep',\r\n 'minecraft:seagrass_normal',\r\n 'minecraft:seagrass_river',\r\n 'minecraft:seagrass_simple',\r\n 'minecraft:seagrass_swamp',\r\n 'minecraft:seagrass_warm',\r\n 'minecraft:small_basalt_columns',\r\n 'minecraft:spring_closed_double',\r\n 'minecraft:spring_closed',\r\n 'minecraft:spring_delta',\r\n 'minecraft:spring_lava_double',\r\n 'minecraft:spring_lava',\r\n 'minecraft:spring_open',\r\n 'minecraft:spring_water',\r\n 'minecraft:spruce_snowy',\r\n 'minecraft:spruce',\r\n 'minecraft:super_birch_bees_0002',\r\n 'minecraft:swamp_tree',\r\n 'minecraft:taiga_vegetation',\r\n 'minecraft:trees_birch',\r\n 'minecraft:trees_giant_spruce',\r\n 'minecraft:trees_giant',\r\n 'minecraft:trees_jungle_edge',\r\n 'minecraft:trees_jungle',\r\n 'minecraft:trees_mountain_edge',\r\n 'minecraft:trees_mountain',\r\n 'minecraft:trees_savanna',\r\n 'minecraft:trees_shattered_savanna',\r\n 'minecraft:trees_water',\r\n 'minecraft:twisting_vines',\r\n 'minecraft:vines',\r\n 'minecraft:void_start_platform',\r\n 'minecraft:warm_ocean_vegetation',\r\n 'minecraft:warped_forest_vegetation',\r\n 'minecraft:warped_fungi_planted',\r\n 'minecraft:warped_fungi',\r\n 'minecraft:weeping_vines'\r\n ]);\r\n collections.register('worldgen/configured_structure_feature', [\r\n 'minecraft:bastion_remnant',\r\n 'minecraft:buried_treasure',\r\n 'minecraft:desert_pyramid',\r\n 'minecraft:end_city',\r\n 'minecraft:fortress',\r\n 'minecraft:igloo',\r\n 'minecraft:jungle_pyramid',\r\n 'minecraft:mansion',\r\n 'minecraft:mineshaft_mesa',\r\n 'minecraft:mineshaft',\r\n 'minecraft:monument',\r\n 'minecraft:nether_fossil',\r\n 'minecraft:ocean_ruin_cold',\r\n 'minecraft:ocean_ruin_warm',\r\n 'minecraft:pillager_outpost',\r\n 'minecraft:ruined_portal_desert',\r\n 'minecraft:ruined_portal_jungle',\r\n 'minecraft:ruined_portal_mountain',\r\n 'minecraft:ruined_portal_nether',\r\n 'minecraft:ruined_portal_ocean',\r\n 'minecraft:ruined_portal_swamp',\r\n 'minecraft:ruined_portal',\r\n 'minecraft:shipwreck_beached',\r\n 'minecraft:shipwreck',\r\n 'minecraft:stronghold',\r\n 'minecraft:swamp_hut',\r\n 'minecraft:village_desert',\r\n 'minecraft:village_plains',\r\n 'minecraft:village_savanna',\r\n 'minecraft:village_snowy',\r\n 'minecraft:village_taiga'\r\n ]);\r\n collections.register('worldgen/configured_surface_builder', [\r\n 'minecraft:badlands',\r\n 'minecraft:basalt_deltas',\r\n 'minecraft:crimson_forest',\r\n 'minecraft:desert',\r\n 'minecraft:end',\r\n 'minecraft:eroded_badlands',\r\n 'minecraft:frozen_ocean',\r\n 'minecraft:full_sand',\r\n 'minecraft:giant_tree_taiga',\r\n 'minecraft:grass',\r\n 'minecraft:gravelly_mountain',\r\n 'minecraft:ice_spikes',\r\n 'minecraft:mountain',\r\n 'minecraft:mycelium',\r\n 'minecraft:nether',\r\n 'minecraft:nope',\r\n 'minecraft:ocean_sand',\r\n 'minecraft:shattered_savanna',\r\n 'minecraft:soul_sand_valley',\r\n 'minecraft:stone',\r\n 'minecraft:swamp',\r\n 'minecraft:warped_forest',\r\n 'minecraft:wooded_badlands'\r\n ]);\r\n collections.register('biome_category', [\r\n 'beach',\r\n 'desert',\r\n 'extreme_hills',\r\n 'forest',\r\n 'icy',\r\n 'jungle',\r\n 'mesa',\r\n 'mushroom',\r\n 'nether',\r\n 'none',\r\n 'ocean',\r\n 'plains',\r\n 'river',\r\n 'savanna',\r\n 'swamp',\r\n 'taiga',\r\n 'the_end'\r\n ]);\r\n collections.register('heightmap_type', [\r\n 'MOTION_BLOCKING',\r\n 'MOTION_BLOCKING_NO_LEAVES',\r\n 'OCEAN_FLOOR',\r\n 'OCEAN_FLOOR_WG',\r\n 'WORLD_SURFACE',\r\n 'WORLD_SURFACE_WG'\r\n ]);\r\n collections.register('generation_step', [\r\n 'air',\r\n 'liquid'\r\n ]);\r\n collections.register('loot_context_type', [\r\n 'minecraft:empty',\r\n 'minecraft:chest',\r\n 'minecraft:command',\r\n 'minecraft:selector',\r\n 'minecraft:fishing',\r\n 'minecraft:entity',\r\n 'minecraft:gift',\r\n 'minecraft:barter',\r\n 'minecraft:advancement_reward',\r\n 'minecraft:advancement_entity',\r\n 'minecraft:generic',\r\n 'minecraft:block'\r\n ]);\r\n}\r\nexports.initCollections = initCollections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initSchemas = void 0;\r\nconst Advancement_1 = require(\"./Advancement\");\r\nconst Common_1 = require(\"./Common\");\r\nconst Condition_1 = require(\"./Condition\");\r\nconst Dimension_1 = require(\"./Dimension\");\r\nconst DimensionType_1 = require(\"./DimensionType\");\r\nconst LootTable_1 = require(\"./LootTable\");\r\nconst PackMcmeta_1 = require(\"./PackMcmeta\");\r\nconst Predicates_1 = require(\"./Predicates\");\r\nconst Recipe_1 = require(\"./Recipe\");\r\nconst Tags_1 = require(\"./Tags\");\r\nconst TextComponent_1 = require(\"./TextComponent\");\r\nconst worldgen_1 = require(\"./worldgen\");\r\nconst WorldSettings_1 = require(\"./WorldSettings\");\r\nfunction initSchemas(schemas, collections) {\r\n // `Common.ts` is the only file that has exports. It should be initialized first. \r\n Common_1.initCommonSchemas(schemas, collections);\r\n Advancement_1.initAdvancementSchemas(schemas, collections);\r\n Condition_1.initConditionSchemas(schemas, collections);\r\n DimensionType_1.initDimensionTypeSchemas(schemas, collections);\r\n Dimension_1.initDimensionSchemas(schemas, collections);\r\n LootTable_1.initLootTableSchemas(schemas, collections);\r\n PackMcmeta_1.initPackMcmetaSchemas(schemas, collections);\r\n Predicates_1.initPredicatesSchemas(schemas, collections);\r\n Recipe_1.initRecipeSchemas(schemas, collections);\r\n Tags_1.initTagsSchemas(schemas, collections);\r\n TextComponent_1.initTextComponentSchemas(schemas, collections);\r\n worldgen_1.initWorldgenSchemas(schemas, collections);\r\n WorldSettings_1.initWorldSettingsSchemas(schemas, collections);\r\n}\r\nexports.initSchemas = initSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initAdvancementSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initAdvancementSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const EntityPredicate = core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: core_1.Opt(Reference('entity_predicate')),\r\n change: v => { var _a, _b; return (_b = (_a = v[0]) === null || _a === void 0 ? void 0 : _a.predicate) !== null && _b !== void 0 ? _b : ({}); }\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('condition')),\r\n change: v => [{\r\n condition: 'minecraft:entity_properties',\r\n predicate: v\r\n }]\r\n }\r\n ], { context: 'conditions' });\r\n schemas.register('advancement', core_1.Mod(core_1.ObjectNode({\r\n display: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n icon: core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n nbt: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'item' }] } } }))\r\n }),\r\n title: Reference('text_component'),\r\n description: Reference('text_component'),\r\n background: core_1.Opt(StringNode()),\r\n frame: core_1.Opt(StringNode({ enum: ['task', 'challenge', 'goal'] })),\r\n show_toast: core_1.Opt(core_1.BooleanNode()),\r\n announce_to_chat: core_1.Opt(core_1.BooleanNode()),\r\n hidden: core_1.Opt(core_1.BooleanNode())\r\n }), {\r\n default: () => ({\r\n icon: {\r\n item: 'minecraft:stone'\r\n },\r\n title: '',\r\n description: ''\r\n })\r\n })),\r\n parent: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$advancement' } })),\r\n criteria: core_1.MapNode(StringNode(), Reference('advancement_criteria')),\r\n requirements: core_1.Opt(core_1.ListNode(core_1.ListNode(StringNode() // TODO: add validation\r\n ))),\r\n rewards: core_1.Opt(core_1.ObjectNode({\r\n function: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$function' } })),\r\n loot: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$loot_table' } }))),\r\n recipes: core_1.Opt(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$recipe' } }))),\r\n experience: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n })),\r\n }, { context: 'advancement' }), {\r\n default: () => ({\r\n criteria: {\r\n requirement: {\r\n trigger: 'minecraft:location'\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('advancement_criteria', core_1.ObjectNode({\r\n trigger: StringNode({ validator: 'resource', params: { pool: collections.get('advancement_trigger') } }),\r\n conditions: core_1.Opt(core_1.ObjectNode({\r\n player: core_1.Mod(EntityPredicate, {\r\n enabled: path => path.pop().push('trigger').get() !== 'minecraft:impossible'\r\n }),\r\n [core_1.Switch]: ['pop', { push: 'trigger' }],\r\n [core_1.Case]: {\r\n 'minecraft:bee_nest_destroyed': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n num_bees_inside: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:bred_animals': {\r\n parent: EntityPredicate,\r\n partner: EntityPredicate,\r\n child: EntityPredicate\r\n },\r\n 'minecraft:brewed_potion': {\r\n potion: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'potion' } }))\r\n },\r\n 'minecraft:changed_dimension': {\r\n from: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } })),\r\n to: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$dimension' } }))\r\n },\r\n 'minecraft:channeled_lightning': {\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:construct_beacon': {\r\n level: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:consume_item': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:cured_zombie_villager': {\r\n villager: EntityPredicate,\r\n zombie: EntityPredicate\r\n },\r\n 'minecraft:effects_changed': {\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n },\r\n 'minecraft:enter_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } }))\r\n },\r\n 'minecraft:enchanted_item': {\r\n levels: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:entity_hurt_player': {\r\n damage: core_1.Opt(Reference('damage_predicate'))\r\n },\r\n 'minecraft:entity_killed_player': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:filled_bucket': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:fishing_rod_hooked': {\r\n entity: EntityPredicate,\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:hero_of_the_village': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:inventory_changed': {\r\n slots: core_1.Opt(core_1.ObjectNode({\r\n empty: core_1.Opt(Common_1.Range()),\r\n occupied: core_1.Opt(Common_1.Range()),\r\n full: core_1.Opt(Common_1.Range())\r\n })),\r\n items: core_1.Opt(core_1.ListNode(Reference('item_predicate')))\r\n },\r\n 'minecraft:item_durability_changed': {\r\n delta: core_1.Opt(Common_1.Range()),\r\n durability: core_1.Opt(Common_1.Range()),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:item_used_on_block': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:killed_by_crossbow': {\r\n unique_entity_types: core_1.Opt(Common_1.Range()),\r\n victims: core_1.Opt(core_1.ListNode(EntityPredicate))\r\n },\r\n 'minecraft:levitation': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n duration: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:location': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:nether_travel': {\r\n distance: core_1.Opt(Common_1.Range()),\r\n entered: core_1.Opt(Reference('location_predicate')),\r\n exited: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:placed_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } })),\r\n state: core_1.Opt(core_1.MapNode(StringNode(), StringNode(), { validation: { validator: 'block_state_map', params: { id: ['pop', { push: 'block' }] } } })),\r\n item: core_1.Opt(Reference('item_predicate')),\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:player_generates_container_loot': {\r\n loot_table: StringNode({ validator: 'resource', params: { pool: '$loot_table' } })\r\n },\r\n 'minecraft:player_hurt_entity': {\r\n damage: core_1.Opt(Reference('damage_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_interacted_with_entity': {\r\n item: core_1.Opt(Reference('item_predicate')),\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:player_killed_entity': {\r\n entity: EntityPredicate,\r\n killing_blow: core_1.Opt(Reference('damage_source_predicate'))\r\n },\r\n 'minecraft:recipe_unlocked': {\r\n recipe: StringNode({ validator: 'resource', params: { pool: '$recipe' } })\r\n },\r\n 'minecraft:slept_in_bed': {\r\n location: core_1.Opt(Reference('location_predicate'))\r\n },\r\n 'minecraft:slide_down_block': {\r\n block: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'block' } }))\r\n },\r\n 'minecraft:shot_crossbow': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:summoned_entity': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:tame_animal': {\r\n entity: EntityPredicate\r\n },\r\n 'minecraft:target_hit': {\r\n projectile: EntityPredicate,\r\n shooter: EntityPredicate,\r\n signal_strength: core_1.Opt(Common_1.Range({ integer: true }))\r\n },\r\n 'minecraft:thrown_item_picked_up_by_entity': {\r\n entity: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:used_ender_eye': {\r\n distance: core_1.Opt(Common_1.Range())\r\n },\r\n 'minecraft:used_totem': {\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:villager_trade': {\r\n villager: core_1.Opt(Reference('entity_predicate')),\r\n item: core_1.Opt(Reference('item_predicate'))\r\n },\r\n 'minecraft:voluntary_exile': {\r\n location: Reference('location_predicate')\r\n }\r\n }\r\n }, { context: 'criterion' }))\r\n }, { category: 'predicate', context: 'criterion' }));\r\n}\r\nexports.initAdvancementSchemas = initAdvancementSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initConditionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initConditionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('predicate', core_1.ObjectOrList(Reference('condition'), { choiceContext: 'condition' }));\r\n schemas.register('condition', core_1.Mod(core_1.ObjectNode({\r\n condition: StringNode({ validator: 'resource', params: { pool: 'loot_condition_type' } }),\r\n [core_1.Switch]: [{ push: 'condition' }],\r\n [core_1.Case]: Common_1.ConditionCases\r\n }, { category: 'predicate', context: 'condition' }), {\r\n default: () => ({\r\n condition: 'minecraft:entity_properties',\r\n entity: 'this'\r\n })\r\n }));\r\n}\r\nexports.initConditionSchemas = initConditionSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initDimensionSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"./Common\");\r\nfunction initDimensionSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const NoPreset = (node) => core_1.Mod(node, {\r\n enabled: path => path.push('preset').get() === undefined\r\n });\r\n schemas.register('dimension', core_1.Mod(core_1.ObjectNode({\r\n type: Common_1.DimensionTypePresets(Reference('dimension_type')),\r\n generator: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/chunk_generator' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\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 seed: core_1.NumberNode({ integer: true }),\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:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\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 },\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(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\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.Opt(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: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: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(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.Opt(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_bonemeal_flower': RandomPatchConfig,\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.Opt(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 },\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:lightning_strike',\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:started_riding',\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:using_item',\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 source: core_1.Opt(EntityPredicate)\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:lightning_strike': {\r\n lightning: EntityPredicate,\r\n bystander: EntityPredicate,\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:using_item': {\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 [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:noise': {\r\n seed: core_1.NumberNode({ integer: true }),\r\n settings: Common_1.NoiseSettingsPresets(Reference('noise_settings')),\r\n biome_source: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/biome_source' } }),\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 seed: core_1.NumberNode({ integer: true }),\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:the_end': {\r\n seed: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:vanilla_layered': {\r\n seed: core_1.NumberNode({ integer: true }),\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 },\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(),\r\n temperature: core_1.NumberNode(),\r\n humidity: core_1.NumberNode(),\r\n weirdness: core_1.NumberNode(),\r\n offset: core_1.NumberNode()\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 items: core_1.Opt(core_1.ListNode(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 blocks: core_1.Opt(core_1.ListNode(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 looking_at: core_1.Opt(Reference('entity_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 stepping_on: 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 vehicle: core_1.Opt(Reference('entity_predicate')),\r\n passenger: core_1.Opt(Reference('entity_predicate')),\r\n targeted_entity: core_1.Opt(Reference('entity_predicate')),\r\n lightning_bolt: core_1.Opt(core_1.ObjectNode({\r\n blocks_set_on_fire: core_1.Opt(Reference('int_bounds')),\r\n entity_struck: core_1.Opt(Reference('entity_predicate'))\r\n })),\r\n fishing_hook: core_1.Opt(core_1.ObjectNode({\r\n in_open_water: core_1.Opt(core_1.BooleanNode())\r\n })),\r\n effects: core_1.Opt(core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'mob_effect' } }), Reference('status_effect_predicate')))\r\n }, { context: 'entity' }));\r\n schemas.register('damage_source_predicate', core_1.ObjectNode({\r\n is_explosion: core_1.Opt(core_1.BooleanNode()),\r\n is_fire: core_1.Opt(core_1.BooleanNode()),\r\n is_magic: core_1.Opt(core_1.BooleanNode()),\r\n is_projectile: core_1.Opt(core_1.BooleanNode()),\r\n is_lightning: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_armor: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_invulnerability: core_1.Opt(core_1.BooleanNode()),\r\n bypasses_magic: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n direct_entity: core_1.Opt(Reference('entity_predicate'))\r\n }, { context: 'damage_source' }));\r\n schemas.register('damage_predicate', core_1.ObjectNode({\r\n dealt: Reference('float_bounds'),\r\n taken: Reference('float_bounds'),\r\n blocked: core_1.Opt(core_1.BooleanNode()),\r\n source_entity: core_1.Opt(Reference('entity_predicate')),\r\n type: core_1.Opt(Reference('damage_source_predicate'))\r\n }, { context: 'damage' }));\r\n}\r\nexports.initPredicatesSchemas = initPredicatesSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initRecipeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initRecipeSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('recipe', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'recipe_serializer' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:crafting_shaped': {\r\n group: core_1.Opt(StringNode({ enum: 'recipe_group', additional: true })),\r\n pattern: core_1.ListNode(StringNode()),\r\n key: core_1.MapNode(StringNode(), // TODO: add validation\r\n Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:crafting_shapeless': {\r\n group: core_1.Opt(StringNode()),\r\n ingredients: core_1.ListNode(Reference('recipe_ingredient')),\r\n result: Reference('recipe_result')\r\n },\r\n 'minecraft:smelting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 200 }))\r\n },\r\n 'minecraft:blasting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:smoking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:campfire_cooking': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n experience: core_1.Opt(core_1.NumberNode()),\r\n cookingtime: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 100 }))\r\n },\r\n 'minecraft:stonecutting': {\r\n group: core_1.Opt(StringNode()),\r\n ingredient: Reference('recipe_ingredient'),\r\n result: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:smithing': {\r\n group: core_1.Opt(StringNode()),\r\n base: Reference('recipe_ingredient_object'),\r\n addition: Reference('recipe_ingredient_object'),\r\n result: Reference('recipe_result')\r\n }\r\n }\r\n }, { context: 'recipe' }), {\r\n default: () => ({\r\n type: 'minecraft:crafting_shaped'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('recipe_ingredient_object'),\r\n change: v => v[0]\r\n },\r\n {\r\n type: 'list',\r\n node: core_1.ListNode(Reference('recipe_ingredient_object')),\r\n change: v => [v]\r\n }\r\n ]), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_ingredient_object', core_1.Mod(core_1.ObjectNode({\r\n item: core_1.Opt(StringNode({ validator: 'resource', params: { pool: 'item' } })),\r\n tag: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$tag/item' } }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n schemas.register('recipe_result', core_1.Mod(core_1.ObjectNode({\r\n item: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.Mod(core_1.NumberNode({ integer: true }), { default: () => 1 }))\r\n }), {\r\n default: () => ({\r\n item: 'minecraft:stone'\r\n })\r\n }));\r\n}\r\nexports.initRecipeSchemas = initRecipeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTagsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTagsSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const TagBase = (type) => core_1.Mod(core_1.ObjectNode({\r\n replace: core_1.Opt(core_1.BooleanNode()),\r\n values: core_1.ListNode(core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: type, allowTag: true } }),\r\n change: v => v.id\r\n },\r\n {\r\n type: 'object',\r\n node: core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: type, allowTag: true, allowUnknown: true } }),\r\n required: core_1.BooleanNode()\r\n }),\r\n change: v => ({ id: v })\r\n }\r\n ])),\r\n }, { context: 'tag' }), {\r\n default: () => ({\r\n values: []\r\n })\r\n });\r\n schemas.register('block_tag', TagBase('block'));\r\n schemas.register('entity_type_tag', TagBase('entity_type'));\r\n schemas.register('fluid_tag', TagBase('fluid'));\r\n schemas.register('function_tag', TagBase('$function'));\r\n schemas.register('game_event_tag', TagBase('game_event'));\r\n schemas.register('item_tag', TagBase('item'));\r\n}\r\nexports.initTagsSchemas = initTagsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initTextComponentSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initTextComponentSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const getSimpleString = (v) => { var _a; return v instanceof Array ? getSimpleString(v[0]) : (_a = v === null || v === void 0 ? void 0 : v.text) !== null && _a !== void 0 ? _a : (typeof v === 'object' ? '' : v === null || v === void 0 ? void 0 : v.toString()); };\r\n schemas.register('text_component', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'object',\r\n node: Reference('text_component_object'),\r\n change: v => v instanceof Array ? (typeof v[0] === 'object' ? v[0] : { text: getSimpleString(v[0]) }) : typeof v === 'object' ? v : { text: getSimpleString(v) }\r\n },\r\n {\r\n type: 'list',\r\n node: Reference('text_component_list'),\r\n change: v => [v]\r\n },\r\n {\r\n type: 'string',\r\n priority: 1,\r\n node: StringNode(),\r\n change: getSimpleString\r\n },\r\n {\r\n type: 'number',\r\n node: core_1.NumberNode(),\r\n change: v => {\r\n const n = parseFloat(getSimpleString(v));\r\n return isFinite(n) ? n : (!!v ? 1 : 0);\r\n }\r\n },\r\n {\r\n type: 'boolean',\r\n node: core_1.BooleanNode(),\r\n change: v => {\r\n const s = getSimpleString(v);\r\n return s === 'true' || s === 'false' ? s === 'true' : !!s;\r\n }\r\n }\r\n ], { context: 'text_component' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n const CommonFields = {\r\n color: core_1.Opt(StringNode()) /* TODO */,\r\n font: core_1.Opt(StringNode()),\r\n bold: core_1.Opt(core_1.BooleanNode()),\r\n italic: core_1.Opt(core_1.BooleanNode()),\r\n underlined: core_1.Opt(core_1.BooleanNode()),\r\n strikethrough: core_1.Opt(core_1.BooleanNode()),\r\n obfuscated: core_1.Opt(core_1.BooleanNode()),\r\n insertion: core_1.Opt(StringNode()),\r\n clickEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['open_url', 'open_file', 'run_command', 'suggest_command', 'change_page', 'copy_to_clipboard'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'change_page': {\r\n value: StringNode()\r\n },\r\n 'copy_to_clipboard': {\r\n value: StringNode()\r\n },\r\n 'open_file': {\r\n value: StringNode()\r\n },\r\n 'open_url': {\r\n value: StringNode()\r\n },\r\n 'run_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n },\r\n 'suggest_command': {\r\n value: StringNode({ validator: 'command', params: { leadingSlash: true, allowPartial: true } })\r\n }\r\n }\r\n })),\r\n hoverEvent: core_1.Opt(core_1.ObjectNode({\r\n action: StringNode({ enum: ['show_text', 'show_item', 'show_entity'] }),\r\n [core_1.Switch]: [{ push: 'action' }],\r\n [core_1.Case]: {\r\n 'show_text': {\r\n value: core_1.Opt(Reference('text_component')),\r\n contents: core_1.Opt(Reference('text_component'))\r\n },\r\n 'show_item': {\r\n value: core_1.Opt(StringNode({ validator: 'nbt', params: { module: 'util::InventoryItem' } })),\r\n contents: core_1.Opt(core_1.ObjectNode({\r\n id: StringNode({ validator: 'resource', params: { pool: 'item' } }),\r\n count: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n tag: core_1.Opt(StringNode({ validator: 'nbt', params: { registry: { category: 'minecraft:item', id: ['pop', { push: 'id' }] } } }))\r\n }))\r\n },\r\n 'show_entity': {\r\n value: core_1.Opt(core_1.ObjectNode({\r\n name: core_1.Opt(StringNode()),\r\n type: core_1.Opt(StringNode()),\r\n id: core_1.Opt(StringNode())\r\n })),\r\n contents: core_1.Opt(core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Opt(Reference('text_component')),\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n id: StringNode({ validator: 'uuid' })\r\n }), {\r\n default: () => ({\r\n type: 'minecraft:pig',\r\n id: '00000001-0001-0001-0001-000000000001'\r\n })\r\n }))\r\n }\r\n }\r\n })),\r\n extra: core_1.Opt(Reference('text_component_list'))\r\n };\r\n schemas.register('text_component_object', core_1.Mod(core_1.ChoiceNode([\r\n {\r\n type: 'text',\r\n match: v => typeof v === 'object',\r\n change: v => ({ text: '' }),\r\n priority: -1,\r\n node: core_1.ObjectNode({\r\n text: StringNode(),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'translation',\r\n match: v => (v === null || v === void 0 ? void 0 : v.translate) !== undefined,\r\n change: v => ({ translate: '' }),\r\n node: core_1.ObjectNode({\r\n translate: StringNode(),\r\n with: core_1.Opt(Reference('text_component_list')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'score',\r\n match: v => (v === null || v === void 0 ? void 0 : v.score) !== undefined,\r\n change: v => ({ score: {} }),\r\n node: core_1.ObjectNode({\r\n score: core_1.ObjectNode({\r\n name: StringNode({ validator: 'entity', params: { amount: 'single', type: 'entities', isScoreHolder: true } }),\r\n objective: StringNode({ validator: 'objective' }),\r\n value: core_1.Opt(StringNode())\r\n }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'selector',\r\n match: v => (v === null || v === void 0 ? void 0 : v.selector) !== undefined,\r\n change: v => ({ selector: '' }),\r\n node: core_1.ObjectNode({\r\n selector: StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } }),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'keybind',\r\n match: v => (v === null || v === void 0 ? void 0 : v.keybind) !== undefined,\r\n change: v => ({ keybind: '' }),\r\n node: core_1.ObjectNode({\r\n keybind: StringNode({ enum: 'keybind', additional: true }),\r\n ...CommonFields\r\n })\r\n },\r\n {\r\n type: 'nbt',\r\n match: v => (v === null || v === void 0 ? void 0 : v.nbt) !== undefined,\r\n change: v => ({ nbt: '' }),\r\n node: core_1.ObjectNode({\r\n nbt: StringNode({ validator: 'nbt_path' }),\r\n block: core_1.Opt(StringNode({ validator: 'vector', params: { dimension: 3, isInteger: true } })),\r\n entity: core_1.Opt(StringNode({ validator: 'entity', params: { amount: 'multiple', type: 'entities' } })),\r\n storage: core_1.Opt(StringNode({ validator: 'resource', params: { pool: '$storage' } })),\r\n interpret: core_1.Opt(core_1.BooleanNode()),\r\n separator: core_1.Opt(Reference('text_component')),\r\n ...CommonFields\r\n })\r\n }\r\n ], { context: 'text_component_object', choiceContext: 'text_component.object' }), {\r\n default: () => ({\r\n text: \"\"\r\n })\r\n }));\r\n schemas.register('text_component_list', core_1.Mod(core_1.ListNode(Reference('text_component')), {\r\n default: () => [{\r\n text: \"\"\r\n }]\r\n }));\r\n}\r\nexports.initTextComponentSchemas = initTextComponentSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initWorldgenSchemas = void 0;\r\nconst Biome_1 = require(\"./Biome\");\r\nconst Carver_1 = require(\"./Carver\");\r\nconst Decorator_1 = require(\"./Decorator\");\r\nconst Feature_1 = require(\"./Feature\");\r\nconst NoiseSettings_1 = require(\"./NoiseSettings\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nconst StructureFeature_1 = require(\"./StructureFeature\");\r\nconst SurfaceBuilder_1 = require(\"./SurfaceBuilder\");\r\nconst TemplatePool_1 = require(\"./TemplatePool\");\r\nfunction initWorldgenSchemas(schemas, collections) {\r\n // `ProcessorList.ts` has exports. It should be initialized first. \r\n ProcessorList_1.initProcessorListSchemas(schemas, collections);\r\n Biome_1.initBiomeSchemas(schemas, collections);\r\n Carver_1.initCarverSchemas(schemas, collections);\r\n Decorator_1.initDecoratorSchemas(schemas, collections);\r\n Feature_1.initFeatureSchemas(schemas, collections);\r\n NoiseSettings_1.initNoiseSettingsSchemas(schemas, collections);\r\n StructureFeature_1.initStructureFeatureSchemas(schemas, collections);\r\n SurfaceBuilder_1.initSurfaceBuilderSchemas(schemas, collections);\r\n TemplatePool_1.initTemplatePoolSchemas(schemas, collections);\r\n}\r\nexports.initWorldgenSchemas = initWorldgenSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initBiomeSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initBiomeSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('biome', core_1.Mod(core_1.ObjectNode({\r\n surface_builder: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_surface_builder' } }),\r\n depth: core_1.NumberNode(),\r\n scale: core_1.NumberNode(),\r\n temperature: core_1.NumberNode(),\r\n downfall: core_1.NumberNode(),\r\n precipitation: StringNode({ enum: ['none', 'rain', 'snow'] }),\r\n temperature_modifier: core_1.Opt(StringNode({ enum: ['none', 'frozen'] })),\r\n category: StringNode({ enum: 'biome_category' }),\r\n player_spawn_friendly: core_1.Opt(core_1.BooleanNode()),\r\n creature_spawn_probability: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n effects: core_1.ObjectNode({\r\n sky_color: core_1.NumberNode({ color: true }),\r\n fog_color: core_1.NumberNode({ color: true }),\r\n water_color: core_1.NumberNode({ color: true }),\r\n water_fog_color: core_1.NumberNode({ color: true }),\r\n grass_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n foliage_color: core_1.Opt(core_1.NumberNode({ color: true })),\r\n grass_color_modifier: core_1.Opt(StringNode({ enum: ['none', 'dark_forest', 'swamp'] })),\r\n ambient_sound: core_1.Opt(StringNode()),\r\n mood_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_delay: core_1.NumberNode({ integer: true }),\r\n block_search_extent: core_1.NumberNode({ integer: true }),\r\n offset: core_1.NumberNode()\r\n })),\r\n additions_sound: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n tick_chance: core_1.NumberNode({ min: 0, max: 1 })\r\n })),\r\n music: core_1.Opt(core_1.ObjectNode({\r\n sound: StringNode(),\r\n min_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n max_delay: core_1.NumberNode({ integer: true, min: 0 }),\r\n replace_current_music: core_1.BooleanNode()\r\n })),\r\n particle: core_1.Opt(core_1.ObjectNode({\r\n options: core_1.ObjectNode({\r\n type: StringNode()\r\n }),\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }))\r\n }),\r\n starts: core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_structure_feature' } })),\r\n spawners: core_1.MapNode(StringNode({ enum: [\r\n 'monster',\r\n 'creature',\r\n 'ambient',\r\n 'underground_water_creature',\r\n 'water_creature',\r\n 'water_ambient',\r\n 'misc'\r\n ] }), core_1.Mod(core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'entity_type' } }),\r\n weight: core_1.NumberNode({ integer: true }),\r\n minCount: core_1.NumberNode({ integer: true }),\r\n maxCount: core_1.NumberNode({ integer: true })\r\n })), {\r\n category: () => 'pool',\r\n default: () => [{\r\n type: 'minecraft:bat',\r\n weight: 1\r\n }]\r\n })),\r\n spawn_costs: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'entity_type' } }), core_1.Mod(core_1.ObjectNode({\r\n energy_budget: core_1.NumberNode(),\r\n charge: core_1.NumberNode()\r\n }, { category: 'function' }), {\r\n default: () => ({\r\n energy_budget: 0.12,\r\n charge: 1.0\r\n })\r\n })),\r\n carvers: core_1.MapNode(StringNode({ enum: ['air', 'liquid'] }), core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_carver' } })), {\r\n default: () => ['minecraft:cave']\r\n })),\r\n features: core_1.ListNode(core_1.Mod(core_1.ListNode(StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })), { category: () => 'predicate' }), { maxLength: 10 })\r\n }, { context: 'biome' }), {\r\n default: () => ({\r\n surface_builder: 'minecraft:grass',\r\n depth: 0.125,\r\n scale: 0.05,\r\n temperature: 0.8,\r\n downfall: 0.4,\r\n precipitation: 'rain',\r\n category: 'plains',\r\n effects: {\r\n sky_color: 7907327,\r\n fog_color: 12638463,\r\n water_color: 4159204,\r\n water_fog_color: 329011\r\n }\r\n })\r\n }));\r\n}\r\nexports.initBiomeSchemas = initBiomeSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initCarverSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initCarverSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const CanyonConfig = {\r\n vertical_rotation: Common_1.FloatProvider(),\r\n shape: core_1.ObjectNode({\r\n distance_factor: Common_1.FloatProvider(),\r\n thickness: Common_1.FloatProvider(),\r\n width_smoothness: core_1.NumberNode({ integer: true, min: 0 }),\r\n horizontal_radius_factor: Common_1.FloatProvider(),\r\n vertical_radius_default_factor: core_1.NumberNode(),\r\n vertical_radius_center_factor: core_1.NumberNode()\r\n })\r\n };\r\n const CaveConfig = {\r\n horizontal_radius_multiplier: Common_1.FloatProvider(),\r\n vertical_radius_multiplier: Common_1.FloatProvider(),\r\n floor_level: Common_1.FloatProvider({ min: -1, max: 1 }),\r\n };\r\n schemas.register('configured_carver', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/carver' } }),\r\n config: core_1.ObjectNode({\r\n probability: core_1.NumberNode({ min: 0, max: 1 }),\r\n y: Reference('height_provider'),\r\n yScale: Common_1.FloatProvider(),\r\n lava_level: Reference('vertical_anchor'),\r\n aquifers_enabled: core_1.BooleanNode(),\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 water_state: core_1.Opt(Reference('block_state')),\r\n lava_state: core_1.Opt(Reference('block_state')),\r\n barrier_state: core_1.Opt(Reference('block_state'))\r\n })),\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:canyon': CanyonConfig,\r\n 'minecraft:cave': CaveConfig,\r\n 'minecraft:nether_cave': CaveConfig\r\n },\r\n })\r\n }, { context: 'carver' }), {\r\n default: () => ({\r\n type: 'minecraft:cave',\r\n config: {\r\n probability: 0.1\r\n }\r\n })\r\n }));\r\n}\r\nexports.initCarverSchemas = initCarverSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nrequire(\"./Decorator\");\r\nrequire(\"./ProcessorList\");\r\nconst ProcessorList_1 = require(\"./ProcessorList\");\r\nfunction initFeatureSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const RandomPatchConfig = {\r\n can_replace: core_1.Opt(core_1.BooleanNode()),\r\n project: core_1.Opt(core_1.BooleanNode()),\r\n need_water: core_1.Opt(core_1.BooleanNode()),\r\n xspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n yspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n zspread: core_1.Opt(core_1.NumberNode({ integer: true, min: 0 })),\r\n tries: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 })),\r\n state_provider: Reference('block_state_provider'),\r\n block_placer: Reference('block_placer'),\r\n whitelist: core_1.ListNode(Reference('block_state')),\r\n blacklist: core_1.ListNode(Reference('block_state'))\r\n };\r\n const DiskConfig = {\r\n state: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 8 }),\r\n half_height: core_1.NumberNode({ integer: true, min: 0, max: 4 }),\r\n targets: core_1.ListNode(Reference('block_state'))\r\n };\r\n const HugeMushroomConfig = {\r\n cap_provider: Reference('block_state_provider'),\r\n stem_provider: Reference('block_state_provider'),\r\n foliage_radius: core_1.Opt(core_1.NumberNode({ integer: true }))\r\n };\r\n const TargetBlockState = core_1.ObjectNode({\r\n target: Reference('rule_test'),\r\n state: Reference('block_state')\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(TargetBlockState)\r\n };\r\n const Feature = core_1.ChoiceNode([\r\n {\r\n type: 'string',\r\n node: StringNode({ validator: 'resource', params: { pool: '$worldgen/configured_feature' } })\r\n },\r\n {\r\n type: 'object',\r\n node: Reference('configured_feature')\r\n }\r\n ], { choiceContext: 'feature' });\r\n const VegetationPatchConfig = {\r\n surface: StringNode({ enum: ['floor', 'ceiling'] }),\r\n depth: Common_1.IntProvider({ min: 1, max: 128 }),\r\n vertical_range: core_1.NumberNode({ integer: true, min: 1, max: 256 }),\r\n extra_bottom_block_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n extra_edge_column_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n vegetation_chance: core_1.NumberNode({ min: 0, max: 1 }),\r\n xz_radius: Common_1.IntProvider(),\r\n replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n ground_state: Reference('block_state_provider'),\r\n vegetation_feature: Feature\r\n };\r\n schemas.register('configured_feature', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature' } }),\r\n config: core_1.ObjectNode({\r\n [core_1.Switch]: ['pop', { push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bamboo': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:basalt_columns': {\r\n reach: Common_1.IntProvider({ min: 0, max: 3 }),\r\n height: Common_1.IntProvider({ min: 1, max: 10 })\r\n },\r\n 'minecraft:block_pile': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:decorated': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:decorated_flower': {\r\n decorator: Reference('configured_decorator'),\r\n feature: Feature\r\n },\r\n 'minecraft:delta_feature': {\r\n contents: Reference('block_state'),\r\n rim: Reference('block_state'),\r\n size: Common_1.IntProvider({ min: 0, max: 16 }),\r\n rim_size: Common_1.IntProvider({ min: 0, max: 16 })\r\n },\r\n 'minecraft:disk': DiskConfig,\r\n 'minecraft:dripstone_cluster': {\r\n floor_to_ceiling_search_range: core_1.NumberNode({ integer: true, min: 1, max: 512 }),\r\n height: Common_1.IntProvider({ min: 0, max: 128 }),\r\n radius: Common_1.IntProvider({ min: 0, max: 128 }),\r\n max_stalagmite_stalactite_height_diff: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n height_deviation: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n dripstone_block_layer_thickness: Common_1.IntProvider({ min: 0, max: 128 }),\r\n density: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n wetness: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n 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:end_gateway': {\r\n exact: core_1.BooleanNode(),\r\n exit: core_1.Opt(Reference('block_pos'))\r\n },\r\n 'minecraft:end_spike': {\r\n crystal_invulnerable: core_1.Opt(core_1.BooleanNode()),\r\n crystal_beam_target: core_1.Opt(Reference('block_pos')),\r\n spikes: core_1.ListNode(core_1.ObjectNode({\r\n centerX: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n centerZ: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n radius: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n height: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n guarded: core_1.Opt(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 cannot_replace: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n invalid_blocks: StringNode({ validator: 'resource', params: { pool: '$tag/block' } })\r\n }),\r\n layers: core_1.ObjectNode({\r\n filling: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n inner_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n middle_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n outer_layer: core_1.Opt(core_1.NumberNode({ min: 0.01, max: 50 })),\r\n }),\r\n crack: core_1.ObjectNode({\r\n generate_crack_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n base_crack_size: core_1.Opt(core_1.NumberNode({ min: 0, max: 5 })),\r\n crack_point_offset: core_1.Opt(core_1.NumberNode({ min: 0, max: 10, integer: true })),\r\n }),\r\n noise_multiplier: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_potential_placements_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n use_alternate_layer0_chance: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n placements_require_layer0_alternate: core_1.Opt(core_1.BooleanNode()),\r\n outer_wall_distance: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n distribution_points: core_1.Opt(Common_1.IntProvider({ min: 1, max: 20 })),\r\n point_offset: core_1.Opt(Common_1.IntProvider({ min: 0, max: 10 })),\r\n min_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n max_gen_offset: core_1.Opt(core_1.NumberNode({ integer: true })),\r\n invalid_blocks_threshold: core_1.NumberNode({ integer: true })\r\n },\r\n 'minecraft:glow_lichen': {\r\n search_range: core_1.Opt(core_1.NumberNode({ min: 1, max: 64, integer: true })),\r\n chance_of_spreading: core_1.Opt(core_1.NumberNode({ min: 0, max: 1 })),\r\n can_place_on_floor: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_ceiling: core_1.Opt(core_1.BooleanNode()),\r\n can_place_on_wall: core_1.Opt(core_1.BooleanNode()),\r\n can_be_placed_on: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:growing_plant': {\r\n direction: StringNode({ enum: ['up', 'down', 'north', 'east', 'south', 'west'] }),\r\n allow_water: core_1.BooleanNode(),\r\n height_distribution: core_1.ListNode(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true }),\r\n data: Common_1.IntProvider()\r\n })),\r\n body_provider: Reference('block_state_provider'),\r\n head_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:huge_brown_mushroom': HugeMushroomConfig,\r\n 'minecraft:huge_fungus': {\r\n hat_state: Reference('block_state'),\r\n decor_state: Reference('block_state'),\r\n stem_state: Reference('block_state'),\r\n valid_base_block: Reference('block_state'),\r\n planted: core_1.Opt(core_1.BooleanNode())\r\n },\r\n 'minecraft:huge_red_mushroom': HugeMushroomConfig,\r\n 'minecraft:ice_patch': DiskConfig,\r\n 'minecraft:iceberg': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:lake': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:large_dripstone': {\r\n floor_to_ceiling_search_range: core_1.Opt(core_1.NumberNode({ integer: true, min: 1, max: 512 })),\r\n column_radius: Common_1.IntProvider({ min: 0, max: 60 }),\r\n height_scale: Common_1.FloatProvider({ min: 0, max: 20 }),\r\n max_column_radius_to_cave_height_ratio: core_1.NumberNode({ min: 0, max: 1 }),\r\n stalactite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n stalagmite_bluntness: Common_1.FloatProvider({ min: 0.1, max: 10 }),\r\n wind_speed: Common_1.FloatProvider({ min: 0, max: 2 }),\r\n min_radius_for_wind: core_1.NumberNode({ integer: true, min: 0, max: 100 }),\r\n min_bluntness_for_wind: core_1.NumberNode({ min: 0, max: 5 })\r\n },\r\n 'minecraft:nether_forest_vegetation': {\r\n state_provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:netherrack_replace_blobs': {\r\n state: Reference('block_state'),\r\n target: Reference('block_state'),\r\n radius: Common_1.IntProvider({ min: 0, max: 12 })\r\n },\r\n 'minecraft:no_bonemeal_flower': RandomPatchConfig,\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:replace_single_block': {\r\n targets: core_1.ListNode(TargetBlockState)\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 allowed_vertical_water_for_tree: core_1.NumberNode({ integer: true, min: 1, max: 64 }),\r\n root_replaceable: StringNode({ validator: 'resource', params: { pool: '$tag/block' } }),\r\n root_state_provider: Reference('block_state_provider'),\r\n hanging_root_state_provider: Reference('block_state_provider'),\r\n feature: Feature\r\n },\r\n 'minecraft:scattered_ore': OreConfig,\r\n 'minecraft:sea_pickle': {\r\n count: Common_1.IntProvider({ min: 0, max: 256 })\r\n },\r\n 'minecraft:seagrass': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:simple_block': {\r\n to_place: Reference('block_state_provider'),\r\n place_on: core_1.ListNode(Reference('block_state')),\r\n place_in: core_1.ListNode(Reference('block_state')),\r\n place_under: core_1.ListNode(Reference('block_state'))\r\n },\r\n 'minecraft:simple_random_selector': {\r\n features: core_1.ListNode(Feature)\r\n },\r\n 'minecraft:small_dripstone': {\r\n max_placements: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 100 })),\r\n empty_space_search_radius: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n max_offset_from_origin: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 20 })),\r\n chance_of_taller_dripstone: core_1.Opt(core_1.NumberNode({ 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 sapling_provider: Reference('block_state_provider'),\r\n trunk_provider: Reference('block_state_provider'),\r\n foliage_provider: Reference('block_state_provider'),\r\n trunk_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/trunk_placer_type' } }),\r\n base_height: core_1.NumberNode({ integer: true, min: 0, max: 32 }),\r\n height_rand_a: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n height_rand_b: core_1.NumberNode({ integer: true, min: 0, max: 24 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:bending_trunk_placer': {\r\n bend_length: Common_1.IntProvider({ min: 1, max: 64 }),\r\n min_height_for_leaves: core_1.Opt(core_1.NumberNode({ integer: true, min: 1 }))\r\n }\r\n }\r\n }, { context: 'trunk_placer' }),\r\n foliage_placer: core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/foliage_placer_type' } }),\r\n radius: Common_1.IntProvider({ min: 0, max: 16 }),\r\n offset: Common_1.IntProvider({ min: 0, max: 16 }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:blob_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:bush_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:fancy_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:jungle_foliage_placer': {\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 16 })\r\n },\r\n 'minecraft:mega_pine_foliage_placer': {\r\n crown_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:pine_foliage_placer': {\r\n height: Common_1.IntProvider({ min: 0, max: 24 })\r\n },\r\n 'minecraft:random_spread_foliage_placer': {\r\n foliage_height: Common_1.IntProvider({ min: 1, max: 512 }),\r\n leaf_placement_attempts: core_1.NumberNode({ integer: true, min: 0, max: 256 })\r\n },\r\n 'minecraft:spruce_foliage_placer': {\r\n trunk_height: Common_1.IntProvider({ min: 0, max: 24 })\r\n }\r\n }\r\n }, { context: 'foliage_placer', disableSwitchContext: true }),\r\n decorators: core_1.ListNode(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/tree_decorator_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:alter_ground': {\r\n provider: Reference('block_state_provider')\r\n },\r\n 'minecraft:beehive': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:cocoa': {\r\n probability: core_1.NumberNode({ min: 0, max: 1 })\r\n }\r\n }\r\n }, { context: 'tree_decorator' }))\r\n },\r\n 'minecraft:underwater_magma': {\r\n floor_search_range: core_1.NumberNode({ integer: true, min: 0, max: 512 }),\r\n placement_radius_around_floor: core_1.NumberNode({ integer: true, min: 0, max: 64 }),\r\n placement_probability_per_valid_position: core_1.NumberNode({ min: 0, max: 1 })\r\n },\r\n 'minecraft:vegetation_patch': VegetationPatchConfig,\r\n 'minecraft:waterlogged_vegetation_patch': VegetationPatchConfig\r\n }\r\n }, { context: 'feature' })\r\n }, { context: 'feature' }), {\r\n default: () => ({\r\n type: 'minecraft:decorated',\r\n config: {\r\n decorator: {\r\n type: 'minecraft:count',\r\n config: {\r\n count: 4\r\n }\r\n },\r\n feature: {\r\n type: 'minecraft:tree',\r\n config: {\r\n max_water_depth: 0,\r\n ignore_vines: true,\r\n minimum_size: {},\r\n trunk_placer: {\r\n base_height: 5,\r\n height_rand_a: 2,\r\n height_rand_b: 0\r\n },\r\n foliage_placer: {\r\n radius: 2,\r\n offset: 0,\r\n height: 3\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }));\r\n schemas.register('feature_size', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/feature_size_type' } }),\r\n min_clipped_height: core_1.Opt(core_1.NumberNode({ min: 0, max: 80 })),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:two_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 81 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n },\r\n 'minecraft:three_layers_feature_size': {\r\n limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n upper_limit: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 80 })),\r\n lower_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n middle_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 })),\r\n upper_size: core_1.Opt(core_1.NumberNode({ integer: true, min: 0, max: 16 }))\r\n }\r\n }\r\n }, { disableSwitchContext: true }), {\r\n default: () => ({\r\n type: 'minecraft:two_layers_feature_size'\r\n })\r\n }));\r\n schemas.register('block_state_provider', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_state_provider_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:randomized_int_state_provider': {\r\n property: StringNode(),\r\n values: Common_1.IntProvider(),\r\n source: Reference('block_state_provider')\r\n },\r\n 'minecraft:rotated_block_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:simple_state_provider': {\r\n state: Reference('block_state')\r\n },\r\n 'minecraft:weighted_state_provider': {\r\n entries: core_1.ListNode(core_1.Mod(core_1.ObjectNode({\r\n weight: core_1.NumberNode({ integer: true, min: 1 }),\r\n data: Reference('block_state')\r\n }), {\r\n default: () => ({\r\n data: {}\r\n })\r\n }))\r\n }\r\n }\r\n }, { context: 'block_state_provider' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_state_provider'\r\n })\r\n }));\r\n schemas.register('block_placer', core_1.Mod(core_1.ObjectNode({\r\n type: StringNode({ validator: 'resource', params: { pool: 'worldgen/block_placer_type' } }),\r\n [core_1.Switch]: [{ push: 'type' }],\r\n [core_1.Case]: {\r\n 'minecraft:column_placer': {\r\n size: Common_1.IntProvider({ min: 0 })\r\n }\r\n }\r\n }, { context: 'block_placer' }), {\r\n default: () => ({\r\n type: 'minecraft:simple_block_placer'\r\n })\r\n }));\r\n}\r\nexports.initFeatureSchemas = initFeatureSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initNoiseSettingsSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nconst Common_1 = require(\"../Common\");\r\nfunction initNoiseSettingsSchemas(schemas, collections) {\r\n const Reference = core_1.Reference.bind(undefined, schemas);\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n schemas.register('noise_settings', core_1.Mod(core_1.ObjectNode({\r\n name: core_1.Mod(StringNode({ validator: 'resource', params: { pool: '$worldgen/noise_settings', isDefinition: true } }), {\r\n enabled: (path) => path.getArray().length > 0\r\n }),\r\n bedrock_roof_position: core_1.NumberNode({ integer: true }),\r\n bedrock_floor_position: core_1.NumberNode({ integer: true }),\r\n sea_level: core_1.NumberNode({ integer: true }),\r\n min_surface_level: core_1.NumberNode({ integer: true }),\r\n disable_mob_generation: core_1.BooleanNode(),\r\n noise_caves_enabled: core_1.BooleanNode(),\r\n noodle_caves_enabled: core_1.BooleanNode(),\r\n aquifers_enabled: core_1.BooleanNode(),\r\n deepslate_enabled: core_1.BooleanNode(),\r\n ore_veins_enabled: core_1.BooleanNode(),\r\n default_block: Reference('block_state'),\r\n default_fluid: Reference('block_state'),\r\n noise: core_1.ObjectNode({\r\n min_y: core_1.NumberNode({ integer: true, min: -2048, max: 2047 }),\r\n height: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n density_factor: core_1.NumberNode(),\r\n density_offset: core_1.NumberNode(),\r\n size_horizontal: core_1.NumberNode({ integer: true }),\r\n size_vertical: core_1.NumberNode({ integer: true }),\r\n simplex_surface_noise: core_1.BooleanNode(),\r\n random_density_offset: core_1.Opt(core_1.BooleanNode()),\r\n island_noise_override: core_1.Opt(core_1.BooleanNode()),\r\n amplified: core_1.Opt(core_1.BooleanNode()),\r\n sampling: core_1.ObjectNode({\r\n xz_scale: core_1.NumberNode(),\r\n y_scale: core_1.NumberNode(),\r\n xz_factor: core_1.NumberNode(),\r\n y_factor: core_1.NumberNode()\r\n }),\r\n bottom_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n }),\r\n top_slide: core_1.ObjectNode({\r\n target: core_1.NumberNode({ integer: true }),\r\n size: core_1.NumberNode({ integer: true, min: 0 }),\r\n offset: core_1.NumberNode({ integer: true })\r\n })\r\n }),\r\n structures: Reference('generator_structures')\r\n }, { context: 'noise_settings' }), node => ({\r\n default: () => Common_1.DefaultNoiseSettings,\r\n validate: (path, value, errors, options) => {\r\n var _a, _b, _c, _d;\r\n value = node.validate(path, value, errors, options);\r\n if (((_a = value === null || value === void 0 ? void 0 : value.noise) === null || _a === void 0 ? void 0 : _a.min_y) + ((_b = value === null || value === void 0 ? void 0 : value.noise) === null || _b === void 0 ? void 0 : _b.height) > 2047) {\r\n errors.add(path.push('noise').push('height'), 'error.min_y_plus_height', 2047);\r\n }\r\n if (((_c = value === null || value === void 0 ? void 0 : value.noise) === null || _c === void 0 ? void 0 : _c.height) % 16 !== 0) {\r\n errors.add(path.push('noise').push('height'), 'error.height_multiple', 16);\r\n }\r\n if (((_d = value === null || value === void 0 ? void 0 : value.noise) === null || _d === void 0 ? void 0 : _d.min_y) % 16 !== 0) {\r\n errors.add(path.push('noise').push('min_y'), 'error.min_y_multiple', 16);\r\n }\r\n return value;\r\n }\r\n })));\r\n schemas.register('generator_structures', core_1.ObjectNode({\r\n stronghold: core_1.Opt(core_1.ObjectNode({\r\n distance: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n spread: core_1.NumberNode({ integer: true, min: 0, max: 1023 }),\r\n count: core_1.NumberNode({ integer: true, min: 1, max: 4095 })\r\n })),\r\n structures: core_1.MapNode(StringNode({ validator: 'resource', params: { pool: 'worldgen/structure_feature' } }), core_1.Mod(core_1.ObjectNode({\r\n spacing: core_1.NumberNode({ integer: true, min: 0, max: 4096 }),\r\n separation: core_1.Mod(core_1.NumberNode({ integer: true, min: 0, max: 4096 }), (node) => ({\r\n validate: (path, value, errors, options) => {\r\n if (path.pop().push('spacing').get() <= value) {\r\n errors.add(path, 'error.separation_smaller_spacing');\r\n }\r\n return node.validate(path, value, errors, options);\r\n }\r\n })),\r\n salt: core_1.NumberNode({ integer: true, min: 0 })\r\n }, { context: 'generator_structure' }), {\r\n default: () => ({\r\n spacing: 10,\r\n separation: 5,\r\n salt: 0\r\n })\r\n }))\r\n }));\r\n schemas.register('generator_layer', core_1.Mod(core_1.ObjectNode({\r\n block: StringNode({ validator: 'resource', params: { pool: 'block' } }),\r\n height: core_1.NumberNode({ integer: true, min: 1 })\r\n }), {\r\n default: () => ({\r\n block: 'minecraft:stone',\r\n height: 1\r\n })\r\n }));\r\n}\r\nexports.initNoiseSettingsSchemas = initNoiseSettingsSchemas;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.initStructureFeatureSchemas = void 0;\r\nconst core_1 = require(\"@mcschema/core\");\r\nfunction initStructureFeatureSchemas(schemas, collections) {\r\n const StringNode = core_1.StringNode.bind(undefined, collections);\r\n const Reference = core_1.Reference.bind(undefined, schemas);\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:nether_fossil': {\r\n height: Reference('height_provider')\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.Opt(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 },\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 console.error(`[fetchData] Unknown version ${version} in ${JSON.stringify(config.versions)}`);\n return;\n }\n console.debug(`[fetchData] ${JSON.stringify(version)}`);\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 console.debug(`[deleteMatching] ${r.id} '${localStorage.getItem(`cached_${r.id}`)}' < '${r.hash}' ${r.url}/${version.refs[r.id]}`);\n yield deleteMatching(url => url.startsWith(`${r.url}/${version.refs[r.id]}`));\n console.debug(`[deleteMatching] Done! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`);\n localStorage.setItem(`cached_${r.id}`, r.hash);\n console.debug(`[deleteMatching] Set! ${r.id} ${r.hash} '${localStorage.getItem(`cached_${r.id}`)}'`);\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 console.debug(`[fetchRegistries] ${version.id}`);\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 fetching registry ${r.id}:`, e);\n }\n })));\n }\n });\n}\nfunction fetchBlockStateMap(version) {\n return __awaiter(this, void 0, void 0, function* () {\n console.debug(`[fetchBlockStateMap] ${version.id}`);\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 console.debug(`[fetchDynamicRegistries] ${version.id}`);\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 console.debug(`[fetchPreset] ${version.id} ${registry} ${id}`);\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 try {\n const cache = yield caches.open(CACHE_NAME);\n console.debug(`[getData] Opened cache ${CACHE_NAME} ${url}`);\n const cacheResponse = yield cache.match(url);\n if (cacheResponse && cacheResponse.ok) {\n console.debug(`[getData] Retrieving cached data ${url}`);\n return yield cacheResponse.json();\n }\n console.debug(`[getData] fetching data ${url}`);\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 catch (e) {\n console.warn(`[getData] Failed to open cache ${CACHE_NAME}: ${e.message}`);\n console.debug(`[getData] fetching data ${url}`);\n const fetchResponse = yield fetch(url);\n const responseData = fn(yield fetchResponse.json());\n return responseData;\n }\n });\n}\nfunction deleteMatching(matches) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const cache = yield caches.open(CACHE_NAME);\n console.debug(`[deleteMatching] Opened cache ${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 console.debug(`[deleteMatching] Removing ${promises.length} cache objects...`);\n yield Promise.all(promises);\n }\n catch (e) {\n console.warn(`[deleteMatching] Failed to open cache ${CACHE_NAME}: ${e.message}`);\n }\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 console.debug(`[View.mount] ${html.replace(/\\n/g, '').slice(0, 40)}...`);\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};\nconsole.debug(`[App] LocalStorage=${'localStorage' in window} Caches=${'caches' in window}`);\nApp.version.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n console.debug(`[App.version.watchRun] ${value}`);\n App.schemasLoaded.set(false);\n yield updateSchemas(value);\n App.schemasLoaded.set(true);\n console.debug(`[App.version.watchRun] Done! ${value}`);\n}));\nApp.theme.watchRun((value) => {\n console.debug(`[App.theme.watchRun] ${value}`);\n document.documentElement.setAttribute('data-theme', value);\n});\nlet hasFetchedEnglish = false;\nApp.language.watchRun((value) => __awaiter(void 0, void 0, void 0, function* () {\n console.debug(`[App.language.watchRun] ${value}`);\n App.localesLoaded.set(false);\n yield updateLocale(value);\n App.localesLoaded.set(true);\n console.debug(`[App.language.watchRun] Done! ${value}`);\n}));\nApp.localesLoaded.watch((value) => {\n console.debug(`[App.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 console.debug(`[App.schemasLoaded.watch] ${value}`);\n App.loaded.set(value && App.localesLoaded.get());\n});\nApp.mobilePanel.watchRun((value) => {\n console.debug(`[App.mobilePanel.watchRun] ${value}`);\n document.body.setAttribute('data-panel', value);\n});\nfunction updateSchemas(version) {\n return __awaiter(this, void 0, void 0, function* () {\n console.debug(`[updateSchemas] ${version}`);\n App.blockStateRegistry = {};\n const collections = Versions[version].getCollections();\n console.debug(`[updateSchemas] Done getting collections! ${Object.keys(collections['registry']).length}`);\n App.collections.set(collections);\n yield fetchData(collections, version);\n console.debug('[updateSchemas] Done fetching data!');\n const schemas = Versions[version].getSchemas(collections);\n console.debug(`[updateSchemas] Done getting schemas! ${Object.keys(schemas['registry']).length}`);\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 console.debug(`[updateSchemas] Done!`);\n });\n}\nfunction updateLocale(language) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Locales[language] && (hasFetchedEnglish || language !== 'en'))\n return;\n const data = yield (yield fetch(`/locales/${language}.json`)).json();\n if (language === 'en')\n hasFetchedEnglish = true;\n Locales[language] = data;\n });\n}\nexport function checkVersion(versionId, minVersionId, maxVersionId) {\n const version = config.versions.findIndex(v => v.id === versionId);\n const minVersion = minVersionId ? config.versions.findIndex(v => v.id === minVersionId) : 0;\n const maxVersion = maxVersionId ? config.versions.findIndex(v => v.id === maxVersionId) : config.versions.length - 1;\n return minVersion <= version && version <= maxVersion;\n}\ndocument.addEventListener('keyup', (evt) => {\n if (evt.ctrlKey && evt.key === 'z') {\n Tracker.undo(true);\n Models[App.model.get().id].undo();\n }\n else if (evt.ctrlKey && evt.key === 'y') {\n Tracker.redo(true);\n Models[App.model.get().id].redo();\n }\n});\n","import { Path } from \"@mcschema/core\";\nimport { Preview } from './Preview';\nimport { toggleMenu } from '../views/View';\nimport { Octicon } from '../components/Octicon';\nimport { NoiseChunkGenerator } from './noise/NoiseChunkGenerator';\nexport class NoiseSettingsPreview extends Preview {\n constructor() {\n super();\n this.width = 256;\n this.depth = 0.1;\n this.scale = 0.2;\n this.offsetX = 0;\n this.debug = false;\n this.generator = new NoiseChunkGenerator();\n }\n getName() {\n return 'noise-settings';\n }\n active(path) {\n return path.endsWith(new Path(['noise']));\n }\n menu(view, redraw) {\n return `
          \n
          \n ${Octicon.kebab_horizontal}\n
          \n
          \n
          \n ${Octicon.gear}\n \n {\n el.value = this.depth.toString();\n el.addEventListener('change', () => {\n this.depth = parseFloat(el.value);\n redraw();\n });\n })}\">\n
          \n
          \n ${Octicon.gear}\n \n {\n el.value = this.scale.toString();\n el.addEventListener('change', () => {\n this.scale = parseFloat(el.value);\n redraw();\n });\n })}\">\n
          \n
          \n ${Octicon.arrow_both}\n \n {\n el.value = this.width.toString();\n el.addEventListener('change', () => {\n this.width = parseFloat(el.value);\n redraw();\n });\n })}\">\n
          \n
          { this.debug = !this.debug; redraw(); })}\">\n ${Octicon.square}\n \n
          \n
          \n
          `;\n }\n getSize() {\n return [this.width, this.state.height];\n }\n draw(model, img) {\n this.generator.reset(this.state, this.depth, this.scale, this.offsetX, this.width);\n const data = img.data;\n for (let x = 0; x < this.width; x += 1) {\n const noise = this.generator.iterateNoiseColumn(x + this.offsetX).reverse();\n for (let y = 0; y < this.state.height; y += 1) {\n const i = (y * (img.width * 4)) + (x * 4);\n const color = this.getColor(noise, y);\n data[i] = (this.debug && noise[y] > 0) ? 255 : color;\n data[i + 1] = color;\n data[i + 2] = color;\n data[i + 3] = 255;\n }\n }\n }\n onDrag(dx, dy) {\n this.offsetX -= dx;\n }\n getColor(noise, y) {\n if (this.debug) {\n return -noise[y] / 2 + 128;\n }\n if (noise[y] > 0) {\n return 0;\n }\n if (noise[y + 1] > 0) {\n return 150;\n }\n return 255;\n }\n}\n","export class Settings {\n constructor(local_storage) {\n var _a;\n this.local_storage = local_storage;\n const settings = JSON.parse((_a = localStorage.getItem(local_storage)) !== null && _a !== void 0 ? _a : '{}');\n if (!Array.isArray(settings.fields))\n settings.fields = [];\n this.fields = settings.fields;\n this.save();\n }\n save() {\n const settings = JSON.stringify({ fields: this.fields });\n localStorage.setItem(this.local_storage, settings);\n this.fields = [...this.fields.filter(v => v === null || v === void 0 ? void 0 : v.path), {}];\n }\n}\n","import { Octicon } from './Octicon';\nexport const Dropdown = (view, icon, entries, state, watcher) => {\n const dropdown = view.register(el => {\n el.addEventListener('change', () => {\n state.set(el.value);\n });\n state.watchRun(v => el.value = v, 'dropdown');\n });\n return `\n
          \n \n ${Octicon[icon]}\n
          `;\n};\n","import { Octicon } from './Octicon';\nexport const Toggle = (view, entries, state, watcher) => {\n const activeOcticon = () => { var _a; return Octicon[((_a = entries.find(e => e[0] === state.get())) !== null && _a !== void 0 ? _a : entries[0])[1]]; };\n const toggle = view.register(el => {\n el.addEventListener('click', () => {\n const i = entries.findIndex(e => e[0] === state.get());\n state.set(entries[(i + 1) % entries.length][0]);\n });\n state.watch(_ => el.innerHTML = activeOcticon(), 'toggle');\n });\n return `
          ${activeOcticon()}
          `;\n};\n","import { App } from '../App';\nimport { Dropdown } from './Dropdown';\nimport { Octicon } from './Octicon';\nimport { Toggle } from './Toggle';\nimport { languages } from '../../config.json';\nimport { Tracker } from '../Tracker';\nimport { locale } from '../Locales';\nexport const Header = (view, title, homeLink = '/') => {\n const panelTogglesId = view.register(el => {\n const getPanelToggles = () => {\n const panels = [['preview', 'play'], ['tree', 'note'], ['source', 'code']];\n if (!panels.map(e => e[0]).includes(App.mobilePanel.get()))\n return '';\n return panels\n .filter(e => e[0] !== App.mobilePanel.get())\n .filter(e => e[0] !== 'preview' || App.preview.get() !== null)\n .map(e => `
          App.mobilePanel.set(e[0]))}\">\n ${Octicon[e[1]]}\n
          `).join('');\n };\n App.mobilePanel.watchRun(() => {\n view.mount(el, getPanelToggles(), false);\n });\n App.preview.watchRun((value, oldValue) => {\n if (value === null && App.mobilePanel.get() === 'preview') {\n App.mobilePanel.set('tree');\n }\n if (value === null || oldValue === null) {\n view.mount(el, getPanelToggles(), false);\n }\n });\n });\n return `
          \n
          \n ${Octicon.three_bars}\n

          ${title}

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

          404

          \n

          ${locale('not_found.description')}

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

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

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